以下 HTTP 1.1 标头是什么意思?
如果无匹配:*
当使用强或弱 ETag 甚至 ETag 列表时我理解它,但我不明白它在使用星号 (*) 时的用途。
Edit:最好有一些伪代码(PHP 代码也很好)来显示如何/什么回答“If-None-Match: *”。
答案是:视情况而定。
假设我们已经收到
If-None-Match: *
If-Modified-Since: <yesterday date>
并且页面已被更改today.
首先,我们来看看*
它告诉我们:“如果资源存在并且满足条件 (2),则返回 304”。很好,资源存在,但是条件 (2) 指出:“如果日期晚于当前日期,则仅返回 304”。所以这个条件不满足,页面会完整交付。
如果我们没有收到If-Modified-Since
,响应将是 304。
如果请求时资源不存在,我们会返回适当的代码(就好像不存在一样)If-None-Match
).
304 应该只在 GET 和 HEAD 请求的响应中返回,并且所有与缓存相关的响应标头都必须存在。对于所有其他类型的请求,您的服务器需要回答 412(前提条件失败)。
我希望它有帮助;)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)