善用 304

2012-09-25 14:38:21 +08:00
 amxku
http://python-china.org/topic/35
5468 次点击
所在节点    Tornado
7 条回复
enj0y
2012-09-25 15:17:55 +08:00
可惜,NGINX的304是条软肋。万恶的俄罗斯人!!!
Js
2012-09-25 15:23:07 +08:00
@enj0y 304该程序做的, nginx这层做304本来就毫无意义
kernel1983
2012-09-26 11:25:24 +08:00
静态文件应该让nginx来304吧, 的确需要注意这一点
kernel1983
2012-09-26 12:04:14 +08:00
我发现开着chrome的调试工具的时候, 是看不到浏览器发送 If-Modified-Since 头的, 难怪一直看不到304

正确的方法是关掉调试工具, 去服务器端看nginx access log, 确定304返回
enj0y
2012-09-26 23:27:33 +08:00
@kernel1983 因为NGINX在输出静态文件时未支援etag头,所以浏览器不会发送ifs请求头的。
enj0y
2012-09-26 23:31:18 +08:00
@Js 程序输出的内容大多是动态,动态内容很少304能命中的。而NGINX的优势就在于静态高并发、高效proxy,etag(304)适用于绝大多静态请求,NGINX在直接输出静态文件(类似lnmpa构架的静态请求时no proxy passed)时,根本没有后端,也就没有程序,此时若由NGINX输出etag,则可以为服务器节省不少304命中的流量。
kernel1983
2012-09-27 10:43:10 +08:00
@enj0y 但是nginx还是可以在response header里发送Last-Modified, 我昨天试过了, 这样浏览器在下一次request header的时候就会发送 If-Modified-Since 了, chrome 测试必须关掉调试工具

etag的话是需要hash运算的, 我想nginx不支持是因为节省cpu吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/48675

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX