{"id":2909,"date":"2022-07-25T22:55:45","date_gmt":"2022-07-25T13:55:45","guid":{"rendered":"http:\/\/blog.xcir.net\/?p=2909"},"modified":"2022-07-25T22:55:46","modified_gmt":"2022-07-25T13:55:46","slug":"rfc9111-http-caching%e3%81%ae%e5%a4%89%e6%9b%b4%e7%82%b9%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6","status":"publish","type":"post","link":"https:\/\/blog.xcir.net\/?p=2909","title":{"rendered":"RFC9111 HTTP Caching\u306e\u5909\u66f4\u70b9\u306b\u3064\u3044\u3066"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u306f\u3058\u3081\u306b<\/h2>\n\n\n\n<p>\u5c11\u3057\u524d\u306bHTTP\u95a2\u9023\u306eRFC\u304c\u6539\u8a02\u3055\u308c\u307e\u3057\u305f\u306d\uff01\uff08RFC91XX\uff09<\/p>\n\n\n\n<p>\u3053\u306e\u3042\u305f\u308a\u306e\u5168\u822c\u7684\u306a\u8a71\u306f\u65e2\u306b\u8a73\u3057\u3044\u65b9\u3005\u304c\u89e6\u308c\u3066\u3044\u307e\u3059\u306e\u3067\uff08<a href=\"https:\/\/blog.jxck.io\/entries\/2022-06-16\/HTTP-RFCs.html\">HTTP \u95a2\u9023 RFC \u304c\u5927\u91cf\u306b\u51fa\u305f\u8a71\u3068 3 \u884c\u307e\u3068\u3081<\/a>\uff09\u3001\u57fa\u672c\u7684\u306b\u306f\u305d\u3063\u3061\u3092\u53c2\u7167\u3059\u308c\u3070\u3088\u3044\u304b\u306a\u3068\u601d\u3046\u306e\u3067\u3059\u304c\u3001\u4f55\u304c\u5909\u308f\u3063\u305f\u304b\u3068\u3044\u3046\u3068\u5927\u898f\u6a21\u306a\u30ea\u30d5\u30a1\u30af\u30bf\u30ea\u30f3\u30b0\u304c\u3055\u308c\u305f\u3068\u3044\u3063\u3066\u3044\u3044\u3067\u3057\u3087\u3046\u3002(\u3082\u3061\u308d\u3093\u540c\u6642\u306bHTTP\/3\u3084Cache-Status\u306a\u3069\u306e\u65b0\u3057\u3044\u4ed5\u69d8\u3082\u3075\u3048\u3066\u3044\u307e\u3059\uff09<\/p>\n\n\n\n<p>\u3068\u306f\u3044\u3048HTTP\u306e\u30ea\u30d5\u30a1\u30af\u30bf\u30ea\u30f3\u30b0\u3063\u3066\u306a\u306b\uff1f\u3068\u601d\u3046\u3053\u3068\u3082\u591a\u3044\u3068\u601d\u3046\u306e\u3067HTTP\/2\u306e\u4f8b\u793a\u3092\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u7686\u3055\u3093\u3054\u5b58\u3058\u306e\u901a\u308aHTTP\/2\u3001HTTP\/1.1\u306e\u3069\u3061\u3089\u306b\u304a\u3044\u3066\u3082<code>Accept-Encoding<\/code>\u306a\u3069\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\uff08\u6539\u8a02\u3067\u30d8\u30c3\u30c0\u304b\u3089\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u7528\u8a9e\u304c\u5909\u308f\u308a\u307e\u3057\u305f\uff09\u306f\u540c\u69d8\u306b\u4f7f\u3048\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u8981\u306f\u30bb\u30de\u30f3\u30c6\u30a3\u30af\u30b9\u306f\u540c\u3058\u306a\u308f\u3051\u3067\u3059\u304c\u3001<a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc7231\" target=\"_blank\" rel=\"noreferrer noopener\">RFC7231<\/a>\u3067\u306f<code>Hypertext Transfer Protocol (HTTP\/1.1): Semantics and Content<\/code>\u3068\u3042\u308b\u3068\u304a\u308aHTTP\/1.1\u3068\u6df1\u304f\u7d10\u3065\u3044\u3066\u3044\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u4eca\u56de\u306e\u6539\u8a02\u3067\u306f\u30bb\u30de\u30f3\u30c6\u30a3\u30af\u30b9\u306f<a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc9110\" target=\"_blank\" rel=\"noreferrer noopener\">RFC9110<\/a>\u306b\u307e\u3068\u3081\u3089\u308c\u307e\u3057\u305f\u304c\u3001\u3053\u306e\u3053\u3068\u306b\u3088\u308aHTTP\/2\u306a\u3069\u306eRFC\u304c\u975e\u5e38\u306b\u3059\u3063\u304d\u308a\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u3069\u308c\u3050\u3089\u3044\u3059\u3063\u304d\u308a\u3057\u305f\u304b\u304c\u308f\u304b\u308b\u3088\u3046\u306bHTTP\/2\u306eSection 8\u3092\u6bd4\u8f03\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<br>\u3069\u3061\u3089\u3082\u30bb\u30de\u30f3\u30c6\u30a3\u30af\u30b9\u306b\u3064\u3044\u3066\u306e\u8a18\u8ff0\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>HTTP\/2 is intended to be as compatible as possible with current uses of HTTP. This means that, from the application perspective, the features of the protocol are largely unchanged. To achieve this, all request and response semantics are preserved, although the syntax of conveying those semantics has changed.<br>Thus, the specification and requirements of HTTP\/1.1 Semantics and Content [RFC7231], Conditional Requests [RFC7232], Range Requests [RFC7233], Caching [RFC7234], and Authentication [RFC7235] are applicable to HTTP\/2. Selected portions of HTTP\/1.1 Message Syntax and Routing [RFC7230], such as the HTTP and HTTPS URI schemes, are also applicable in HTTP\/2, but the expression of those semantics for this protocol are defined in the sections below.<\/p><cite><a rel=\"noreferrer noopener\" href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc7540#section-8\" target=\"_blank\">8. HTTP Message Exchanges<\/a> RFC7540<\/cite><\/blockquote>\n<\/div><\/div>\n\n\n\n<p>\u3053\u308c\u304c<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>HTTP\/2 is an instantiation of the HTTP message abstraction (Section 6 of [HTTP]).<\/p><cite><a rel=\"noreferrer noopener\" href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc9113#section-8\" target=\"_blank\">8. Expressing HTTP Semantics in HTTP\/2<\/a> RFC9113<\/cite><\/blockquote>\n\n\n\n<p>\u3053\u3093\u306a\u611f\u3058\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u3082\u3061\u308d\u3093\u30ea\u30d5\u30a1\u30af\u30bf\u30ea\u30f3\u30b0\u3060\u3051\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<p>RFC9111\u306b\u306a\u3063\u305f<a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc9111\" target=\"_blank\" rel=\"noreferrer noopener\">HTTP Caching<\/a>\u3067\u306f\u65b0\u8981\u7d20(must-understand)\u3084\u4f7f\u308f\u308c\u306a\u304f\u306a\u3063\u305f\u90e8\u5206\u3084\u66d6\u6627\u306a\u90e8\u5206\u306e\u6574\u7406\u304c\u884c\u308f\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3064\u307e\u308a\u306f\u4eca\u307e\u3067\u30ad\u30e3\u30c3\u30b7\u30e5\u3092\u77e5\u3063\u3066\u3044\u308b\u4eba\u304b\u3089\u3059\u308b\u3068\u307e\u3041\u305d\u3093\u306a\u5909\u308f\u3089\u306a\u3044\u3088\u3068\u306a\u308b\u308f\u3051\u3067\u3059\u304c\u3001\u3053\u3053\u3067\u91cd\u8981\u306a\u306e\u306f\u300c\u66d6\u6627\u306a\u90e8\u5206\u306e\u6574\u7406\u300d\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p><a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc7234\" target=\"_blank\" rel=\"noreferrer noopener\">RFC7234<\/a>\u3092\u8aad\u3080\u3068\u308f\u304b\u308b\u3068\u601d\u3046\u306e\u3067\u3059\u304c\u3001\u3053\u306e\u5834\u5408\u306f\u3069\u3046\u89e3\u91c8\u3059\u308c\u3070\u3044\u3044\u306e\u3060\u308d\u3046\u30fb\u30fb\u3068\u8a70\u307e\u308b\u3068\u3053\u308d\u306f\u591a\u6570\u3042\u308b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>no-cache\u3068max-age\u304c\u540c\u6642\u306b\u6307\u5b9a\u3055\u308c\u3066\u3044\u305f\u5834\u5408\u306f\u3069\u3061\u3089\u304c\u512a\u5148\u3055\u308c\u308b\u306e\u3067\u3057\u3087\u3046\u304b\uff1f<\/p>\n\n\n\n<p>no-cache\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u518d\u691c\u8a3c\u304c\u5fc5\u8981\u3067\u3059\u304c\u3001\u6709\u52b9\u671f\u9650\u5185\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\u306f\u679c\u305f\u3057\u3066\u518d\u691c\u8a3c\u306e\u5bfe\u8c61\u3068\u306a\u308b\u306e\u3067\u3057\u3087\u3046\u304b\uff1f<\/p>\n\n\n\n<p>\u3068\u304b\u8003\u3048\u3060\u3059\u3068\u3082\u306b\u3087\u3082\u306b\u3087\u3057\u3060\u3059\u308f\u3051\u3067\u3059\uff08\u500b\u4eba\u7684\u306b\u306fRFC7234\u3067\u3082no-cache\u304c\u512a\u5148\u3055\u308c\u308b\u3068\u8003\u3048\u3066\u3044\u307e\u3059\uff09<\/p>\n\n\n\n<p>\u4eca\u56de\u306e\u6539\u8a02\u3067\u306f\u3053\u306e\u3088\u3046\u306a\u90e8\u5206\u304c\u3060\u3044\u3076\u89e3\u6d88\u3055\u308c\u3066\u3044\u307e\u3059\u306e\u3067\u3001\u306a\u3093\u3068\u306a\u304f\u5f15\u3063\u304b\u304b\u3063\u305f\u30dd\u30a4\u30f3\u30c8\u3092\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u306a\u304a\u3001\u7d39\u4ecb\u3059\u308b\u9806\u5e8f\u306f\u7d30\u304b\u3044\u3068\u3053\u308d\u304b\u3089\u3068\u3057\u3066\u3044\u308b\u306e\u3068\u3001\u3042\u308b\u7a0b\u5ea6\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u77e5\u8b58\u304c\u3042\u308b\u4eba\u5411\u3051\u306b\u66f8\u3044\u3066\u3044\u307e\u3059\u3002\uff08<a href=\"http:\/\/blog.xcir.net\/?p=2780\" data-type=\"post\" data-id=\"2780\" target=\"_blank\" rel=\"noreferrer noopener\">Web\u914d\u4fe1\u306e\u6280\u8853<\/a>\u3092\u3056\u3063\u3068\u8aad\u3093\u3067\u308c\u3070\u5927\u4e08\u592b\u3060\u3068\u601d\u3046\u306e\u3067<a href=\"https:\/\/amzn.to\/3POZFxx\" target=\"_blank\" rel=\"noreferrer noopener\">\u8cb7\u3063\u3066\u306d\uff01<\/a>\uff08\u5510\u7a81\u306a\u5ba3\u4f1d\uff09\uff09<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u6539\u8a02\u306e\uff08\u304a\u3059\u3059\u3081\u306a\uff09\u8aad\u307f\u65b9<\/strong><\/h2>\n\n\n\n<p>\u4eca\u56de\u89e6\u308c\u308b\u306e\u306f\u5909\u66f4\u306e\u4e00\u90e8\u3067\u3059\u306e\u3067\u3001\u662f\u975e\u7686\u3055\u3093\u3082\u8aad\u3093\u3067\u307b\u3057\u3044\u306e\u3067\u3059\u304c <\/p>\n\n\n\n<p>\u305d\u306e\u969b\u306b\u306f\u5358\u7d14\u306b\u65b0\u65e7\u306eRFC\u3092\u8aad\u3080\u3060\u3051\u3067\u306f\u306a\u304f\u3001Github\u4e0a\u3067\u884c\u308f\u308c\u305f\u8b70\u8ad6\u3092\u8aad\u3093\u3067\u307f\u308b\u3068\u306a\u3093\u3067\u3053\u306e\u6587\u9762\u304c\u5909\u308f\u3063\u305f\u306e\u304b\u3068\u3044\u3046\u306e\u304c\u308f\u304b\u3063\u3066\u7d0d\u5f97\u611f\u304c\u9055\u3044\u307e\u3059\u306e\u3067\u304a\u52e7\u3081\u3067\u3059\u3002<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/httpwg\/http-core\/issues?q=is%3Aissue+is%3Aclosed+label%3Acaching+sort%3Acreated-asc\">https:\/\/github.com\/httpwg\/http-core\/issues?q=is%3Aissue+is%3Aclosed+label%3Acaching+sort%3Acreated-asc<\/a><\/p>\n\n\n\n<p>\u4f8b\u3048\u3070\u4eca\u307e\u3067\u306fmax-age=&#8221;3600&#8243;\uff08quote\u3055\u308c\u3066\u308b\uff09\u3068\u3044\u3063\u305f\u3082\u306e\u306fSHOULD NOT\u3060\u3063\u305f\u306e\u3067\u3059\u304c\u3001\u3088\u308a\u5f37\u3044MUST NOT\u306b\u5909\u308f\u308a\u307e\u3057\u305f\u3002 <\/p>\n\n\n\n<p>\u500b\u4eba\u7684\u306b\u306fquote\u3059\u308b\u3088\u3046\u306a\u5b9f\u88c5\u304c\u3042\u308b\u306e\u304b\u3068\u601d\u3063\u3066\u305f\u3093\u3067\u3059\u304c\u3001\u8b70\u8ad6\u3092\u898b\u308b\u3068\u767d\u71b1\u3057\u3066\u304a\u308a\u3001\u306a\u308b\u307b\u3069\u306a\u3041\u3068\u601d\u3044\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u8b70\u8ad6\uff1a<a href=\"https:\/\/github.com\/httpwg\/http-core\/issues\/128\">Quoted cache-control directives #128<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong><a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc9111#section-4.2\" target=\"_blank\" rel=\"noreferrer noopener\">4.2<\/a> \u6709\u52b9\u671f\u9650\u306e\u8a08\u7b97\u306b\u4f7f\u3046\u306e\u306fGMT\u306e\u307f\u306b\u5909\u66f4<\/strong><\/h2>\n\n\n\n<p>\u5143\u3005<a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc2616#section-19.3\" data-type=\"URL\" data-id=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc2616#section-19.3\" target=\"_blank\" rel=\"noreferrer noopener\">RFC2616#19.3<\/a>\u3067\u306f\u6709\u52b9\u671f\u9650\u306e\u8a08\u7b97\u306fGMT\u3067\u884c\u3046\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\uff08MUST\uff09 GMT\u4ee5\u5916\u306e\u30bf\u30a4\u30e0\u30be\u30fc\u30f3\u3092\u8aa4\u3063\u3066\u6307\u5b9a\u3055\u308c\u305f\u5834\u5408\u306f\u6700\u3082\u4fdd\u5b88\u7684\u306a\u5909\u63db\u3092\u4f7f\u3044GMT\u306b\u5909\u63db\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\uff08MUST\uff09 \u3068\u3042\u308a\u307e\u3057\u305f\u3002\uff08\u610f\u8a33\uff09<\/p>\n\n\n\n<p>\u305d\u308c\u304c<a rel=\"noreferrer noopener\" href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc7234#section-4.2\" target=\"_blank\">RFC7234#4.2<\/a>\u3067\u306f\u6709\u52b9\u671f\u9650\u306e\u8a08\u7b97\u306b\u304a\u3044\u3066GMT\u3082\u3057\u304f\u306fUTC\u4ee5\u5916\u306e\u30bf\u30a4\u30e0\u30be\u30fc\u30f3\u6307\u5b9a\u306f\u7121\u52b9\u3068\u307f\u306a\u3059\u3079\u304d\u3067\u3059\uff08SHOULD\uff09\u3068\u306a\u308a\u307e\u3057\u305f\uff08\u610f\u8a33\uff09<\/p>\n\n\n\n<p>\u3068\u3053\u308d\u304cUTC\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u308b\u5b9f\u88c5\u306f\u5c11\u306a\u304f\u3001\u57fa\u672c\u306fGMT\u3067\u3059\u306e\u3067GMT\u306e\u307f\u3068\u306a\u308a\u307e\u3057\u305f\u3002\u305d\u3046\u6df7\u4e71\u3059\u308b\u3088\u3046\u306a\u5909\u66f4\u3067\u306f\u306a\u3044\u3068\u601d\u3044\u307e\u3059\u304c\u3001\u307e\u3041\u6642\u523b\u306fGMT\u3067\u3068\u899a\u3048\u3066\u304a\u3051\u3070\u3088\u3044\u304b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u8b70\u8ad6\uff1a<a href=\"https:\/\/github.com\/httpwg\/http-core\/issues\/472\">UTC in dates #472<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc9111#section-5.4\" target=\"_blank\" rel=\"noreferrer noopener\">5.4<\/a> Pragma: no-cache\u304c\u975e\u63a8\u5968<\/h2>\n\n\n\n<p><code>Pragma: no-cache<\/code>\u306f\u305d\u3082\u305d\u3082HTTP\/1.0\u6642\u4ee3\u306e\u3082\u306e\u3067\u3001\u65e2\u306b\u5e83\u304fCache-Control\u304c\u666e\u53ca\u3057\u305f\u306e\u3067\u975e\u63a8\u5968\u3068\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u8b70\u8ad6:&nbsp;<a href=\"https:\/\/github.com\/httpwg\/http-core\/issues\/140\">Pragma #140<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"55-warning%E3%81%AE%E5%BB%83%E6%AD%A2\"><a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc9111#section-5.5\" target=\"_blank\" rel=\"noreferrer noopener\">5.5<\/a> Warning\u306e\u5ec3\u6b62<\/h2>\n\n\n\n<p>\u4f59\u308a\u77e5\u3089\u308c\u3066\u306a\u3044\u30d5\u30a3\u30fc\u30eb\u30c9\u306bWarning\u3068\u3044\u3046\u306e\u304c\u3042\u308a\u307e\u3057\u305f\u3002 \u8981\u306f\u4f55\u304b\u4f1d\u3048\u305f\u3044\u3053\u3068\u304c\u3042\u308b\u3068\u304d\u306b\u4f7f\u3046\u3082\u306e\u3067\u3001<\/p>\n\n\n\n<p><code>Warning: 112 - \"network down\" \"Sat, 25 Aug 2012 23:34:45 GMT\"<\/code><\/p>\n\n\n\n<p>\u3053\u3093\u306a\u611f\u3058\u306e\u3082\u306e\u3067\u3059\u304c\u4f7f\u308f\u308c\u3066\u306a\u3044\u3067\u3059\u3057\u3001\u4ed6\u3092\u307f\u308c\u3070\u308f\u304b\u308b\u3057\u4e0d\u8981\u3067\u3059\u3088\u306d\u3063\u3066\u3053\u3068\u3067\u5ec3\u6b62\u3068\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u8b70\u8ad6\uff1a<a href=\"https:\/\/github.com\/httpwg\/http-core\/issues\/139\">Warning #139<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"433-%E6%A4%9C%E8%A8%BC%E4%B8%AD%E3%81%AB5xx%E3%81%8C%E8%BF%94%E3%81%A3%E3%81%A6%E3%81%8D%E3%81%9F%E5%A0%B4%E5%90%88%E3%81%AF%E3%83%AA%E3%83%88%E3%83%A9%E3%82%A4%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E8%A8%98%E8%BC%89\"><a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc9111#section-4.3.3\" target=\"_blank\" rel=\"noreferrer noopener\">4.3.3<\/a> \u691c\u8a3c\u4e2d\u306b5xx\u304c\u8fd4\u3063\u3066\u304d\u305f\u5834\u5408\u306f\u30ea\u30c8\u30e9\u30a4\u3067\u304d\u308b\u3053\u3068\u3092\u8a18\u8f09<\/h2>\n\n\n\n<p>\u30bf\u30a4\u30c8\u30eb\u307e\u3093\u307e\u3067\u3059\u304c\u3001\u691c\u8a3c\u6642\u306b\u30aa\u30ea\u30b8\u30f3\u304b\u3089\u306e\u30ec\u30b9\u30dd\u30f3\u30b9\u304c\u30b5\u30fc\u30d0\u30fc\u30a8\u30e9\u30fc(5xx)\u306e\u5834\u5408\u306e\u52d5\u304d\u3068\u3057\u3066<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>(OR)\u30ea\u30af\u30a8\u30b9\u30c8\u5143\u306b\u3053\u306e\u5fdc\u7b54(5xx)\u3092\u8ee2\u9001\u3059\u308b<\/li><li>(OR)\u30b5\u30fc\u30d0\u304c\u5fdc\u7b54\u3067\u304d\u306a\u304b\u3063\u305f\u3082\u306e\u3068\u3057\u3066\u52d5\u4f5c\u3092\u884c\u3046<ul><li>\u3053\u306e\u5834\u5408\u306f\u4ee5\u524d\u4fdd\u5b58\u3057\u305f\u5fdc\u7b54\u3092\u5236\u7d04\u306e\u3082\u3068\u306b\u30ec\u30b9\u30dd\u30f3\u30b9\u3059\u308b\u304b(\u8981\u306fStale\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u30ec\u30b9\u30dd\u30f3\u30b94.2.4\u53c2\u7167)\u3001\u691c\u8a3c\u8981\u6c42\u306e\u30ea\u30c8\u30e9\u30a4\u3092\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3002<\/li><\/ul><\/li><\/ul>\n\n\n\n<p>\u3068\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u8b70\u8ad6\uff1a<a href=\"https:\/\/github.com\/httpwg\/http-core\/issues\/462\">Validation failures #462<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"421-%E9%87%8D%E8%A4%87%E5%AE%9A%E7%BE%A9%E3%83%BB%E7%AB%B6%E5%90%88%E5%AE%9A%E7%BE%A9%E3%81%AE%E5%8F%96%E3%82%8A%E6%89%B1%E3%81%84\"><a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc9111#section-4.2.1\" target=\"_blank\" rel=\"noreferrer noopener\">4.2.1<\/a> \u91cd\u8907\u5b9a\u7fa9\u30fb\u7af6\u5408\u5b9a\u7fa9\u306e\u53d6\u308a\u6271\u3044<\/h2>\n\n\n\n<p>\u4f8b\u3048\u3070Expires\u304c\u8907\u6570\u5b58\u5728\u3057\u3066\u3044\u305f\u308a\u3001Cache-Control\u5185\u306bmax-age\u304c\u8907\u6570\u5b58\u5728\u3057\u3066\u3044\u305f\u5834\u5408\u306f\u3069\u3046\u3059\u308c\u3070\u3088\u3044\u3067\u3057\u3087\u3046\u304b\uff1f <\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc7234#section-4.2.1\" target=\"_blank\">RFC7234#4.2.1<\/a>\u3067\u306f\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u306e\u5024\u306f\u7121\u52b9\u3067\u3042\u308b\u3068\u307f\u306a\u3055\u308c\u308b\u3002\u7121\u52b9\u306a\u60c5\u5831\u3092\u6301\u3064\u30ad\u30e3\u30c3\u30b7\u30e5\u306fStale\u3068\u3057\u3066\u6271\u3046\u3053\u3068\u3092\u63a8\u5968\u3059\u308b\u3068\u3042\u308a\u307e\u3059\u3002 \uff08\u3053\u306e\u8a18\u8ff0\u306f\u7279\u306bMUST\/SHOULD\/MAY\u3067\u3082\u306a\u304fencouraged\uff09 <\/p>\n\n\n\n<p>\u3067\u306fno-store\u304c\u8907\u6570\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u3069\u3046\u3067\u3057\u3087\u3046\u304b\uff1f <\/p>\n\n\n\n<p>\u305d\u306e\u307e\u307e\u6349\u3048\u3066\u3057\u307e\u3046\u3068\u3001Stale\u3068\u3057\u3066\u6271\u3046\u3053\u3068\u306f\u518d\u691c\u8a3c\u3059\u308c\u3070\u5229\u7528\u304c\u3067\u304d\u308b\u72b6\u614b\u306a\u305f\u3081\u3001no-store\u306e\u671f\u5f85\u3057\u3066\u3044\u308b\u52d5\u4f5c\u3088\u308a\u7de9\u3044\u6307\u5b9a\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u305d\u3053\u3067\u4eca\u56de\u3053\u306e\u8fba\u308a\u306e\u53d6\u308a\u6271\u3044\u304c\u6574\u7406\u3055\u308c\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\u91cd\u8907\u5b9a\u7fa9\uff08\u8907\u6570\u306eExpires\u3084max-age\uff09\u306f\u6700\u521d\u306b\u51fa\u73fe\u3057\u305f\u3082\u306e\u3092\u5229\u7528\u3059\u308b\u304b\u3001\u5fdc\u7b54\u81ea\u4f53\u3092Stale\u3068\u307f\u306a\u3057\u307e\u3059\u3002<\/li><li>\u7af6\u5408\u5b9a\u7fa9\uff08max-age\u3068no-cache\u306e\u540c\u6642\u6307\u5b9a\u306a\u3069\uff09\u306f\u6700\u3082\u5236\u9650\u7684\u306a\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u3092\u5c0a\u91cd\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\uff08\u3053\u306e\u5834\u5408\u306fno-cache\uff09<\/li><li>\u30ad\u30e3\u30c3\u30b7\u30e5\u306f\u7121\u52b9\u306a\u9bae\u5ea6\u60c5\u5831\uff08max-age\u306b\u975e\u6574\u6570\u306a\u3069\uff09\u3092\u3082\u3064\u5834\u5408\u306fStale\u3068\u3057\u3066\u6271\u3046\u3053\u3068\u3092\u63a8\u5968\u3059\u308b\u3002<\/li><\/ul>\n\n\n\n<p>\u308f\u304b\u308a\u3084\u3059\u304f\u3066\u3088\u3044\u304b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u8b70\u8ad6\uff1a<a href=\"https:\/\/github.com\/httpwg\/http-core\/issues\/460\">Handling duplicate directives (part II) #460<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"51-age%E3%83%98%E3%83%83%E3%83%80%E3%81%AE%E8%A7%A3%E9%87%88%E3%82%92%E6%95%B4%E7%90%86\"><a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc9111#section-5.1\" target=\"_blank\" rel=\"noreferrer noopener\">5.1<\/a> Age\u30d8\u30c3\u30c0\u306e\u89e3\u91c8\u3092\u6574\u7406<\/h2>\n\n\n\n<p>Age\u30d8\u30c3\u30c0\u306f\u57fa\u672c\u7684\u306b1\u3064\u306e\u307f\u306e\u5b9a\u7fa9\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u3068\u3053\u308d\u304cDevTool\u3092\u958b\u304d\u306a\u304c\u3089\u898b\u3066\u3044\u308b\u3068\u305f\u307e\u306bAge\u304c\u91cd\u8907\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u305f\u308a\u3001\u30ea\u30b9\u30c8(X, XX)\u306e\u5f62\u3067\u6298\u308a\u305f\u305f\u307e\u308c\u3066\u3044\u308b\u30b1\u30fc\u30b9\u304c\u3042\u308a\u307e\u3059\u3002 <\/p>\n\n\n\n<p>\u3053\u306e\u5834\u5408\u306e\u89e3\u91c8\u3067\u306f\u6700\u521d\u306e\u3082\u306e\u3092\u5229\u7528\u3057\u3001\u305d\u308c\u4ee5\u964d\u306e\u3082\u306e\u306f\u7834\u68c4\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b(SHOULD)\u3068\u8a18\u8f09\u3055\u308c\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u8b70\u8ad6\u3092\u898b\u3066\u3082\u3089\u3048\u3070\u308f\u304b\u308b\u306e\u3067\u3059\u304c\u3001\u3053\u308c\u306f\u65e2\u5b58\u5b9f\u88c5\u3092\u53c2\u8003\u306b\u3057\u3066\u660e\u78ba\u306b\u3057\u305f\u3060\u3051\u3067\u3059\u306e\u3067\u3001\u305d\u3046\u6df7\u4e71\u306f\u306a\u3044\u304b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u8b70\u8ad6\uff1a<a href=\"https:\/\/github.com\/httpwg\/http-core\/issues\/471\">Revisiting Age error handling #471<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"521-%E8%A6%81%E6%B1%82%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%86%E3%82%A3%E3%83%96%E5%85%A8%E4%BD%93%E3%81%8Cmay%E3%81%AB%E5%A4%89%E6%9B%B4\"><a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc9111#section-5.2.1\" target=\"_blank\" rel=\"noreferrer noopener\">5.2.1<\/a> \u8981\u6c42\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u5168\u4f53\u304cMAY\u306b\u5909\u66f4<\/h2>\n\n\n\n<p>Cache-Control\u306f\u5fdc\u7b54\u6642\u306b\u3088\u304f\u898b\u304b\u3051\u307e\u3059\u304c\u3001\u8981\u6c42\u6642\u306b\u3082\u767a\u884c\u3055\u308c\u3066\u3044\u307e\u3059\u3002 <\/p>\n\n\n\n<p>\u5b9f\u969b\u30d6\u30e9\u30a6\u30b6\u3067\u30ea\u30ed\u30fc\u30c9\u3092\u884c\u3046\u3068<code>max-age=0<\/code>\u3084<code>no-cache<\/code>\u304c\u767a\u884c\u3055\u308c\u307e\u3059\u304c\u3001CDN\u3084Proxy\u3067\u306f\u89e3\u91c8\u3055\u308c\u306a\u3044\u3053\u3068\u304c\u307b\u3068\u3093\u3069\u3067\u3059\u3002(<a href=\"http:\/\/blog.xcir.net\/?p=2806\">HTTP\u30ad\u30e3\u30c3\u30b7\u30e5\u5165\u9580\u306e\u5165\u9580<\/a>)<\/p>\n\n\n\n<p>\u3067\u3059\u304c\u3001\u5358\u7d14\u306b\u4ed5\u69d8\u3092\u8aad\u3080\u9650\u308a\u3067\u306fMUST\u3067\u3042\u3063\u305f\u308a\u3059\u308b\u306e\u3067\u975e\u5e38\u306b\u89e3\u91c8\u304c\u96e3\u3057\u3044\u90e8\u5206\u3067\u3057\u305f\u3002 \u4eca\u56de\u3001\u3053\u3053\u306b\u6587\u8a00\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>This section defines cache request directives. They are advisory; caches MAY implement them, but are not required to.\n(\u610f\u8a33)\u3053\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u8981\u6c42\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002\u3053\u308c\u3089\u306e\u5b9f\u88c5\u306f\u5fc5\u9808\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\uff08\u5b9f\u88c5\u3057\u3066\u3082\u3088\u3044(MAY)\uff09<\/code><\/pre>\n\n\n\n<p>\u8981\u306f\u307e\u308b\u3063\u3068\u8981\u6c42\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u304c\u5b9f\u88c5\u306f\u5fc5\u9808\u3067\u3082\u306a\u3044\u3088\u3068\u306a\u3063\u305f\u308f\u3051\u3067\u3059\u3002 <\/p>\n\n\n\n<p>\u3053\u308c\u306b\u4f34\u3044\u4ed6\u306e\u7b87\u6240\u3067\uff08\u5177\u4f53\u7684\u306b\u306f\u5f8c\u3067\u89e6\u308c\u308b\u30ad\u30e3\u30c3\u30b7\u30e5\u4fdd\u5b58\u306e\u30d5\u30ed\u30fc\u306a\u3069\uff09\u8981\u6c42\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u306b\u95a2\u3059\u308b\u8a18\u8ff0\u304c\u6d88\u3048\u3066\u3044\u308b\u3068\u3053\u308d\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3067\u3059\u304c\u3001\u8003\u616e\u3059\u308b\u5fc5\u8981\u304c\u306a\u304f\u306a\u3063\u305f\u3068\u3044\u3046\u308f\u3051\u3067\u306f\u306a\u304f\u3001\u8981\u6c42\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u306b\u5bfe\u5fdc\u3059\u308b\u5834\u5408\u306f\u5f53\u7136\u5bfe\u5fdc\u304c\u5fc5\u8981\u3068\u306a\u308b\u306e\u3067\u6c17\u3092\u4ed8\u3051\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u8b70\u8ad6:&nbsp;<a href=\"https:\/\/github.com\/httpwg\/http-core\/issues\/129\">Request Cache-Control directives #129<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"5223-must-understand%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%86%E3%82%A3%E3%83%96%E3%81%AE%E8%BF%BD%E5%8A%A0\"><a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc9111#section-5.2.2.3\" target=\"_blank\" rel=\"noreferrer noopener\">5.2.2.3<\/a> must-understand\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u306e\u8ffd\u52a0<\/h2>\n\n\n\n<p>\u8a73\u3057\u304f\u306fjxck\u3055\u3093\u304c\u66f8\u304b\u308c\u3066\u3044\u308b\u3053\u3068\u3068\u540c\u3058\u3067\u3088\u308a\u8a73\u3057\u3044\u306e\u3067\u305d\u3061\u3089\u3092\u898b\u3066\u307b\u3057\u3044\u306e\u3067\u3059\u304c\uff08<a href=\"https:\/\/blog.jxck.io\/entries\/2021-02-12\/cache-control-must-understand.html\">Cache-Control: must-understand \u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u3068\u306f\u4f55\u304b&nbsp;<\/a>\uff09<\/p>\n\n\n\n<p>\u307e\u305a<a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc7234#section-3\" target=\"_blank\" rel=\"noreferrer noopener\">RFC7234#3<\/a>\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\u3059\u308b\u6761\u4ef6\u306b\u304a\u3044\u3066<code>the response status code is understood by the cache\uff08\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9\u3092\u7406\u89e3\u3057\u3066\u3044\u306a\u3044\u3068\u30ad\u30e3\u30c3\u30b7\u30e5\u3067\u304d\u306a\u3044\uff09<\/code>\u304c\u3042\u308a\u307e\u3059\u3002 <\/p>\n\n\n\n<p>\u4f8b\u3048\u3070\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9<code>999<\/code>\u304c\u7206\u8a95\u3057\u3066\u3001\u3053\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9\u306f\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u30ad\u30e3\u30c3\u30b7\u30e5\u304c\u53ef\u80fd\uff08\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9<code>200<\/code>\u306e\u3088\u3046\u306b\uff09\u3068\u3057\u307e\u3059\u3002 <\/p>\n\n\n\n<p>\u3053\u306e\u72b6\u614b\u3067<code>cache-control: max-age=60<\/code>\u3068\u6307\u5b9a\u3057\u305f\u3068\u3057\u3066\u3082\u3001999\u3092\u89e3\u91c8\u3067\u304d\u306a\u3044\u5b9f\u88c5\uff08CDN\u3084Proxy\uff09\u306f\u30ad\u30e3\u30c3\u30b7\u30e5\u6761\u4ef6\u306b\u5f93\u3063\u3066\u30ad\u30e3\u30c3\u30b7\u30e5\u3092\u3057\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<p>\u3053\u306e\u52d5\u304d\u306f\u5b89\u5168\u3067\u306f\u3042\u308b\u3082\u306e\u306e\u3001\u4fdd\u5b88\u7684\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u4e00\u822c\u7684\u306b\u65b0\u3057\u3044\u4ed5\u69d8\u304c\u5e83\u304f\u5b9f\u88c5\u3055\u308c\u308b\u307e\u3067\u306b\u306f\u6642\u9593\u304c\u304b\u304b\u308a\u307e\u3059\u3002 <\/p>\n\n\n\n<p>\u9069\u5207\u306acache-control\u306e\u6307\u5b9a(max-age\u6307\u5b9a)\u304c\u3042\u3063\u305f\u3068\u3057\u3066\u3082\u3001\u672a\u77e5\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9\u3068\u3044\u3046\u3060\u3051\u3067\u30ad\u30e3\u30c3\u30b7\u30e5\u304c\u3067\u304d\u306a\u3044\u3068\u3044\u3046\u306e\u306f\u3061\u3087\u3063\u3068\u53b3\u3057\u3059\u304e\u306a\u3044\u304b\uff1f\u3068\u3044\u3046\u3068\u3053\u308d\u304b\u3089\u59cb\u307e\u3063\u3066\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3068\u306f\u3044\u3048\u3001\u5358\u7d14\u306b\u300c\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9\u3092\u7406\u89e3\u3057\u3066\u3044\u306a\u3044\u3068\u30ad\u30e3\u30c3\u30b7\u30e5\u3067\u304d\u306a\u3044\u300d\u3068\u3044\u3046\u5236\u9650\u3092\u5916\u3057\u3066\u3057\u307e\u3046\u3068\u672a\u77e5\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9\u304c\u4f55\u3089\u304b\u306e\u6761\u4ef6\u306e\u5143\u306b\u30ad\u30e3\u30c3\u30b7\u30e5\u304c\u53ef\u80fd\u306a\u5834\u5408\u3001\u8aa4\u3063\u3066\u30ad\u30e3\u30c3\u30b7\u30e5\u3057\u3066\u3057\u307e\u3044\u4e8b\u6545\u306b\u3064\u306a\u304c\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002 <\/p>\n\n\n\n<p>\u65e2\u306b\u3042\u308b\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9\u3067\u4f55\u304b\u4f8b\u304c\u3042\u308b\u306e\u304b\u3068\u3044\u3046\u3068\u3001Range\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u7d50\u679c\u3067\u8fd4\u3063\u3066\u304f\u308b206\u3084IMS\/INM\u30ea\u30af\u30a8\u30b9\u30c8\u3067\u8fd4\u3063\u3066\u304f\u308b304\u3067\u3059\u3002 <\/p>\n\n\n\n<p>\u3069\u3061\u3089\u3082Cache-Control\u3067max-age\u3092\u6307\u5b9a\u3055\u308c\u308b\u53ef\u80fd\u6027\u306f\u3042\u308a\u307e\u3059\u304c\u3001\u3069\u3061\u3089\u3082\u6b63\u3057\u304f\u89e3\u91c8\u3067\u304d\u306a\u3044\u3068\u30ad\u30e3\u30c3\u30b7\u30e5\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002 <\/p>\n\n\n\n<p>\u4f8b\u3048\u3070range\u30670~1KB\u307e\u3067\u30ea\u30af\u30a8\u30b9\u30c8\u3057\u3066\u3001206\u3067\u8fd4\u3063\u3066\u304d\u305f\u4e00\u90e8\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u30ad\u30e3\u30c3\u30b7\u30e5\u3057\u305f\u3068\u3057\u307e\u3059\u3002\u6b21\u306b1~2KB\u306erange\u30ea\u30af\u30a8\u30b9\u30c8\u304c\u3042\u3063\u305f\u3068\u304d\u306b\u30010~1KB\u306e\u7bc4\u56f2\u306e\u7d50\u679c\u3092\u8fd4\u3057\u305f\u3089\u30b3\u30f3\u30c6\u30f3\u30c4\u304c\u58ca\u308c\u3066\u3057\u307e\u3044\u307e\u3059\u3002 <\/p>\n\n\n\n<p>\u3064\u307e\u308a\u7406\u89e3\u3067\u304d\u306a\u3044\u3068\u30ad\u30e3\u30c3\u30b7\u30e5\u304c\u3067\u304d\u306a\u3044\u3068\u3044\u3046\u72b6\u614b\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u305d\u3053\u3067\u3067\u304d\u305f\u306e\u304c<code>must-understand<\/code>\u3067\u3059\u3002<\/p>\n\n\n\n<p>must-understand\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u305d\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\u8981\u4ef6\u3092\u7406\u89e3\u3057\u3066\u3044\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u3068\u3044\u3046\u6307\u5b9a\u306b\u306a\u308a\u307e\u3059\u3002 <\/p>\n\n\n\n<p>\u3064\u307e\u308a\u306f\u5148\u307b\u3069\u306e206\u3084304\u306e\u3088\u3046\u306b\u30ad\u30e3\u30c3\u30b7\u30e5\u3059\u308b\u305f\u3081\u306e\u8981\u4ef6\u304c\u3042\u308b\u304b\u3089\u3001\u4f8b\u3048max-age\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u305f\u3068\u3057\u3066\u3082\u30ad\u30e3\u30c3\u30b7\u30e5\u3057\u3066\u306f\u3044\u3051\u306a\u3044\u3068\u3044\u3063\u305f\u6307\u5b9a\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3068\u306f\u3044\u3048\u3001must-understand\u306f\u65b0\u3057\u3044\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u3067\u3059\u3002\u3053\u306e\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u81ea\u4f53\u304c\u666e\u53ca\u3057\u3066\u306a\u3044\u72b6\u614b\u3067\u305d\u3093\u306a\u3053\u3068\u8a00\u308f\u308c\u3066\u3082\u30fb\u30fb\u30fb\u3068\u306a\u308a\u307e\u3059\u3002 <\/p>\n\n\n\n<p>\u305d\u3053\u3067\u3001\u540c\u6642\u306bno-store\u3092\u6307\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b(SHOULD)\u3068\u8a18\u8f09\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p><code>cache-control: max-age=60, must-understand, no-store<\/code><\/p>\n\n\n\n<p>\u305f\u3068\u3048\u3070\u3053\u306e\u3088\u3046\u306a\u6307\u5b9a\u3092\u3057\u305f\u5834\u5408\u3067\u3001must-understand\u3092\u7406\u89e3\u3057\u306a\u3044\u5b9f\u88c5\u306e\u5834\u5408\u306f\u62e1\u5f35\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u6271\u3044\u3068\u306a\u308a\u307e\u3059\uff08<a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc7234#section-5.2.3\" target=\"_blank\" rel=\"noreferrer noopener\">RFC7234#5.2.3<\/a>, <a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc9111#section-5.2.3\" target=\"_blank\" rel=\"noreferrer noopener\">RFC9111#5.2.3<\/a>\uff09 \u7406\u89e3\u3067\u304d\u306a\u3044\u62e1\u5f35\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u306e\u5834\u5408\u306f\u5358\u306b\u7121\u8996\u3059\u308b\u3060\u3051\u3067\u3059\u306e\u3067<\/p>\n\n\n\n<p><code>cache-control: max-age=60, no-store<\/code><\/p>\n\n\n\n<p>\u3068\u3044\u3063\u305f\u6307\u5b9a\u306b\u306a\u308a\u307e\u3059\u3002 \u3053\u306e\u5834\u5408no-store\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u308b\u305f\u3081\u3001\u30ad\u30e3\u30c3\u30b7\u30e5\u3055\u308c\u306a\u3044\u306e\u3067\u5b89\u5168\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u3058\u3083\u3042must-understand\u3082\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\u8981\u4ef6\u3092\u7406\u89e3\u3057\u3066\u5b9f\u88c5\u3057\u3066\u3044\u308b\u5834\u5408\u306f\u3069\u3046\u306a\u308b\u306e\u304b\u3068\u3044\u3046\u3068<\/p>\n\n\n\n<p>\u304d\u3061\u3093\u3068\u4ed5\u69d8\u4e0a\u306bno-store\u3092\u7121\u8996\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b(SHOULD)\u3068\u66f8\u304b\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u8b70\u8ad6:&nbsp;<a href=\"https:\/\/github.com\/httpwg\/http-core\/issues\/120\">Status codes and caching #120<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"31-%E3%83%98%E3%83%83%E3%83%80%E3%83%BB%E3%83%88%E3%83%AC%E3%82%A4%E3%83%A9%E3%83%BC%E3%81%AE%E5%8F%96%E3%82%8A%E6%89%B1%E3%81%84%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6\"><a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc9111#section-3.1\" target=\"_blank\" rel=\"noreferrer noopener\">3.1<\/a> \u30d8\u30c3\u30c0\u30fb\u30c8\u30ec\u30a4\u30e9\u30fc\u306e\u53d6\u308a\u6271\u3044\u306b\u3064\u3044\u3066<\/h2>\n\n\n\n<p>\u3053\u308c\u306f\u3069\u3061\u3089\u304b\u3068\u3044\u3046\u3068\u30bb\u30de\u30f3\u30c6\u30a3\u30af\u30b9\u5074(<a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc9110#section-6.5\" target=\"_blank\" rel=\"noreferrer noopener\">RFC9110#6.5<\/a>)\u306e\u9805\u76ee\u306a\u3093\u3067\u3059\u304c\u3053\u3061\u3089\u306b\u3082\u8a18\u8f09\u304c\u3042\u308b\u306e\u3067\u6ce8\u610f\u4e8b\u9805\u3068\u3057\u3066\u53d6\u308a\u4e0a\u3052\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u306f\u30ec\u30b9\u30dd\u30f3\u30b9\u306e\u306f\u3058\u3081\u306b\u9001\u3089\u308c\u3066\u304f\u308b\u30d8\u30c3\u30c0(Header)\u30d5\u30a3\u30fc\u30eb\u30c9\u3068\u30dc\u30c7\u30a3\u3092\u9001\u3063\u305f\u5f8c\u306b\u30c8\u30ec\u30a4\u30e9\u30fc(Trailer)\u30d5\u30a3\u30fc\u30eb\u30c9\u304c\u3042\u308a\u307e\u3059\u3002\uff08\u8a73\u3057\u304f\u306fflano_yuki\u3055\u3093\u306e<a href=\"https:\/\/qiita.com\/flano_yuki\/items\/d0f14fba7a9f2820e93e\">&#8220;HTTP\u30d8\u30c3\u30c0&#8221;\u304c\u6307\u3059\u3082\u306e\u3068\u306f<\/a>\u53c2\u7167\uff09<\/p>\n\n\n\n<p>\u30c8\u30ec\u30a4\u30e9\u30fc\u304c\u9001\u3089\u308c\u3066\u304d\u305f\u969b\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u52d5\u304d\u3068\u3057\u3066<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\u5225\u3005\u306b\u4fdd\u7ba1(\u30d8\u30c3\u30c0\u3068\u30c8\u30ec\u30a4\u30e9\u30fc\u3092\u5225\u7269\u3068\u3057\u3066\u6271\u3046)\u3059\u308b\u304b\u7834\u68c4\u3057\u3066\u3082\u3088\u3044(MAY)<\/li><li>\u30d8\u30c3\u30c0\u3068\u30c8\u30ec\u30a4\u30e9\u30fc\u3092\u7d44\u307f\u5408\u308f\u305b\u3066\u306f\u3044\u3051\u307e\u305b\u3093(MUST NOT)<\/li><\/ul>\n\n\n\n<p>\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u8981\u306f\u3069\u3053\u3067\u9001\u3089\u308c\u305f\u304b\u3068\u3044\u3046\u306e\u304c\u91cd\u8981\u306a\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u3082\u3042\u308b\u3093\u3067\u52dd\u624b\u306b\u30de\u30fc\u30b8\u3057\u3066\u305d\u308c\u304c\u30d8\u30c3\u30c0\u7531\u6765\u306a\u306e\u304b\u30c8\u30ec\u30a4\u30e9\u30fc\u7531\u6765\u306a\u306e\u304b\u308f\u304b\u3089\u306a\u3044\u72b6\u614b\u306b\u3059\u3093\u306a\u3068\u3044\u3046\u3053\u3068\u3060\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3053\u306e\u8fba\u308a\u306f<a rel=\"noreferrer noopener\" href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc9110#section-6.5\" target=\"_blank\">RFC9110#6.5<\/a>\u3042\u305f\u308a\u3092\u8aad\u3093\u3067\u307f\u308b\u3068\u3088\u3044\u304b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"3-%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%E3%82%92%E4%BF%9D%E5%AD%98%E3%81%99%E3%82%8B%E3%81%A8%E3%81%8D%E3%81%AE%E6%9D%A1%E4%BB%B6\"><a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc9111#section-3\" target=\"_blank\" rel=\"noreferrer noopener\">3<\/a> \u30ad\u30e3\u30c3\u30b7\u30e5\u3092\u4fdd\u5b58\u3059\u308b\u3068\u304d\u306e\u6761\u4ef6<\/h2>\n\n\n\n<p>\u5f53\u7136\u3067\u3059\u304c\u7279\u306b\u7834\u58ca\u7684\u306a\u5909\u66f4\u306f\u3042\u308a\u307e\u305b\u3093\u3002 <\/p>\n\n\n\n<p>\u30dd\u30a4\u30f3\u30c8\u3068\u3057\u3066\u306f\u3001must-understand\u3068\u30ea\u30af\u30a8\u30b9\u30c8\u6642\u306ecache-control\u304c\u6761\u4ef6\u304b\u3089\u6d88\u3048\u3066\u3044\u308b\uff08\u5148\u307b\u3069\u89e6\u308c\u305f\u3088\u3046\u306bMAY\u306b\u5909\u66f4\u3055\u308c\u305f\u306e\u3067\uff09\u3068\u3053\u308d\u304b\u306a\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u5f8c\u306fRFC7234\u306b\u304a\u3044\u3066\u3082\u4ed6\u306e\u7b87\u6240\u3092\u8aad\u3080\u3068\u66f8\u3044\u3066\u3042\u308b\u3051\u3069\u8a18\u8f09\u3055\u308c\u3066\u306a\u3044\u3082\u306e\u3092\u660e\u8a18\u3057\u305f\u3068\u3044\u3046\u3068\u3053\u308d\u3067\u3059\u3002\uff08\u7279\u306bprivate\u306e\u8ffd\u8a18\u304c\u30dd\u30a4\u30f3\u30c8\u304b\u306a\u3068\uff09<\/p>\n\n\n\n<p>RFC7234\u306e\u6642\u306f<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\u30ea\u30af\u30a8\u30b9\u30c8\u30e1\u30bd\u30c3\u30c9\u304c\u89e3\u91c8\u3067\u304d\u308b\u3082\u306e\u3067\u3001\u304b\u3064\u30ad\u30e3\u30c3\u30b7\u30e5\u53ef\u80fd\u306a\u30e1\u30bd\u30c3\u30c9\u3068\u3057\u3066\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\uff08\u30ad\u30e3\u30c3\u30b7\u30e5\u53ef\u80fd\u306a\u30e1\u30bd\u30c3\u30c9\u3092\u53c2\u7167\uff09<\/li><li>\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9\u304c\u89e3\u91c8\u3067\u304d\u308b\u3082\u306e<\/li><li>\u30ea\u30af\u30a8\u30b9\u30c8\u30fb\u30ec\u30b9\u30dd\u30f3\u30b9\u306e<code>Cache-Control<\/code>\u306b<code>no-store<\/code>\u304c\u542b\u307e\u308c\u3066\u3044\u306a\u3044<\/li><li>\u7d4c\u8def\u4e0a\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\uff08shared\uff09\u3068\u3057\u3066\u683c\u7d0d\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u969b\u3001\u30ec\u30b9\u30dd\u30f3\u30b9\u306e<code>Cache-Control<\/code>\u306b<code>private<\/code>\u306e\u6307\u5b9a\u304c\u306a\u3044\u3053\u3068<\/li><li>\u7d4c\u8def\u4e0a\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\uff08shared\uff09\u3068\u3057\u3066\u683c\u7d0d\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u969b\u3001\u30ea\u30af\u30a8\u30b9\u30c8\u306b<code>Authorization<\/code>\u30d8\u30c3\u30c0\u304c\u542b\u307e\u308c\u3066\u3044\u306a\u3044\u3053\u3068\u3001\u305f\u3060\u3057\u660e\u793a\u7684\u306b\u8a31\u53ef\u3057\u3066\u3044\u308b\u5834\u5408\u306f\u9664\u304f<\/li><li>\u30ec\u30b9\u30dd\u30f3\u30b9\u3067\u4ee5\u4e0b\u306e\u6761\u4ef6\u306e\u3046\u3061\u3069\u308c\u304b\u3092\u6e80\u305f\u3059<ul><li><code>Expires<\/code>\u30d8\u30c3\u30c0\u3092\u542b\u3080<\/li><li><code>Cache-Control<\/code>\u5185\u306b<code>max-age<\/code>\u3092\u542b\u3080<\/li><li>\u7d4c\u8def\u4e0a\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\uff08shared\uff09\u3068\u3057\u3066\u683c\u7d0d\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u969b\u3001<code>Cache-Control<\/code>\u306b<code>s-maxage<\/code>\u3092\u542b\u3080<\/li><li>\u62e1\u5f35\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u3067\u660e\u793a\u7684\u306b\u8a31\u53ef\u3055\u308c\u3066\u3044\u308b\u3082\u306e<\/li><li>\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9\u304c\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u30ad\u30e3\u30c3\u30b7\u30e5\u53ef\u80fd\u306a\u3082\u306e<\/li><li><code>Cache-Control<\/code>\u5185\u306b<code>public<\/code>\u3092\u542b\u3080<\/li><\/ul><\/li><\/ul>\n\n\n\n<p>\u4ee5\u4e0a\u306e\u6761\u4ef6\u3092\u6e80\u305f\u3059\u5834\u5408\u306f\u30ad\u30e3\u30c3\u30b7\u30e5\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3067\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u3053\u308c\u304cRFC9111\u3067\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u5909\u66f4\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\u30ea\u30af\u30a8\u30b9\u30c8\u30e1\u30bd\u30c3\u30c9\u304c\u89e3\u91c8\u3067\u304d\u308b\u3082\u306e<\/li><li>\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9\u306f\u6700\u7d42\u5fdc\u7b54\u3067\u3042\u308b<\/li><li>\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9\u304c<code>206<\/code>\u304b<code>304<\/code>\u3001\u3082\u3057\u304f\u306f<code>Cache-Control<\/code>\u306b<code>must-understand<\/code>\u3092\u542b\u3080\u5834\u5408\u3001\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9\u304c\u89e3\u91c8\u3067\u304d\u308b\u3082\u306e<\/li><li>\u30ec\u30b9\u30dd\u30f3\u30b9\u306e<code>Cache-Control<\/code>\u306b<code>no-store<\/code>\u304c\u542b\u307e\u308c\u3066\u3044\u306a\u3044<\/li><li>\u7d4c\u8def\u4e0a\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\uff08shared\uff09\u3068\u3057\u3066\u683c\u7d0d\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u969b\u3001<code>Cache-Control<\/code>\u306b<code>private<\/code>\u306e\u6307\u5b9a\u304c\u306a\u3044\u3002\u3082\u3057\u304f\u306f<code>private<\/code>\u3067\u30d5\u30a3\u30fc\u30eb\u30c9\u540d\u306e\u6307\u5b9a\u304c\u3042\u308a\u3001\u305d\u308c\u306b\u5f93\u3044\u6539\u5909\u3055\u308c\u305f\u30ec\u30b9\u30dd\u30f3\u30b9\u3067\u3042\u308b<\/li><li>\u7d4c\u8def\u4e0a\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\uff08shared\uff09\u3068\u3057\u3066\u683c\u7d0d\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u969b\u3001\u30ea\u30af\u30a8\u30b9\u30c8\u306b<code>Authorization<\/code>\u30d8\u30c3\u30c0\u304c\u542b\u307e\u308c\u3066\u3044\u306a\u3044\u3053\u3068\u3001\u305f\u3060\u3057\u660e\u793a\u7684\u306b\u7d4c\u8def\u4e0a\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\u306b\u683c\u7d0d\u3059\u308b\u3053\u3068\u3092\u8a31\u53ef\u3057\u3066\u3044\u308b\u5834\u5408\u306f\u9664\u304f<\/li><li>\u30ec\u30b9\u30dd\u30f3\u30b9\u3067\u4ee5\u4e0b\u306e\u6761\u4ef6\u306e\u3046\u3061\u3069\u308c\u304b\u3092\u6e80\u305f\u3059<ul><li><code>Cache-Control<\/code>\u5185\u306b<code>public<\/code>\u3092\u542b\u3080<\/li><li>\u683c\u7d0d\u5148\u304c\u7d4c\u8def\u4e0a\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\uff08shared\uff09<code>\u3067\u306a\u3044<\/code>\u5834\u5408\u3001<code>Cache-Control<\/code>\u5185\u306b<code>private<\/code>\u3092\u542b\u3080<\/li><li><code>Expires<\/code>\u30d8\u30c3\u30c0\u3092\u542b\u3080<\/li><li><code>Cache-Control<\/code>\u5185\u306b<code>max-age<\/code>\u3092\u542b\u3080<\/li><li>\u7d4c\u8def\u4e0a\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\uff08shared\uff09\u3068\u3057\u3066\u683c\u7d0d\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u969b\u3001<code>Cache-Control<\/code>\u306b<code>s-maxage<\/code>\u3092\u542b\u3080<\/li><li>\u62e1\u5f35\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u3067\u660e\u793a\u7684\u306b\u8a31\u53ef\u3055\u308c\u3066\u3044\u308b\u3082\u306e<\/li><li>\u30d2\u30e5\u30fc\u30ea\u30b9\u30c6\u30a3\u30c3\u30af\u306b\u30ad\u30e3\u30c3\u30b7\u30e5\u53ef\u80fd\u306a\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9<\/li><\/ul><\/li><\/ul>\n\n\n\n<p>\u4ee5\u4e0a\u306e\u6761\u4ef6\u3092\u6e80\u305f\u3059\u5834\u5408\u306f\u30ad\u30e3\u30c3\u30b7\u30e5\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u306a\u304a\u6700\u7d42\u5fdc\u7b54\u306b\u3064\u3044\u3066\u306f<a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc9110#section-15\" target=\"_blank\" rel=\"noreferrer noopener\">RFC9110#15<\/a>\u3092\u53c2\u7167\u3057\u3066\u307b\u3057\u3044\u306e\u3067\u3059\u304c\u3001\u975e\u6700\u7d42\u5fdc\u7b54\u304c1xx\u3067\u305d\u308c\u4ee5\u5916\u304c\u6700\u7d42\u5fdc\u7b54\u3068\u306a\u308a\u307e\u3059\u3002 <\/p>\n\n\n\n<p>\u307e\u305f\u3001no-store\u304c\u542b\u307e\u308c\u3066\u3044\u306a\u3044\u3053\u3068\u306e\u6761\u4ef6\u3067\u3059\u304c\u3001must-understand\u3068\u540c\u6642\u306b\u6307\u5b9a\u3055\u308c\u3066\u3044\u3066\u30ad\u30e3\u30c3\u30b7\u30e5\u6761\u4ef6\u3092\u6e80\u305f\u3057\u3066\u3044\u308b\u306e\u3067\u3042\u308c\u3070\u7121\u8996\u3067\u304d\u307e\u3059\uff08\u5148\u307b\u3069\u89e6\u308c\u305fmust-understand\u53c2\u7167\uff09 <\/p>\n\n\n\n<p>\u500b\u4eba\u7684\u306b\u306f\u3053\u308c\u3082\u3053\u3053\u306b\u542b\u3081\u3066\u304a\u3051\u3070\u3088\u304b\u3063\u305f\u3093\u3058\u3083\u30fb\u30fb\u3068\u3082\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"4-%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%E3%81%8B%E3%82%89%E3%81%AE%E5%BF%9C%E7%AD%94%E3%81%AE%E6%A7%8B%E7%AF%89%E6%B3%95\"><a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc9111#section-4\" target=\"_blank\" rel=\"noreferrer noopener\">4<\/a> \u30ad\u30e3\u30c3\u30b7\u30e5\u304b\u3089\u306e\u5fdc\u7b54\u306e\u69cb\u7bc9\u6cd5<\/h2>\n\n\n\n<p>\u3053\u3061\u3089\u306f\u307b\u307c\u5909\u66f4\u304c\u3042\u308a\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<p>\u305b\u3044\u305c\u3044\u30ea\u30af\u30a8\u30b9\u30c8\u6642\u306ecache-control\u3084Pragma\u306e\u8a18\u8ff0\u304c\u6d88\u3048\u305f\u3050\u3089\u3044\u3067\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\u30ea\u30af\u30a8\u30b9\u30c8\u3068\u30ad\u30e3\u30c3\u30b7\u30e5\u306eURI\u304c\u4e00\u81f4\u3059\u308b\u3053\u3068<\/li><li>\u30ad\u30e3\u30c3\u30b7\u30e5\u683c\u7d0d\u6642\u306e\u30e1\u30bd\u30c3\u30c9\u304c\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u30e1\u30bd\u30c3\u30c9\u3067\u4f7f\u3048\u308b\u3053\u3068\u3092\u8a31\u5bb9\u3057\u3066\u3044\u308b\u3053\u3068<\/li><li>\u30ad\u30e3\u30c3\u30b7\u30e5\u4e2d\u306b<code>Vary<\/code>\u3067\u30d8\u30c3\u30c0\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u30ad\u30e3\u30c3\u30b7\u30e5\u4e2d\u306e\u30bb\u30ab\u30f3\u30c0\u30ea\u30ad\u30fc\u3068\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u6307\u5b9a\u30d8\u30c3\u30c0\u306e\u5024\u304c\u4e00\u81f4\u3059\u308b\u3053\u3068<\/li><li>\u30ea\u30af\u30a8\u30b9\u30c8\u4e2d\u306e<code>Cache-Control<\/code>\u304b<code>Pragma<\/code>\u5185\u306b<code>no-cache<\/code>\u3092\u542b\u3080\u5834\u5408\u306f\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u691c\u8a3c\u304c\u6210\u529f\u3057\u3066\u3044\u308b\u3053\u3068<strong>\uff08RFC9111\u3067\u306f\u3053\u306e\u6761\u4ef6\u304c\u6d88\u3048\u305f\uff09<\/strong><\/li><li>\u30ad\u30e3\u30c3\u30b7\u30e5\u4e2d\u306e<code>Cache-Control<\/code>\u5185\u306b<code>no-cache<\/code>\u3092\u542b\u3080\u5834\u5408\u306f\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u691c\u8a3c\u304c\u6210\u529f\u3057\u3066\u3044\u308b\u3053\u3068<\/li><li>\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u72b6\u614b\u304c\u4ee5\u4e0b\u306e\u3069\u308c\u304b\u3067\u3042\u308b<ul><li>Fresh<\/li><li>Stale\u3067\u306e\u5229\u7528\u304c\u8a31\u5bb9\u3055\u308c\u3066\u3044\u308b<\/li><li>\u691c\u8a3c\u304c\u6210\u529f\u3057\u3066\u3044\u308b<\/li><\/ul><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u6700\u5f8c\u306b<\/h2>\n\n\n\n<p>\u4ed6\u306b\u3082\u5909\u66f4\u8981\u7d20\u304c\u3042\u308a\u307e\u3059\u306e\u3067\u662f\u975e<a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc9111.html#name-changes-from-rfc-7234\">Appendix B. Changes from RFC 7234<\/a>\u3092\u53c2\u7167\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p><iframe style=\"width:120px;height:240px;\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" frameborder=\"0\" src=\"\/\/rcm-fe.amazon-adsystem.com\/e\/cm?lt1=_blank&amp;bc1=000000&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;t=yellowtail00-22&amp;language=ja_JP&amp;o=9&amp;p=8&amp;l=as4&amp;m=amazon&amp;f=ifr&amp;ref=as_ss_li_til&amp;asins=4297119250&amp;linkId=d2bf2be7d8c22e9d03afb3fd86ef9f31\"><\/iframe><\/p>\n<div class='wp_social_bookmarking_light'>        <div class=\"wsbl_hatena\"><a href='\/\/b.hatena.ne.jp\/add?mode=confirm&url=https%3A%2F%2Fblog.xcir.net%2F%3Fp%3D2909&title=RFC9111%20HTTP%20Caching%E3%81%AE%E5%A4%89%E6%9B%B4%E7%82%B9%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6' title='\u3053\u306e\u30a8\u30f3\u30c8\u30ea\u30fc\u3092\u306f\u3066\u306a\u30d6\u30c3\u30af\u30de\u30fc\u30af\u306b\u8ffd\u52a0' rel=nofollow class='wp_social_bookmarking_light_a' target=_blank><img src='https:\/\/blog.xcir.net\/wp-content\/plugins\/wp-social-bookmarking-light\/public\/images\/hatena.gif' alt='\u3053\u306e\u30a8\u30f3\u30c8\u30ea\u30fc\u3092\u306f\u3066\u306a\u30d6\u30c3\u30af\u30de\u30fc\u30af\u306b\u8ffd\u52a0' title='\u3053\u306e\u30a8\u30f3\u30c8\u30ea\u30fc\u3092\u306f\u3066\u306a\u30d6\u30c3\u30af\u30de\u30fc\u30af\u306b\u8ffd\u52a0' width='16' height='12' class='wp_social_bookmarking_light_img' \/><\/a><\/div>        <div class=\"wsbl_hatena_users\"><a href='\/\/b.hatena.ne.jp\/entry\/https:\/\/blog.xcir.net\/?p=2909' title='\u306f\u3066\u306a\u30d6\u30c3\u30af\u30de\u30fc\u30af - RFC9111 HTTP Caching\u306e\u5909\u66f4\u70b9\u306b\u3064\u3044\u3066' rel=nofollow class='wp_social_bookmarking_light_a' target=_blank><img src='\/\/b.hatena.ne.jp\/entry\/image\/https:\/\/blog.xcir.net\/?p=2909' alt='\u306f\u3066\u306a\u30d6\u30c3\u30af\u30de\u30fc\u30af - RFC9111 HTTP Caching\u306e\u5909\u66f4\u70b9\u306b\u3064\u3044\u3066' title='\u306f\u3066\u306a\u30d6\u30c3\u30af\u30de\u30fc\u30af - RFC9111 HTTP Caching\u306e\u5909\u66f4\u70b9\u306b\u3064\u3044\u3066'   class='wp_social_bookmarking_light_img' \/><\/a><\/div>        <div class=\"wsbl_facebook\"><a href='http:\/\/www.facebook.com\/share.php?u=https%3A%2F%2Fblog.xcir.net%2F%3Fp%3D2909&t=RFC9111%20HTTP%20Caching%E3%81%AE%E5%A4%89%E6%9B%B4%E7%82%B9%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6' title='Facebook \u306b\u30b7\u30a7\u30a2' rel=nofollow class='wp_social_bookmarking_light_a' target=_blank><img src='https:\/\/blog.xcir.net\/wp-content\/plugins\/wp-social-bookmarking-light\/public\/images\/facebook.png' alt='Facebook \u306b\u30b7\u30a7\u30a2' title='Facebook \u306b\u30b7\u30a7\u30a2' width='16' height='16' class='wp_social_bookmarking_light_img' \/><\/a><\/div>        <div class=\"wsbl_linkedin\"><a href='\/\/www.linkedin.com\/shareArticle?mini=true&url=https%3A%2F%2Fblog.xcir.net%2F%3Fp%3D2909&title=RFC9111%20HTTP%20Caching%E3%81%AE%E5%A4%89%E6%9B%B4%E7%82%B9%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6' title='LinkedIn \u306b\u30b7\u30a7\u30a2' rel=nofollow class='wp_social_bookmarking_light_a' target=_blank><img src='https:\/\/blog.xcir.net\/wp-content\/plugins\/wp-social-bookmarking-light\/public\/images\/linkedin.png' alt='LinkedIn \u306b\u30b7\u30a7\u30a2' title='LinkedIn \u306b\u30b7\u30a7\u30a2' width='16' height='16' class='wp_social_bookmarking_light_img' \/><\/a><\/div>        <div class=\"wsbl_twitter\"><a href=\"https:\/\/twitter.com\/share\" class=\"twitter-share-button\" data-url=\"https:\/\/blog.xcir.net\/?p=2909\" data-text=\"RFC9111 HTTP Caching\u306e\u5909\u66f4\u70b9\u306b\u3064\u3044\u3066\" data-lang=\"ja\">Tweet<\/a><\/div><\/div>\n<br class='wp_social_bookmarking_light_clear' \/>\n","protected":false},"excerpt":{"rendered":"<p>\u306f\u3058\u3081\u306b \u5c11\u3057\u524d\u306bHTTP\u95a2\u9023\u306eRFC\u304c\u6539\u8a02\u3055\u308c\u307e\u3057\u305f\u306d\uff01\uff08RFC91XX\uff09 \u3053\u306e\u3042\u305f\u308a\u306e\u5168\u822c\u7684\u306a\u8a71\u306f\u65e2\u306b\u8a73\u3057\u3044\u65b9\u3005\u304c\u89e6\u308c\u3066\u3044\u307e\u3059\u306e\u3067\uff08HTTP \u95a2\u9023 RFC \u304c\u5927\u91cf\u306b\u51fa\u305f\u8a71\u3068 3 \u884c\u307e\u3068\u3081\uff09\u3001\u57fa\u672c\u7684\u306b\u306f\u305d\u3063\u3061\u3092\u53c2\u7167\u3059\u308c <a href='https:\/\/blog.xcir.net\/?p=2909' class='excerpt-more'>[&#8230;]<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-2909","post","type-post","status-publish","format-standard","hentry","category-3","category-3-id","post-seq-1","post-parity-odd","meta-position-corners","fix"],"_links":{"self":[{"href":"https:\/\/blog.xcir.net\/index.php?rest_route=\/wp\/v2\/posts\/2909","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.xcir.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.xcir.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.xcir.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.xcir.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2909"}],"version-history":[{"count":14,"href":"https:\/\/blog.xcir.net\/index.php?rest_route=\/wp\/v2\/posts\/2909\/revisions"}],"predecessor-version":[{"id":2923,"href":"https:\/\/blog.xcir.net\/index.php?rest_route=\/wp\/v2\/posts\/2909\/revisions\/2923"}],"wp:attachment":[{"href":"https:\/\/blog.xcir.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2909"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.xcir.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2909"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.xcir.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2909"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}