gpt4 book ai didi

ruby-on-rails - 陈旧? rails 中的方法。它有什么作用?

转载 作者:行者123 更新时间:2023-12-04 01:48:11 24 4
gpt4 key购买 nike

我不明白文档 here

对我来说,令人困惑的一点是:为什么要在响应上设置 etag 或 last_modified?客户端不是发送 etag 和 if-modified-since header 的人吗?一旦服务器(或代理服务器)收到这些客户端 header ,服务器是否会检查资源的 etag 和修改日期是否匹配?文档表明请求是从头开始生成的,而不是数据?另外,为什么我们要在响应中设置 etag 和 last_modified?不是客户端设置的吗?

stale?(options) protected Sets the etag and/or last_modified on the response and checks it against the client request. If the request doesn’t match the options provided, the request is considered stale and should be generated from scratch. Otherwise, it’s fresh and we don’t need to generate anything and a reply of "304 Not Modified" is sent.

Parameters:

:etag :last_modified :public By default the Cache-Control header is private, set this to true if you want your application to be cachable by other devices (proxy caches).



这是怎么回事?因此,某些客户端请求带有 etag(一些哈希),我们检查该请求是否等于我们使用 stale 设置的 Controller 中的选项?这是我的 Controller :
format.json_v20150501 do
expires_in 30.minutes, public: true
if stale?(last_modified: last_modified_for_models(recipes), etag: etag_for_models(recipes))
render json: recipes,
compact: true,
serializer: PaginationSerializer,
each_serializer: Api::V20150315::RecipeSerializer
end
end

我不明白发生了什么...

最佳答案

陈旧?检查提供的选项(那些参数)以确定对象是否已被修改并因此需要重新生成(在缓存的情况下)。

关于 etag,阅读以下内容可能会有所帮助:http://blog.bigbinary.com/2016/03/08/rails-5-switches-from-strong-etags-to-weak-tags.html?utm_source=rubyweekly&utm_medium=email

关于ruby-on-rails - 陈旧? rails 中的方法。它有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35951559/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com