我的默认NGinx安装正在返回一个304 Not Modified响应,该请求有一个匹配的If-None-Match头和一个非过期的If-Modified-Since头,这是正确的行为,但是NGinx也会把资源的内容添加到304响应。 人们会认为NGinx不会添加内容,只是简单地返回一个空的主体,告诉浏览器使用他们的caching资源就足够了。
是否有这种行为的原因,我该如何禁用它?
你确定NGINX正在返回内容吗?
根据你如何查看答复,这可能只是看起来如此。
例如,当Chrome开发工具收到来自NGINX的304开发工具时,会显示内容, 看起来像是从NGINX发送的,但实际上只是从Chromecaching中检索。
您可以通过右键单击Chrome开发工具中的文件 – >“复制 – >复制为cURL”来尝试此操作。
将-vv添加到刚刚复制的内容(ex curl -vv <your-url> -H 'HeaderKey: HeaderValue' <etc> ),然后在terminal / shell中执行。
你可能会发现它没有返回正文内容(即使它是一个304)。然后你可以用URL( curl -vv <your-url> )尝试相同的请求, 304。