Http 协议 常用消息头

    xiaoxiao2026-01-04  12

    1.压缩

    HTTP采用通用的压缩算法,比如gzip来压缩HTML,Javascript, CSS文件,能大大减少网络吞吐。

    请求:通常会有Accept-Encoding:gzip

    响应:server端生成原始的body,然后压缩,增加头部Content-Encoding:gzip。见图1-1.

    图1-1 cctv.com,gzio压缩与chunked传输 

    可通过fiddler看一下压缩前后的大小对比。

    图1-2cctv.com,fiddler看原始responde 头部

    图1-3cctv.com,fiddler支持对response解压,前后大小对比已标出

    2.分块传输

    Transfer-Encoding: chunked 表示分块传输。不用此头部,通常用Content-Length来标记报文的大小。

    不用分块传输:服务端生成完整的响应,算出来大小,标记出来。

    使用分块传输:服务端一边生成响应,一边输出,不需要缓存完整的结果,节省内存。

    netty框架支持分块传输,所需语句:ch.pipeline().addLast("chunkedWriter", new ChunkedWriteHandler());

    相关资源:python入门教程(PDF版)
    最新回复(0)