Http 如果浏览器可以缓存修补程序请求
如果您获取一个图像以显示一秒钟或n+1次,或者获取一些JSON,并且没有任何更改,那么浏览器实际上不应该下载/获取内容。这就是GET请求与缓存一起工作的方式Http 如果浏览器可以缓存修补程序请求,http,caching,http-patch,Http,Caching,Http Patch,如果您获取一个图像以显示一秒钟或n+1次,或者获取一些JSON,并且没有任何更改,那么浏览器实际上不应该下载/获取内容。这就是GET请求与缓存一起工作的方式 但我想知道,假设不是使用GET,而是使用PATCH来获取图像或JSON。想知道如果没有任何更改,浏览器是否仍然可以使用其缓存版本,或者需要做什么才能使修补程序像GET一样工作,从而不获取缓存内容。重要的是要理解,修补程序不用于获取任何内容。您正在服务器上进行更改,响应可能包含有关如何应用更改的信息 除了GET之外的HTTP请求有时是可缓存的
但我想知道,假设不是使用GET,而是使用PATCH来获取图像或JSON。想知道如果没有任何更改,浏览器是否仍然可以使用其缓存版本,或者需要做什么才能使修补程序像GET一样工作,从而不获取缓存内容。重要的是要理解,
修补程序
不用于获取任何内容。您正在服务器上进行更改,响应可能包含有关如何应用更改的信息
除了GET
之外的HTTP请求有时是可缓存的。要了解PATCH
是否正确,您可以阅读RFC。RFC这样说:
对此方法的响应只有在包含显式新鲜度信息(例如Expires标头或
“缓存控制:最大年龄”指令)以及内容位置
与请求URI匹配的标头,指示修补程序响应
主体是一种资源表示。缓存的修补程序响应只能
用于响应后续GET和HEAD请求;它决不能这样做
用于响应其他方法(特别是补丁)
这已经表明“否”,两次执行补丁
请求不会导致跳过第二次
HTTP方法要注意的第二件事是它们是幂等的还是安全的<代码>补丁两者都不是
RFC7231对可缓存方法有这样的说法:
一般来说,安全的方法
不依赖当前或权威的响应定义为
可缓存;本规范将GET、HEAD和POST定义为
可缓存,尽管绝大多数缓存
实现只支持GET和HEAD
这两种情况都表明“否”,PATCH
是不可缓存的,并且没有一组HTTP头可以实现这一点