zoukankan      html  css  js  c++  java
  • [转]Accept-Encoding

    原文地址:https://blog.csdn.net/sqzhao/article/details/49499471 

    HTTP Header中Accept-Encoding 是浏览器发给服务器,声明浏览器支持的编码类型的。 
         常见的有 

           Accept-Encoding: compress, gzip            //支持compress 和gzip类型 
           Accept-Encoding:                   //默认是identity 
           Accept-Encoding: *                  //支持所有类型 
           Accept-Encoding: compress;q=0.5, gzip;q=1.0      //按顺序支持 gzip , compress 
           Accept-Encoding: gzip;q=1.0, identity; q=0.5, *;q=0              // 按顺序支持 gzip , identity 

    服务器返回的对应的类型编码header是 content-encoding 

    服务器处理accept-encoding的规则如下所示 

      1. 如果服务器可以返回定义在Accept-Encoding 中的任何一种Encoding类型, 那么处理成功(除非q的值等于0, 等于0代表不可接受) 

      2. * 代表任意一种Encoding类型 (除了在Accept-Encoding中显示定义的类型) 

      3.如果有多个Encoding同时匹配, 按照q值顺序排列 

      4. identity总是可被接受的encoding类型(除非显示的标记这个类型q=0) ,   如果Accept-Encoding的值是空  那么只有identity是会被接受的类型 

    如果Accept-Encoding中的所有类型服务器都没发返回, 那么应该返回406错误给客户端 

    如果request中没有Accept-Encoding  那么服务器会假设所有的Encoding都是可以被接受的, 

    如果Accept-Encoding中有identity  那么应该优先返回identity (除非有q值的定义,或者你认为另外一种类型是更有意义的) 

    注意: 

    如果服务器不支持identity 并且浏览器没有发送Accept-Encoding,那么服务器应该倾向于使用HTTP1.0中的 "gzip" and "compress" ,  服务器可能按照客户端类型 发送更适合的encoding类型 

    大部分HTTP1.0的客户端无法处理q值.并且有的服务器无论是否传递了Accept-Encoding,都会返回压缩数据,所以还是要对response的Content-Encoding进行

    当你深入了解,你就会发现世界如此广袤,而你对世界的了解则是如此浅薄,请永远保持谦卑的态度。
  • 相关阅读:
    Vue 左右翻页,点赞动画
    gitbook 使用
    css3 序列帧动画抖动
    ios添加-webkit-overflow-scrolling依然卡顿
    css 多行省略号兼容移动端
    Vue粒子特效(vue-particles插件)
    css3 渐变色兼容移动端
    前端性能优化:客户端从输入到展示讲解
    前端通信:ajax设计方案(六)--- 全局配置、请求格式拓展和优化、请求二进制类型、浏览器错误搜集以及npm打包发布
    前端通信:ajax设计方案(五)--- 集成promise规范,更优雅的书写代码(改迭代已作废,移步迭代10)
  • 原文地址:https://www.cnblogs.com/liwxmyself/p/10373732.html
Copyright © 2011-2022 走看看