发送内容(消息正文)以及 304 Not Modified 标头

发送内容(消息正文)以及 304 Not Modified 标头

对于静态 html 页面,当服务器的响应标头为304 未修改,服务器的责任不是只发回标题而不是随附的消息正文(html 内容)吗?

发送有什么意义304 未修改如果它也带有 html 内容呢?

答案1

发送带有 304 响应的消息正文毫无意义。从RFC 9110

304(未修改)状态代码表示已收到条件 GET 或 HEAD 请求,如果不是条件评估为假,则会导致 200(OK)响应。换句话说,服务器无需传输目标资源的表示,因为请求表明发出条件请求的客户端已经具有有效表示;因此,服务器正在重定向客户端以使用该存储的表示,就好像它是 200(OK)响应的内容一样。

(以下是根据早期的 RFC 2616 得出的答案的原始内容:)
事实上,HTTP 规范表示服务器不得这样做。如果您有一个服务器,则根据规范,它的行为不正确。

来自 HTTP 规范:

304 响应不得包含消息正文,因此始终以标头字段后的第一个空行终止。

相关内容