📓 Archive

HTTP

FGJ: Create:2024/05/07 Update: (2025-03-16)

  • 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.sitecurl -I --http2 https://wtfu.site

  • Reference #


comments powered by Disqus