fly*_*ire 4 java tomcat http apache2 http-headers
我不知道这是否是http规范中的错误或功能,或者我不理解正常的事情.
我有一个资源,每周最多更改一次,在本周开始.如果它没有改变,那么前一周的资源将持续整周有效.
(对于我们所有的测试,我们将一周时间修改为五分钟,但我认为我们的观察结果仍然有效).
首先,我们使用标头发送资源Expires: next Monday
.浏览器从缓存中检索的整个星期.如果在星期一我们有一个新资源,那么它将使用新的标题进行检索,一切正常.
资源未续订时会出现此问题.响应条件获取我们的应用程序(Java + Tomcat)发送带有Expires: next Monday
但没有正文的新标头.但我们的前端服务器(apache)删除了此标头,因为规范说如果资源没有更改,则不应发送新标头.所以现在永远(直到资源发生变化),当我们希望它继续直接从缓存中提供时,浏览器将发送条件获取.
是否有符合规范的方式更新标题而不更新正文?(或再次发送)
和subquestion:如何使apache传递tomcat的标头?
只是一个Expires
标题是不够的.根据RFC 2616第13.3.4节,服务器需要使用两个头响应,Last-Modified
并且ETag
要执行条件GET:
换句话说,HTTP/1.1源服务器的首选行为是发送强实体标记和Last-Modified值.
如果客户端符合HTTP/1.1,则应发送If-Modified-Since
.然后服务器应该响应如下(引自Roy Fielding的添加条件GET的提议):
所以,我猜你不需要像你描述的那样配置Apache和/或Tomcat.您需要使您的应用程序符合HTTP/1.1.
归档时间: |
|
查看次数: |
615 次 |
最近记录: |