nginx 状态代码 200 和 304

nginx 状态代码 200 和 304

我正在使用 nginx + 乘客。我试图理解 nginx 响应 200 和 304。这两个是什么意思?有时,它会以 304 响应,而其他时候只响应 200。阅读 YUI 博客,似乎浏览器需要标头“Last-Modified”来与服务器进行验证。我想知道为什么浏览器需要验证上次修改日期。这是我的 nginx 配置:

location / {
    root /var/www/placexpert/public;   # <--- be sure to point to 'public'!
    passenger_enabled on;
    rack_env development;
    passenger_use_global_queue on;

    if ($request_filename ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|swf)$) {
        expires max;
        break;
    }
}

我该如何将“Last-Modified”标头添加到静态文件?我应该设置哪个值?

答案1

HTTP 200 代码意味着文档/请求已被找到并已成功提供/完成(与 302(找到)或 404(未找到文档)相反)。

HTTP 304 表示数据未被修改,因此已使用计算机上的缓存版本来避免再次从服务器下载。使用 nginx 时,这通常是静态文件,并且由于配置的这一部分,您的示例中的情况似乎也是如此:

if ($request_filename ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|swf)$) {
    expires max;
    break;

您已为这些文件类型设置了最大过期时间,因此它不会重新下载它们。

相关内容