[1] Pragma: ヘッダーは、
キャッシュに関する指示を記述するものでした。 Cache-Control:
ヘッダーの導入以前に使われていました。
[16] Pragma: ヘッダーは、 HTTP/1.0
時代に受信者に対する実装規定の指令を記述するためのものとして導入されました。
HTTP/1.1 時代になって相互運用性を損ねるものとして非推奨とされています。 >>14
[17] 現在は Pragma: ヘッダーは
HTTP/1.0 キャッシュとの後方互換性のために
no-cache 指令を記述するためのものとされています >>14。
[21] Pragma: ヘッダーの値は、1つ以上の
pragma-directive のリスト (#) です >>14。
[22] pragma-directive は、名前と値を =
で連結したものです。ただし = と値は省略できます。 >>14
[23] 名前は字句です >>14。大文字・小文字不区別です。
[26] 値の有無やその解釈は pragma-directive によって異なります。
[18] クライアントは、 HTTP/1.0 キャッシュとの後方互換性のために必要なら
Pragma: no-cache を指定できます >>14。
[19] 要求に Cache-Control: ヘッダーが含まれる場合、
Pragma: ヘッダーは無視されます >>14。
[30] EventSource のための fetch では、
応答のキャッシュのヘッダーは無視するべきで、
キャッシュを使うべきではありません >>31。
pragma-directive[7] pragma-directive としては次のものがあります。
for 引数を提案しています。要求では Pragma: for=anyone または Pragma: for=fqdn.example, 応答ではこれに加えて Pragma: for=request が使えます。複数可。実体の対象利用者を表すものみたいです。実用になるのか怪しいですし、結局標準化されずじまい。歴史的なものですね。 提案者のところのサーバーで実装していたみたいですが、今そのサーバーは普通の Apache みたいです。[5] >>11 は no-cache を RFC 1945 と同じ意味で定義しています。それだけ。
[6] >>11 は、構文を自然言語で Pragma := #(token *(";" parameter)) と定義していました。
The Pragma general-header field is used to include implementation-specific directives that
may{2616} might apply to any recipient along the request/response chain. All pragma directives specify optional behavior from the viewpoint of the protocol; however, some systemsmayMAY require that behavior be consistent with the directives.
Pragma 一般頭欄は、要求・応答鎖沿いの任意の受信者に適用するかもしれない実装規定の指令を含めるのに使います。
すべての語用指令は、プロトコルの見地からの任意選択の動作を指定します。
しかし、システムによってはその動作が指令と一貫していることを要求しても構いません。
- Pragma = "Pragma" ":" 1#pragma-directive
- pragma-directive = "no-cache" | extension-pragma
extension-pragma = token [ "=" word ]- extension-pragma = token [ "=" ( token | quoted-string ) ]
When the
"no-cache"directive is present in a request message, an applicationshouldSHOULD forward the request toward the origin server even if it has a cached copy of what is being requested.This allows a client to insist upon receiving an authoritative response to its request. It also allows a client to refresh a cached copy which is known to be corrupted or stale.This pragma directive has the same semantics as the no-cache cache-directive (see section 14.9) and is defined here for backwardscompatibility with HTTP/1.0. Clients SHOULD include both header fields when a no-cache request is sent to a server not known to be HTTP/1.1 compliant.
no-cache 指令が要求メッセージに示されている時は、
応用は、たとえ要求されているもののキャッシュした複製を持っていたとしても、
その要求を起源サーバーに転送するべきです。これによってクライアントはその要求に対する本家応答を受取ることを主張できます。クライアントが破壊されているまたは腐敗していると知っているキャッシュされた複製を更新することも可能になります。 この語用指令は、 no-cache cache-directive と同じ意味を持ちまして、ここでは HTTP/1.0 との後方互換性のために定義します。クライアントは、 no-cache 要求を HTTP/1.1 に従っていると分かっていないサーバーに送るときは両方の頭欄を含めるべきです。
Pragma directives
mustMUST be passed through by a proxy or gateway application, regardless of their significance to that application, since the directivesmaymight {2616} be applicable to all recipients along the request/response chain. It is not possible to specify a pragma for a specific recipient; however, any pragma directive not relevant to a recipientshouldSHOULD be ignored by that recipient.
Pragma 指令を、串や関門の応用は、その応用での重要度に拘らず、
次に渡さなければなりません。なぜなら、指令は要求・応答鎖沿いのすべての受信者に適用可能かもしれないからです。
特定の受信者に語用を指定することはできません。しかし、受信者に関係のない語用指令はその受信者では無視するべきです。
HTTP/1.1 clients SHOULD NOT send the Pragma request-header.HTTP/1.1 caches SHOULD treat "Pragma: no-cache" as if the client had sent "Cache-Control: no-cache". No new Pragma directives will be defined in HTTP.
;HTTP/1.1 クライアントは
HTTP/1.1 キャッシュは Pragma 要求頭を送るべきではありません。Pragma: no-cache をクライアントが
Cache-Control: no-cache を送ったのであるとして扱うべきです。
新しい Pragma 指令は HTTP では定義されません。
Note: because the meaning of "Pragma: no-cache as a response header field is not actually specified, it does not provide a reliable replacement for "Cache-Control: no-cache" in a response (ママ)
注意: 応答頭欄としての Pragma: no-cache の意味は実際には規定されていませんから、
応答中での Cache-Control: no-cache の信頼できる置換は提供されません。
注: 注記のない修正部は RFC 1945→2068 の変更点。
[12] RFC 3507 - Internet Content Adaptation Protocol (ICAP) ( ( 版)) http://tools.ietf.org/html/rfc3507#section-4.3.1
[8] HTTP/1.1 Pragma header ( 版) http://www.http-stats.com/Pragma
* Pragma: no-cache
* Pragma: no-cache, xResetStrm=1
* Pragma: No-cache
* Pragma: cache
* Pragma: No-Cache
* Pragma: private
* Pragma: public
* Pragma: no-store
* Pragma: no-store, no-cache, must-revalidate
* Pragma: no cache
* Pragma: NO-CACHE
* Pragma: Private
* Pragma: no-cache, no-cache
* Pragma: no-cash
* Pragma: no-chache
* Pragma: no-store,no-cache
* Pragma: no_cache
* Pragma: nocachePragma: no-cache,rate=1.000000,stream-time=0,stream-offset=0:0,request-context=1,max-duration=0
Pragma: xClientGUID={baadc101-8645-d5a3-9571d14a66ea2b8f}[305] 2.2.1.4 Pragma ( ( 版)) http://msdn.microsoft.com/en-us/library/cc251236.aspx
[306] Request Headers in the HTTP protocol ( ( 版)) http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html#pragma
[307] The Performance Impact of META REFRESH - IEInternals - Site Home - MSDN Blogs ( ( 版)) http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/meta-refresh-causes-additional-http-requests.aspx
Pragma: akamai-x-cache-on, akamai-x-cache-remote-on, akamai-x-check-cacheable, akamai-x-get-cache-key, akamai-x-get-ssl-client-session-id, akamai-x-get-true-cache-key, akamai-x-get-request-id
akamai-x-cache-on, akamai-x-cache-remote-on, akamai-x-check-cacheable, akamai-x-get-cache-key, akamai-x-get-extracted-values, akamai-x-get-nonces, akamai-x-get-ssl-client-session-id, akamai-x-get-true-cache-key, akamai-x-serial-no, akamai-x-get-request-id, akamai-x-request-trace, akamai-x--meta-trace, akama-xi-get-extracted-values
[34] Pragma · Issue #140 · httpwg/http-core () https://github.com/httpwg/http-core/issues/140
[35] Deprecate Pragma by mnot · Pull Request #174 · httpwg/http-core () https://github.com/httpwg/http-core/pull/174
no-cacheが大文字・小文字不区別と明確になっていますが、それ以外がそうなのかどうかは明言されていません。