[306] [[HTTP]] の[[状態符号]] [DFN[[CODE(HTTP)[[[305]]]] (Use Proxy)]] は、
[[串]]を使ってアクセスするべきであるというある種の[[リダイレクト]]を表しています。

[310] [[利用者エージェント]]は、 [CODE(HTTP)[[[305]]]] を受け取った場合、元の[[要求]]をもう一度、
指定された[[串]]を介して行うことが期待されています。[[串]]を使えという指示はその[[要求]]のみについてであって、
それ以降の要求は (たとえ同じ[[要求URL]]であっても) [[串]]を使わない元々の設定で行う必要があります。

* 串・キャッシュとの関係

[311] この[[状態符号]]は[[起源鯖]]しか生成してはいけないことになっていますが、
元々[[起源鯖]]と[[利用者エージェント]]の間に[[串]]が挟まってる場合に、
その[[串]]が勝手に [CODE(HTTP)[[[305]]]] を返したとしても、
[[利用者エージェント]]にはそれを検出する術はなさそうです。

;; [[RFC 2616]] はそれは[[保安]]上問題があると指摘していますね (>>308)。

[312] [CODE(HTTP)[[[305]]]] [[応答]]であることは、正しい[[キャッシュ]]が返しても良いとされる条件
[SRC[[[RFC 2616]] 13.1.1]] に含まれています。とはいえ、 [CODE(HTTP)[[[305]]]] 
[[応答]]は明示的に[[鯖]]から指定がない限り[[キャッシュ可能]]ではありません [SRC[[[RFC 2616]] 13.4]]。
従って [CODE(HTTP)[[[305]]]] [[応答]]は[[鯖]]から明示的に指定しない限り[[キャッシュ]]に蓄積されて再利用されることはありません。

* 歴史

[FIG(quote)[
[FIGCAPTION[
[313] RFC 2068・2616 (HTTP/1.1)  10.3.6 305 Use Proxy
]FIGCAPTION]

> The requested resource MUST be accessed through the proxy given by
the Location field. The Location field gives the [DEL[URL]] [INS[URI]] of the proxy.
The recipient is expected to repeat [DEL[the]] [INS[this single]] request via the proxy. [INS[305 responses MUST only be generated by origin servers.]]

[307] [[要求]]された[[資源]]は、 [CODE(HTTP)@en[[[Location]]]] [[欄]]によって示された[[串]]を通じてアクセスし[['''なければなりません''']]。
[CODE(HTTP@en[[[Location]]]] [[欄]]は[[串]]の [DEL[[[URL]]]] [INS[[[URI]]]]
を示しています。受信者は[INS[この]][[要求]][INS[だけ]]を指定された[[串]]を介してもう一度行うことが期待されています。[INS[[CODE(HTTP)[[[305]]]] [[応答]]は[[起源鯖]]によってのみ生成されなければ[['''なりません''']]。]]

[INS[

> Note: RFC 2068 was not clear that 305 was intended to redirect a
single request, and to be generated by origin servers only.  Not
observing these limitations has significant security consequences.

[308] 
注意: [[RFC 2068]] においては[[リダイレクト]]がその1回の[[要求]]のみを意図していること、
[[起源鯖]]によってのみ生成されることを意図していることが明確ではありませんでした。
このような制限に従わなければ、重大な保安上の問題につながりかねません。
]INS]
]FIG]

;; [309] [[RFC]] のこの部分 (に限りませんが。) は [[RFC 2119]] [[助動詞]]の使い方がおかしいですねぇ・・・。

[315] [[RFC 2616]] の改訂版である [[RFC 7231]] は[[セキュリティー]]上の問題
[SRC[>>1]] から[RUBYB[[[非推奨]]]@en[deprecated]]
[SRC[>>314]] としています。

[REFS[
- [314] [CITE@en[RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content]] ([TIME[2014-08-07 05:54:02 +09:00]] 版) <https://tools.ietf.org/html/rfc7231#section-6.4.5>
- [1] [CITE@en[RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content]] ([TIME[2014-08-07 05:54:02 +09:00]] 版) <https://tools.ietf.org/html/rfc7231#page-92>
]REFS]