最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【基本解决】Charles抓包中HTTP的Method是CONNECT是什么意思

HTTP crifan 3478浏览 0评论
折腾:
【未解决】用Charles抓取Android的app中的视频数据
期间,用Charles去抓取android中app的包,找到想要的数据的请求了,但是发现request的http的method是CONNECT,而不是之前熟悉的GET、POST等:
所以需要去搞清楚:
Charles中HTTP的Method是CONNECT是什么意思
难道是socket?websocket?
或许是:
手机抓包工具汇总 | ZRONG’s Blog
说的TCP?
用:tcpdump 或 Wireshark
抽空好好看看:
手机抓包工具汇总 | ZRONG’s Blog
charles http method connect
CONNECT – HTTP | MDN
CONNECT – HTTP | MDN
“在 HTTP 协议中,CONNECT 方法可以开启一个客户端与所请求资源之间的双向沟通的通道。它可以用来创建隧道(tunnel)。
例如,CONNECT 可以用来访问采用了 SSL (HTTPS)  协议的站点。客户端要求代理服务器将 TCP 连接作为通往目的主机隧道。之后该服务器会代替客户端与目的主机建立连接。连接建立好之后,代理服务器会面向客户端发送或接收 TCP 消息流。”
使用Charles抓取Https请求时,遇到Method为CONNECT模式下的请求均失败,是什么原因呢? – Darren的回答 – SegmentFault 思否
“Http CONNECT相当于客户端和服务器之间建立的一个隧道,而通过这个隧道的请求是加密的,所以CONNECT方式的请求使用抓包是抓不到的”
使用Charles进行https抓包 – 简书
“如果不开启Enable SSL Proxying,那么Charles只是简单把所有SSL通信转发给server而不做任何处理,此时我们抓包会看到这个https请求,但是看不到请求的内容;另外这个请求会以CONNECT而非GET的形式出现,同时请求耗时还会异常的长(甚至有的请求会一直不结束),实际上这个请求早就返回了,知道这点就好,以免发生疑惑(Charles在每个请求的overview里还会有温馨提示)”
关于Charles抓包https时,无法查看CONNECT请求的问题 – CSDN博客
http proxy原理_ITPUB博客
HTTP 代理原理及实现(一) | JerryQu 的小站
感觉是:内部是TLS加密的,无法破解。
【总结】
http 1.1定义了8种方法:
  • CONNECT是其中之一
  • 另外7种是:
    • GET
    • POST
    • PUT
    • DELETE
    • 不常用:
      • OPTIONS
      • HEAD
      • TRACE
CONNECT的作用是:
  • HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接(经由非加密的HTTP代理服务器
  • 并非所有的http隧道支持connect方法
  • Http隧道分为两种
    • 不使用CONNECT的隧道
    • 使用CONNECT的隧道
总之:
  • Http CONNECT相当于客户端和服务器之间建立的一个隧道
  • 而通过这个隧道的请求是加密的
    • 所以CONNECT方式的请求使用抓包是抓不到
但是有人又说,好像是:
Charles中,正确设置了Enable SSL Proxying后,即可:
CONNECT就变成GET等请求,就可以到解密后的数据了。
最终整理出完全的操作流程和注意事项,详见:
【整理】Mac中用Charles抓包iOS或Android手机app中包括https的数据

转载请注明:在路上 » 【基本解决】Charles抓包中HTTP的Method是CONNECT是什么意思

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
82 queries in 0.186 seconds, using 22.02MB memory