HTTP If-None-Match 与 If-Match
我目前正在构建一个 PHP 脚本,它将在需要时回答 HTTP“304 Not Modified”。
(请参阅问题#2086712< /a> 到目前为止我所做的)。
目前我回答以下问题:
- If-Modified-Since
- If-None-Match
但我发现另外 3 个标头可以触发“条件 GET”(参见 http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3):
- 如果- Match
- If-Unmodified-Since
- If-Range
最后两个似乎与我的缓存系统无关(它们似乎在恢复“大”下载时使用),但我还没有发现“If-Match”是否可以在我的系统中使用。
“If-Match”是否在代理或 Web 浏览器中用于“常规”页面内容? “If-Match”与“If-None-Match”有何不同?
我应该支持这三个还是只支持其中的一部分?欢迎任何帮助!
I'm currently building up a PHP script that will answer HTTP "304 Not Modified" when required.
(See question #2086712 for what I do so far).
Currently I answer to the following:
- If-Modified-Since
- If-None-Match
But I found out that 3 more headers can trigger a "conditional GET" (See http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3):
- If-Match
- If-Unmodified-Since
- If-Range
The last 2 seems irrevelent to my caching system (they seem to be used when resuming "big" downloads) but I haven't found if "If-Match" could be of use in my system.
Does "If-Match" is used in proxies or Web browser for "regular" page content? How "If-Match" is different than "If-None-Match"?
Should I support those 3 or just some of them? Any help welcome!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
If-Match
服务器必须返回 412(前提条件失败)响应,如果:
,则应忽略 If-Match
if-match 的结论:
RFC2616 中的 If-Match
If-Unmodified-Since
服务器必须返回 412(先决条件失败)响应,如果:
,则应忽略 If-Unmodified-Since
RFC2616 中的 If-Unmodified-Since
If-Range
先决条件:
If-Range
标头应该仅与Range
标头一起使用,并且如果请求不包含Range
标头,或者服务器包含,则必须忽略不支持子范围操作。如果
If-Range
标头与实体的当前实体标签匹配,服务器应该提供 206(部分内容)响应。否则,服务器应该使用 200(OK)响应返回整个实体。RFC2616 中的 If-Range
未定义结果
具有以下内容标头组合会导致未定义的结果:
这些规则已由以下规则分解(可以在RFC2616):
更新的 RFC 7232 取代了 2616。
If-Match
The server MUST return a 412 (Precondition Failed) response, if:
If-Match should be ignored, if:
Conclusion on if-match:
If-Match in RFC2616
If-Unmodified-Since
The server MUST return a 412 (Precondition Failed) response, if:
If-Unmodified-Since should be ignored, if
If-Unmodified-Since in RFC2616
If-Range
Preconditions:
If-Range
header SHOULD only be used together with aRange
header, and MUST be ignored if the request does not include aRange
header, or if the server does not support the sub-range operation.Server SHOULD provide 206 (Partial content) response, if
If-Range
header matches the current entity tag for the entity. Otherwise, server SHOULD return the entire entity using a 200 (OK) response.If-Range in RFC2616
Undefined results
Having the following combination of headers leads to an undefined result:
These rules have been decomposed from the following ones (can be found in RFC2616):
A more recent RFC 7232 superseded 2616.