开发者

HTTP Accept-Encoding and sending unencoded data

开发者 https://www.devze.com 2023-03-20 08:44 出处:网络
I building a module for compressing HTTP output. Reading the spec, I haven\'t found a clear distinction on a couple of things:

I building a module for compressing HTTP output. Reading the spec, I haven't found a clear distinction on a couple of things:

Accept-Encoding:

Should this be treated the same as a Accept-Encoding: * or as if no header is present?开发者_StackOverflow

Or what if I don't support gzip, but I get a header like this:

Accept-Encoding: gzip

Should I return a 406 error or just return the data unencoded?

EDIT:

I've read over the spec a few times. It mentions my first case, but it doesn't define what the behavior of the server should be.

Should I treat this case as if the header is not present? Or should I return a 406 error because there's no way to encode something given the field value ('' isn't a valid encoding).


There is written everything in the Spec: 14.3 Accept-Encoding:

The special "*" symbol in an Accept-Encoding field matches any available content-coding not explicitly listed in the header field.

If an Accept-Encoding field is present in a request, and if the server cannot send a response which is acceptable according to the Accept-Encoding header, then the server SHOULD send an error response with the 406 (Not Acceptable) status code.

edit:

If the Accept-Encoding field-value is empty, then only the "identity" encoding is acceptable.

In this case, if "identity" is one of the available content-codings, then the server SHOULD use the "identity" content-coding, unless it has additional information that a different content-coding is meaningful to the client.

What is "identity"

identity
The default (identity) encoding; the use of no transformation whatsoever. This content-coding is used only in the Accept- Encoding header, and SHOULD NOT be used in the Content-Encoding header.

0

精彩评论

暂无评论...
验证码 换一张
取 消