開発者ツール

HTTPステータスコード

番号や名前で検索できます。各コードの意味と使いどころが分かります。

HTTPステータスコード お使いのデバイス上で実行
  • ブラウザ上で動作します — テキストはどこにも送信されません
  • 登録不要、利用回数の上限なし、何度でも無料で使えます

仕組み

ステータスコードの多くは自明ですが、いくつかは、特に名前が似ているものは本当に紛らわしいものです。番号、forbiddenのような単語、または4xxと入力すると、その分類全体を表示します。

401と403、誰もが取り違える2つ

401 Unauthorizedは、実際には未認証を意味します。サーバーはあなたが誰か分からず、認証情報を送れば解決するかもしれません。403 Forbiddenは、サーバーがあなたが誰かを正確に把握していて、それでも許可されないという意味です。名前は歴史的なもので分かりにくいのですが、一方はログインを促し、もう一方は促さないという違いは重要です。

301と302の違い、そしてSEOで重要な理由

301は恒久的で、評価のシグナルを新しいアドレスに引き継ぎます。302は一時的で、評価は元のアドレスに残ります。恒久的な移転に302を使うのはよくある間違いで、気づかないうちに大きな損失になります。307と308は現代版の同等のコードで、さらにメソッドが変更されないことを保証します。つまりPOSTはPOSTのままで、301と302では歴史的にそうとは限りませんでした。

バリデーションには422

400 Bad Requestは、サーバーがリクエストをまったく理解できなかったという意味です。422 Unprocessable Contentは、完全に理解した上で内容が間違っているという意味で、たとえば必須項目の欠落や無効なメールアドレスです。多くのAPIはバリデーション失敗に422を返すべきですが、習慣で400を返しています。

コードの分類

1xxは情報、2xxは成功、3xxはリダイレクト、4xxはクライアント側の問題、5xxはサーバー側の問題です。障害の際に責任の所在を切り分けるときは、この最後の区別を使ってください。4xxの急増は呼び出し側が何か間違ったことをしていることを、5xxの急増はあなた側に問題があることを意味します。

418

I'm a teapot(私はティーポット)は1998年のエイプリルフールのジョークが元で、実装から削除しようとした際に抗議が起きたため、のちに本格的に標準化されました。実用目的ではありませんが、仕様の正式な一部です。

よくある質問

HTTPステータスコードに関するよくある質問

401と403の違いは何ですか?

401は未認証、つまりサーバーがあなたが誰か分からない状態です。403は、誰か分かった上で、それでも許可されていない状態です。

301と302のどちらを使うべきですか?

恒久的な移転には301を使います。評価も引き継がれます。一時的な移転には302です。HTTPメソッドを変えてはならない場合は、308と307を使います。

バリデーションエラーにはどのコードを返すべきですか?

422 Unprocessable Contentです。400は、リクエストがまったく理解できなかった場合です。

418は実在しますか?

はい。1998年のエイプリルフールのジョークから始まり、実際に標準化されていますが、実用目的ではありません。

502は何を意味しますか?

プロキシが、その背後のサーバーから無効な応答を受け取ったことを意味します。多くの場合、アプリケーションが停止しているか、クラッシュしています。