zoukankan      html  css  js  c++  java
  • HTTP 请求压缩的服务器内容

    从HTTP的角度

    1.  客户端 在http Request  Header上带上 Accept-Encoding:gzip,deflate

    2.  服务器若是支持gzip压缩则在http reponse header部分返回Content-Encoding: gzip 或者Content-Type: application/x-gzip

    3.  body部分用gzip解压缩 则得到网页内容.

    gzip是一种数据格式 默认且目前仅使用deflate算法压缩data部分

    zlib也是一种数据格式,使用defalte算法压缩数据部分.

    deflate是一种压缩算法,是huffman编码的一种加强

      

     
    Accept-Enoding: gzip,deflate              表示浏览器支持gzip

    Content-Encoding: gzip                     表示所请求的页面是通过gzip压缩传输的,服务器开启了gzip是一码事,在程序中使没使用是另外一回事。

     

    connection = getHttpConnection(urlString);
    connection.addRequestProperty("Accept-Encoding", "gzip,deflate");
    bufReader = new BufferedReader(new InputStreamReader( new GZIPInputStream(connection.getInputStream()), "GBK"));
    totalBytes = connection.getContentLength();
    String tmpLine = null;
    while ((tmpLine = bufReader.readLine()) != null) {
    bufStr.append(tmpLine);
    }

     

    即使服务器开启了gzip,如果在请求的头里面不加 ("Accept-Encoding", "gzip,deflate"),获取的流还是不压缩的。


     

     

  • 相关阅读:
    HTTP浅析
    PHP CURL获取cookies模拟登录
    C++ builder 通过WMI方式修改DNS
    C语言List使用样例
    C语言 获取系统临时目录并获取临时文件名
    C语言 写文件样例
    vb wmi 修改ip地址、网关、DNS
    正则表达式校验IP地址
    c语言 vector使用样例
    C++ builder 通过WMI查询网卡对应的序号
  • 原文地址:https://www.cnblogs.com/zijianlu/p/2279670.html
Copyright © 2011-2022 走看看