505

状態符号 505 (HTTP)

[507] 505 (HTTP Version Not Supported) は、指定されたプロトコルの版に対応しないことを示す状態符号です。

[508] プロトコルの版には整数部 (メジャーバージョン) と小数部 (マイナーバージョン) があります。 HTTP ではメッセージの処理の可否はメジャーバージョンで判断することになっています。 メジャーバージョンがの実装している版でなければ 505 を返し、実装している版であれば、 505 は返さずにその版で実装している最大のマイナーバージョンで応答します。

プロトコルの版も参照してください。

仕様書

意味

[5] 505 は、要求メッセージで使われている HTTPプロトコルの版大版 (メジャーバージョン) (major version) が対応していないか、 対応を拒むことを示します >>3

[418] は、要求のメジャーバージョンで応答を送れない、送りたくない時は、 505 応答を送って構いません。 >>58

構文

[506] は、なぜその版に対応しないかとどのプロトコルには対応しているかを説明する表現生成するべきです >>3

[510] Upgrade: のような対応している版を明示する機能は定義されていません。

文脈

[1] この状態符号は、 RFC1945 では規定されていませんでしたから、 HTTP/1.0 の実装や古い HTTP/1.1 の実装は知らないかもしれません。

[511] は現在使用されている HTTP/0.9HTTP/1.0HTTP/1.1 は少なくても実装する必要はありますから、この状態符号を使う可能性があるのはメジャーバージョンとして 2以上の数値が指定された場合です。

[6] ところで、 HTTP/2HTTP/3HTTP/1.1 とはまったく異なる構造のプロトコルになりました。 そのため HTTP/1.1 のような要求行プロトコルの版で互いに区別するという仕組みを採用していません。 従って 505 がその指定の失敗で使われることもありません。

[7] その HTTP/1.1 に於いてすら、実装は使っていない (>>509) ということですから、 この状態符号ははじめからその存在意義がないまま事実上役目を終えたといえます。

処理

[8] この状態符号を受け取った HTTPクライアントがどうするべきかは定められていません。

[9] 新しい HTTP の版が出現したときに、新しい版で試して駄目だったら古い版で再試行する、 というような手順が想定されていたのかもしれませんが、 実用されることはありませんでした。

[10] 現実的にはHTTPクライアントは他の 5xx 応答と同じように処理するのがいいのでしょう。

実装

[509] Apachenginx も、存在しないプロトコルの版を指定しても無視して HTTP/1.1 として扱うようです。 505 は返しません。

歴史

[4] RFC 2068・RFC 2616 (HTTP/1.1) 10.5.5 10.5.6 505 HTTP Version Not Supported

The server does not support, or refuses to support, the HTTP protocol version that was used in the request message. The server is indicating that it is unable or unwilling to complete the request using the same major version as the client, as described in section 3.1, other than with this error message. The response SHOULD contain an entity describing why that version is not supported and what other protocols are supported by that server.

サーバーは、要求メッセージで使われた HTTP のプロトコルの版に対応していないか、 又は対応することを拒否します。サーバーは、 この誤りメッセージの他には、 クライアントと同じ (メジャー) 版を使った要求を完了させることができないか、又はその意思がないことを示しています。 応答は、なぜその版に対応していないのか及びそのサーバーで他のどのプロトコルに対応しているのかを説明した実体を含んでいるべきです

メモ

[512] RFC 3507 - Internet Content Adaptation Protocol (ICAP) ( ( 版)) http://tools.ietf.org/html/rfc3507#section-4.3.3