HTTP ステータスコード

HTTP ステータスコードの意味を調べ、間違えやすい組 — 401 と 403、301 と 308、400 と 422 — を見分けます。

ブラウザ内だけで処理無料で利用

どちら側からでも探せます。

46件

コード理由句いつ使うか
100Continue
101Switching ProtocolsWebSocket に切り替えるときに使います。
103Early Hints本当の応答ができる前に先読みの手がかりを送ります。
200OK成功した要求の既定値です。
201Created新しい資源ができました。Location ヘッダーでその場所を指します。
202Accepted受け付けただけで終わっていません。呼び出した側が確認し直します。
204No Content成功して返すものがありません。本文を入れても無視されます。
206Partial ContentRange ヘッダーに応えてファイルの一部を返します。
301Moved Permanently恒久的な移動。クライアントがメソッドを GET に変えても構いません。
302Found一時的。こちらもメソッドが GET に変わり得ます。
303See Other結果は別の場所から取ってくれという意味で、常に GET です。
304Not Modifiedキャッシュがまだ使えます。本文は送りません。
307Temporary Redirect302 と同じですがメソッドが保たれます。
308Permanent Redirect301 と同じですがメソッドが保たれます。
400Bad Request要求をまったく理解できませんでした。
401Unauthorized認証されていません。名前に反して権限ではなく身元の問題です。
402Payment Required
403Forbidden誰かは分かっていて、それでも駄目です。
404Not Foundそんな資源が無いか、あると言うつもりが無いという意味です。
405Method Not Allowedパスはあり、この動詞がありません。使えるものを Allow に書きます。
406Not Acceptableクライアントが求めた形式のどれも作れません。
408Request Timeout
409Conflict今の状態とぶつかります。鍵の重複が代表例です。
410Gone意図的に削除され、戻ってきません。
411Length Required
412Precondition FailedIf-Match や If-None-Match の条件が合いませんでした。
413Content Too Large本文がサーバーの受け入れる大きさを超えました。
414URI Too Long
415Unsupported Media TypeContent-Type がこの窓口の扱う形式ではありません。
416Range Not Satisfiable
418I'm a teapot1998年のエイプリルフールの冗談です。今も登録簿に残っています。
422Unprocessable Content形式は正しく意味が誤っています。検証エラーによく使います。
425Too Early
426Upgrade Required
428Precondition Required
429Too Many Requests要求が多すぎます。いつ再試行するかを Retry-After で伝えてください。
431Request Header Fields Too Large
451Unavailable For Legal Reasons削除命令などの法的理由で塞がれています。
500Internal Server Error処理できなかった失敗です。誰も狙ってはいけない最後の網です。
501Not Implemented
502Bad Gateway上流のサーバーがおかしなものを返しました。
503Service Unavailable落ちているか詰まっていて、戻る予定です。
504Gateway Timeout上流のサーバーが時間内に答えませんでした。
505HTTP Version Not Supported
507Insufficient Storage
511Network Authentication Required先にサインインを求める公衆無線のような関門です。

間違えやすい組

  • 401403

    401 は誰か分からないという意味、403 は分かったうえで駄目という意味です。

  • 301308

    301 はクライアントが POST を GET に変えても構いません。308 はメソッドを保ちます。API には 308 を。

  • 302303

    302 はメソッドが変わり得て、303 は常に GET になります。フォーム送信の後は 303 です。

  • 400422

    400 は本文を読めなかった場合、422 は読めたが中身が誤っていた場合です。

  • 404410

    404 は無いという意味、410 は意図的に消したのでもう聞くなという意味です。

  • 502503

    502 は上流が変なものを返した場合、503 はこのサーバーが今働けない場合です。

ファイルはサーバーに送信されず、ブラウザ内だけで処理されます。

使い方

登録もインストールも不要、回数制限もなく無料で使えます。

番号か理由句の一部を入れれば見つかります。入力するそばから絞り込まれ、各行にはそれをいつ返すべきかが付いています。

最初の桁が種類を決めます。1xx は通知、2xx は成功、3xx はリダイレクト、4xx は要求側の誤り、5xx はサーバー側の誤りです。この表に無いコードでもそこまでは分かります。

4xx と 5xx の分け方は実務で重みが違います。壊れた要求に 500 を返すと当番が存在しない障害を探し回りますし、落ちた処理に 400 を返すと本物の障害が埋もれます。

下の組はコードレビューで実際に議論になるものです。401 は誰か分からないという意味、403 は分かったうえで駄目という意味です。権限の問題に 401 を返すと、すでに送った資格情報をもう一度送れと言っていることになります。

理由句は規格のままにして翻訳しません。実際に回線を流れる文字がそれだからです。

入力した値がサーバーに送られることはありません。ブラウザの中だけで探します。

あわせてよく使われるツール