如何根据返回的etag使用curl缓存api响应?

问题描述 投票:2回答:1

这是一个快速的问题,也可能会对其他人有所帮助。我有一个rest服务,它将为端点上的每个GET查询返回一个正确的ETAG头。现在,我还需要创建一个curl http客户端来查询这些终结点并利用etags。据我了解,在使用curl发出第一个请求后,我需要保存返回的etag以便以后使用,以便所有后续请求(直到服务器上的etag无效)我都使用缓存的版本,因为服务器将返回304标头和空响应。它是否正确?

请注意,此http客户端将分布在许多服务器上,curl本身无法保存返回的我认为我需要使用sqlite或fs缓存之类的内容来保存内容。它是否正确?

基本上,我正在考虑的工作流程将是:1.向服务器端点发出第一个curl请求(GET)2.服务器返回带有正确etag和内容的http代码2003.使用我从服务器获得的响应,使用sqlite或fs保存内容和etag4.下次调用同一端点时,发送带有etag值的If-None-Match标头5.服务器验证If-None-Match标头5.a-内容未更改,发送了304标头并且没有响应。基于此,我从sqlite或fs加载本地缓存的内容。5.b-内容已更改,一个200标头连同一个新的etag被发送回。基于此,我下次保存新的etag和内容。6.循环重复

这是正确的吗?

php curl http-headers http-caching
1个回答
0
投票

根据最近发生的事件和对此问题的自己思考,我会说是。

去吧,如果有的话,它可能对您有用,并且您很高兴。

© www.soinside.com 2019 - 2024. All rights reserved.