我构建了一个用于压缩HTTP输出的模块。阅读spec,我没有找到一些明确的区别:
Accept-Encoding:
这应该与Accept-Encoding: *
相同还是没有标题?
或者,如果我不支持gzip,但我得到这样的标题:
Accept-Encoding: gzip
我应该返回406错误还是只返回未编码的数据?
编辑:
我已经阅读了几次规范。它提到了我的第一个案例,但没有定义服务器的行为应该是什么。
我是否应该将此案件视为标头不存在?或者我应该返回406错误,因为在给定字段值(''不是有效编码)的情况下无法对某些内容进行编码。
答案 0 :(得分:7)
Accept-Encoding字段中的特殊“*”符号与any匹配 标题中未明确列出的可用内容编码 字段。
如果请求中存在Accept-Encoding字段,并且服务器无法根据Accept-Encoding标头发送可接受的响应,则服务器应该发送具有406(Not Acceptable)状态的错误响应码。
编辑:
如果Accept-Encoding字段值为空,则只有“身份” 编码是可以接受的
在这种情况下,如果“identity”是可用内容编码之一,那么服务器应该使用“身份”内容编码,除非它具有不同内容编码对客户端有意义的附加信息。
<强>身份强>
默认(标识)编码;没有任何转变的使用。此内容编码仅在Accept-Encoding标头中使用,并且不应在Content-Encoding标头中使用。