HTTP
Intro(HTTP) #
分块传输编码 #
Response Header 中存在
Transfer-Encoding: chunked
的话,就是分块传输,数据需要按照 格式 解码。[ 参考]
应用场景:使用 socket 发送 http/https 请求的时候会返回数据报文,需要自己解析。比如:
1. 模拟vless客户端发送 wss + https
请求: 先与vless服务器创建一个通过tls加密的websocket隧道连接。
2. 发送command(ipaddr, port)
+握手消息
到websocket服务器,并与目标服务器
建立连接并且发送Client Hello[一般情况下是这个],后续让BC库
完成握手。
3. 读取 tls[BC.TlsClientProtocol]
解密后的报文,此时需要注意可能存在分块传输如下图。响应头大小写 #
(参考 rfc | 7540) 在 http2 中,响应头的 key 必须为小写,其他的视为畸形的,但是在 http1.1 中大小写不敏感。
使用 curl 验证即可,一般浏览器应该会自动转化,比如 chrome 即使小写也会转化成首字母大写。
下列命令查看响应头区别:curl -I --http1.1 https://wtfu.site
,curl -I --http2 https://wtfu.site
Reference #
comments powered by Disqus