HTTP 标头 If-None-Match: * 是什么意思?

2024-03-24

以下 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(使用前将#替换为@)

HTTP 标头 If-None-Match: * 是什么意思? 的相关文章