如果浏览器可以缓存 PATCH 请求
If the browser can cache PATCH requests
如果您获取图像以显示第二或 n+1 次,或者类似地获取一些 JSON,并且没有任何变化,那么浏览器实际上不应 download/fetch 内容。这就是 GET 请求与缓存一起工作的方式。
但我想知道,假设,如果不使用 GET 而使用 PATCH 来获取图像或 JSON。想知道如果什么都没有改变,浏览器是否仍然可以使用它的缓存版本,或者需要做什么才能使 PATCH 像 GET 一样工作,这样它就不会获取缓存的内容。
重要的是要了解 PATCH
不是为了 获取 任何东西。您正在服务器上进行更改,响应 可能 包含有关如何应用更改的信息。
GET
以外的 HTTP 请求有时可以缓存。要确定 PATCH
是否存在,您可以阅读 RFC。 RFC 是这样说的:
A response to this method is only cacheable if it contains explicit freshness information (such as an Expires header or
"Cache-Control: max-age" directive) as well as the Content-Location
header matching the Request-URI, indicating that the PATCH response
body is a resource representation. A cached PATCH response can only
be used to respond to subsequent GET and HEAD requests; it MUST NOT
be used to respond to other methods (in particular, PATCH).
这已经建议 'no',执行两次 PATCH
请求不会导致第二次被跳过。
使用 HTTP 方法要注意的第二件事是它们是幂等的还是安全的。 PATCH
两者都不是。
RFC7231 关于可缓存的方法是这样说的:
In general, safe methods that
do not depend on a current or authoritative response are defined as
cacheable; this specification defines GET, HEAD, and POST as
cacheable, although the overwhelming majority of cache
implementations only support GET and HEAD.
这两个都表明 'no'、PATCH
不可缓存,并且没有一组 HTTP headers 可以做到这一点。
如果您获取图像以显示第二或 n+1 次,或者类似地获取一些 JSON,并且没有任何变化,那么浏览器实际上不应 download/fetch 内容。这就是 GET 请求与缓存一起工作的方式。
但我想知道,假设,如果不使用 GET 而使用 PATCH 来获取图像或 JSON。想知道如果什么都没有改变,浏览器是否仍然可以使用它的缓存版本,或者需要做什么才能使 PATCH 像 GET 一样工作,这样它就不会获取缓存的内容。
重要的是要了解 PATCH
不是为了 获取 任何东西。您正在服务器上进行更改,响应 可能 包含有关如何应用更改的信息。
GET
以外的 HTTP 请求有时可以缓存。要确定 PATCH
是否存在,您可以阅读 RFC。 RFC 是这样说的:
A response to this method is only cacheable if it contains explicit freshness information (such as an Expires header or "Cache-Control: max-age" directive) as well as the Content-Location header matching the Request-URI, indicating that the PATCH response body is a resource representation. A cached PATCH response can only be used to respond to subsequent GET and HEAD requests; it MUST NOT be used to respond to other methods (in particular, PATCH).
这已经建议 'no',执行两次 PATCH
请求不会导致第二次被跳过。
使用 HTTP 方法要注意的第二件事是它们是幂等的还是安全的。 PATCH
两者都不是。
RFC7231 关于可缓存的方法是这样说的:
In general, safe methods that do not depend on a current or authoritative response are defined as cacheable; this specification defines GET, HEAD, and POST as cacheable, although the overwhelming majority of cache implementations only support GET and HEAD.
这两个都表明 'no'、PATCH
不可缓存,并且没有一组 HTTP headers 可以做到这一点。