どこへ案内された?
305 は「このリソースに直接アクセスせず、指定したプロキシ経由で取りに行ってね」と案内する歴史的なサインです。 渡り廊下で先生が「直接職員室に行かないで、まず受付の先生を通ってから」と道筋を指定する——そんな迂回案内のイメージに近い番号です。
ただし、この応答はセキュリティ上の問題で現在は使われません (deprecated)。多くのブラウザやクライアントは 305 を見ても従わないので、新しいシステムで 305 を返す設計はおすすめできません。仕様の歴史を知るためのコードと考えてよいです。
渡り廊下からのひとこと
校舎の構造が古い時代には、「直接ここに来ないで、必ず受付を通ってください」と細かく動線を指定する案内が多くありました。事故防止のためでしたが、生徒が増えると現実的でなくなり、いまは多くの学校でその制限は外されています。
305 もそれと似た歴史を辿ったサインです。「プロキシを通せ」と言われても、現代のクライアントは従わない。古い仕様の中で姿だけ残っている、いわば資料館入りした番号と理解して大丈夫です。
たどり着くまで
案内に従うときの一歩:
- クライアントは 305 を無視するのが現実:実装側は対応しなくてよい
- 代わりに 407 (Proxy Authentication Required) を検討:プロキシ経由を強制したい場合
- 新しい設計では使わない:既存実装を撤去する方向で
- ネットワーク制御は別の手段で (管理者向け):DNS/ファイアウォール/明示的な接続設定で実現する
実際にはこう見える
$ リクエスト
curl -i https://example.com/some/path ↓ レスポンス
HTTP/1.1 305 Use Proxy
Content-Type: text/html; charset=utf-8
<!DOCTYPE html>
<html><body><h1>305 Use Proxy</h1></body></html>