zoukankan      html  css  js  c++  java
  • 复习HTTP 14.3 HTTP Header AcceptEncoding

    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值
    
    
    
    
  • 相关阅读:
    线程同步之条件变量使用手记
    如何实现文件增量同步——算法
    javascript 复习笔记
    cocos2dx 多图层点击事件及管理相关问题记录
    cocos2dx 2.1.1 jsbinding 游戏帧数下降问题记录
    cocos2dx jsb + cocosbuilder 编译到安卓下问题处理(待续)
    cocos2dxjsb及Cocosbuilder使用相关问题处理记录
    cocos2dx jsb 的本地存储
    cocos2dxjsb 跨语言调用及第三方集成 过程记录
    cocos2dx 2.1.1 升级2.1.3版本 记录
  • 原文地址:https://www.cnblogs.com/PurpleTide/p/2149743.html
Copyright © 2011-2022 走看看