是否可以缓存服务器对服务器HTTP POST请求的响应?

时间:2018-10-26 09:04:39

标签: rest web-services http service request

目的是在n天(出于财务原因)触发一次请求不超过一次-HTTP客户端应调查缓存以确定响应是否已可用。响应帮助中将max-age指令设置为n天(例如Cache-Control:public,max-age = 604800)吗? 我知道这可用于带有enableCaching(ttl)选项的GET请求,但是我们可以为POST请求实现类似的行为吗?

要恢复,我唯一的想法是,如果响应中设置了一个n天的max-age指令,这将强制该服务在n天后发出另一个请求,无论它是GET还是POST 。

2 个答案:

答案 0 :(得分:0)

也许Redis是您要寻找的东西

答案 1 :(得分:0)

您可以请求对POST响应进行缓存,但是没有承诺。来自RFC 7231

  

仅当POST请求的响应包含以下内容时才可缓存      显式的新鲜度信息(请参阅[RFC7234]的4.2.1节)。      但是,POST缓存并未广泛实现。

如果同时控制服务器和客户端,则可以:

  

对于      原始服务器希望客户端能够缓存      以可以被更高版本的GET(原始服务器)重用的方式进行POST      可以发送200(OK)响应,其中包含结果和      具有与POST相同值的Content-Location标头字段      有效的请求URI(第3.1.4.2节)。

此外,请注意,任何缓存都可以随时清除您的表示,因此仅因为您要求保留某些内容并不意味着会。您指定的是 max 年龄,而不是保证的年龄。