HTTPステータスコード

2012/06/30

経緯

最近、RESTを利用したシステム開発を行っている。

HTTPステータスコードの200や404とか503はよく聞いていたんだけど、それ以外にも結構あることを知った。

備忘録として残しておこうかと。

参考資料

ちなみに、HTTPステータスコードを調べるのに下記のサイトを参考にしました。

  1. http://www.studyinghttp.net/status_code
  2. http://mimibukuro.ddo.jp/memo/HTTP_error.html

HTTPのステータスコードとは

3桁のコードでレスポンスの結果を表しているもの。1桁目で大体の意味が分かるようになっている。

1xx: Informational - リクエストは受け入れられ、処理を続けている。

2xx: Success - 動作は正常に受信され、理解され、受け入れられた。

3xx: Redirection - リクエストを完了するためには、さらに動作を行わなければならない。

4xx: Client Error - リクエストしている側(クライアント側)に問題がある。

5xx: Server Error - リクエストを受けている側(サーバ側)に問題がある。

1xx: Informational (情報)

コードメッセージ意味解釈
100Continue仮レスポンスとりあえず話を聞こうか
101Switching Protocolsサーバ側プロトコル変更完了ちょっと待て担当者に代わるわ
102Processing暫定的レスポンスちょw時間かかるしw

2xx: Success (成功)

適当にわかりやすいよう具体的なシチュエーションを入れてみる。

コードメッセージ意味シチュエーション
200OKリクエスト成功わかった。OK牧場
201Created Protocolsクエストを受けリソースを作成した。RESTのPUTやPOSTの結果として返ってくることが多いタカシ、ごはん作ってるのでチンして温めておいて
202Acceptedリクエストを受け付けたとりあえず、やってみるわ。ちょい待てよ
203Non-Authoritative Informationオリジンサーバが発行したものではない私ではない誰かがやってくれているよ
204No ContentRESTのDELETEとかで返ってくる奴を消せばいいんだな
205Reset Content現在の画面をリセットまあ、白紙に戻そうか
206Partial Content範囲リクエストを受け入れて部分的レスポンスを返す全部は無理やから指定してきた一部のみOK
207Multi-Status複数の独立した操作についてのステータスを提供ガンダムではなく、WebDAVのオールレンジ攻撃ってやつ
208Already Reportedあるリソースに対して別の名前を結びつけるシンボリックリンク。「お前は今日から千だよ」
226IM Used1つ以上のインスタンス操作の結果の表現よくある、顧客が本当に必要だったもの的なもの

3xxレスポンス:転送

SEがよく遭遇するシチュエーションで解説してみる。

コードメッセージ意味SE的シチュエーション
300Multiple Choicesユーザ情報が足りないため、該当するリソースが複数ヒット障害原因は、ココとココとココと…
301Moved Permanentlyリソースの恒久的な移動リファクタリングしすぎちゃって…
302Foundリソースが保存されている現時点のURLお前、まだ仕事場にいたのかよ
303See Other別の URI の元から発見そんなことよりこいつを見てくれ。こいつをどう思う?
304Not Modifiedアクセスは許可。更新されていない。キャッシュ使用同じことは聞いてくるな
305Use Proxyプロクシ経由で単一のリクエストを再送信プロマネ通してから言ってくんない?
306(Unused)将来のために予約使われないロジックだけど、いざという時のため、期限切れかもしれないけれど
307Temporary Redirect一時的に別の URI に属している302と同じだけど、こっちの方がシャレオツじゃね?わからん人多いけど
308Permanent Redirectリソースが恒久的に移動301と同じようだけど、今はやりのコード。誰も理解できないけれど
350-ある URI を別の URI に変換(WIRE というプロトコルで1998年9月18日で期限切れ)

4xxレスポンス:クライアントエラー

ちょっとエッチなシチュエーションで解説やってみる。

コードメッセージ意味風俗的シチュエーション
400Bad Requestリクエストの構文が間違い要求する内容をしっかり確認してくださいね
401Unauthorizedユーザ認証が必要お名前よろしいですか?
402Payment Required有料ページへのアクセス前金制のポッキリ価格です
403Forbiddenメソッドの実行は、サーバによって禁止張り紙か口頭で説明があります
404Not Found適切なレスポンスが無いご指名の方は、いませんですが…
405Method Not Allowed使用されたメソッドを許可していないそれは禁止事項です
406Not Acceptable該当するリソースがないお客様のご指名にあう人は在籍していません
407Proxy Authentication Requiredプロクシへのユーザ認証が必要ちょっと待て担当者に代わるわ
408Request Timeoutリクエストが時間以内に完了していないお酒飲んでいたら仕方ないこともありますよね
409Conflictリソースの現在の状態と矛盾している半年前に辞めたはずの「マキ」がいる!?
410Goneサーバでは利用できないし、転送先のアドレスも分からないいつの間に店もやめて連絡先かえたんだよ、畜生
411Length RequiredContent-Length ヘッダがない合コンで女性から第一声で「最初に終了時間決めとくね」
412Precondition FailedIf-Match, If-None-Match, If-Unmodified-Since ヘッダで与えられる条件の一つ以上が偽である美女でスタイル良し、性格よくて彼氏なしの処女。そんな女の子いませんよ
413Request Entity Too Largeリクエストエンティティが大きすぎあんた、現実を見てくださいよ
414Request-URI Too LongリクエストURIが長すぎるもっと端的に。要望を伝えてください
415Unsupported Media Type用意していないリソース熟女専門店で20代がいるわけないだろ。jk
416Requested Range Not Satisfiable範囲リクエスト(部分的GETリクエスト,レジューム)が失敗だから、20代はいないって
417Expectation Failed希望する拡張ができないそれは担当外のサービスとなります。
418I'm a teapotエイプリルフールRFCティーポットへコーヒーを淹れさせようとする試行は、エラーコード "418 I'm a teapot" という結果に終わるべき
420Policy Not Fulfilled -ルール無用の残虐ファイトをお好みですか?
421Bad Mapping -あなたの理想に当てはまる異性はこの世にはいないんです
422Unprocessable Entity含まれる命令を処理できない日本語なのはわかるが、ちょっと何言っているかわかんない
423Locked目的先リソースがロックされているちょっと今、指名が入っちゃってるんですよ
424Failed Dependencyリクエストされた動作は他の動作に依存時間によってコース内容変わってきちゃうんですよね
425(Reserved for WebDAV advanced collections expired proposal)ユーザが勝手に変更はできないお前の好きなようにはさせない
426Upgrade RequiredHTTP/1.1から他のものへ「アップグレード」することを強制するチェンジですか、それでは、この方で
428Precondition Required条件付きリクエストを要求先言っておくと条件が変わるかもしれないから
429Too Many Requests多くのリクエスト送りすぎお客さん、ちょっと口数多くありません?
431Request Header Fields Too Largeリクエスト内のヘッダフィールドが長すぎるいらん御託が長すぎますね
451Unavailable For Legal Reasons法的請求に応じてリソースへのアクセスを拒否たいーほ

5xxレスポンス:サーバエラー

もう、ネタがつきました。

コードメッセージ意味シチュエーション
500Internal Server Errorサーバ内部でエラーが発生正直、すまんかった
501Not Implementedリクエストを実行するのに必要な機能を非サポートカバ男「アンパン嫌い」アンパンマン「…」
502Bad Gateway不正なレスポンスを受信そこの穴は、ら、らめぇ。
503Service Unavailable一時的な過負荷かあるいはサーバのメンテナンス今は賢者タイムだ。しばしまたれよ
504Gateway Timeoutレスポンスを受信できないぼく、テレパシーは受信できないから
505HTTP Version Not SupportedHTTP バージョンを非サポートちょっと僕がわかるレベルにしてください
506Variant Also Negotiatesネゴシエーションに失敗はやくオフクロ呼びましょうよ、え、いない!?
507Insufficient Storage容量を確保する事ができない給料日前は貴女のご期待に応えれません
508Loop Detected無限ループに遭遇女性の会話にありがちなこと
510Not Extended必要なManヘッダが同封されていない毒女の集い
511Network Authentication Requiredネットワークにアクセスするために認証が必要アノミマスはダメ~

経緯

まあ、ぶっちゃけ最初の1桁さえ理解しとけばOKだろうと。

ログとか見てたら200,304,404,500,503あたりをよく見る。

細かいところは適当だから真に受けないように。

2012/06/30
ページのトップへ戻る