首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只有当我手动发送If-None-Match标头时,Rails缓存才起作用

只有当我手动发送If-None-Match标头时,Rails缓存才起作用
EN

Stack Overflow用户
提问于 2016-05-11 14:06:30
回答 1查看 445关注 0票数 1

我的rails代码:

代码语言:javascript
复制
def index
  battles = Battle.feed(current_user, params[:category_name], params[:future_time])

  @battles = paginate battles, per_page: 50

  if stale?([@battles, current_user.id], template: false)
    render 'index'
  end
end

如果我手动发送带有最后一个Etag的If-None-Match报头,则返回304状态代码,如果不手动发送(报头自动发送,带有相同的If-None-Match报头),我将获得200状态代码...

我正在使用Postman rest客户端检查服务器(启用缓存)。

EN

回答 1

Stack Overflow用户

发布于 2016-05-11 14:11:27

我不能在这里评论Rails方面的事情,但如果我跟随你的话,这是正确的行为。

当发送" if -None-Match“时,如果内容没有改变(相同的电子标签),你会得到304。这基本上是说,要么是你自己,要么是中间的某个东西,比如代理,已经有了内容,所以不需要再次传输正文。

如果你省略了标题,你会看到一个200。默认情况下,Postman会发送一组标头,但它也非常精简,因为它剥离了很多东西。在你的浏览器中尝试同样的请求,你会得到304。您将看到您的浏览器将被设置为在可能的情况下使用缓存。

如果您依赖于服务器端缓存,情况可能会有所不同。您可能看到了看起来像是新响应的内容,但服务器实际上做得很少,却产生了200个响应。

总而言之,从你的描述来看,标题做得很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37154274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档