ステータスコードってなんだろう

 

みなさんこんにちは。
コーダー部のpyです。

この度、「ステータスコード」について調べてみました。
初心者の初心者による初心者のためのまとめです・・・!

webサイトを見ているときに見かける404や500といった3桁のあれのお話です。

 

そもそもステータスコードってなんだろうというところから。

“HTTPステータスコードは、HTTPにおいてWebサーバからのレスポンスの意味を表現する3桁の数字からなるコードである。
RFC 7231等によって定義され、IANAがHTTP Status Code Registryとして管理している。”
(引用:wikipedia)

天下のwikipedia先生にも概要がこれしか書いていなかったので、わたしなりに調べて噛み砕いてみました。


まず、ステータスコードのやり取りは「クライアント」と「サーバー」の間で行われます。

「クライアント」とは、わたしたちがパソコンやスマートフォンでwebサイトを見るために使用しているブラウザのことです。
ChromeやFireFox、Safariなど。
「サーバー」は、webサイトのデータなどが詰まっているすごいところ。

クライアント側から「このURLのページを見たいです」といった要望や、どんな端末からアクセスしているかをまとめたリクエストに対して、サーバー側から処理の状況や結果などのレスポンスが返ってきます。
そのレスポンスの中に、今回の主役「ステータスコード」が含まれているのです。

コードは大きく100番台から500番台の5つに分類されていて、それぞれ違った役割があります。
ここからはその中でもある程度名の知れたものを順に紹介していきます。

 

■100番台 Informational リクエスト情報処理中
リクエストを受理し処理中であることを示します。
サーバー内に存在する対象となるページを探している途中であり、処理の結果ではないので画面上で見ることは基本的にはありません。

100 Continue 【継続】
クライアントからの「このURLが見たいです」というリクエストを受理した際にサーバーから返され、さらに詳細なリクエストを継続して受け付けますという状態を示しています。

101 Switching Protocols 【プロトコル切り替え】
通信の規格であるHTTP 1.0でのリクエストに対してHTTP 1.1等で通信するよう求められます。

102 Processing 【処理中】
読んで字のごとく「今やってまーす」という状態です。


■200番台 Success リクエスト処理成功
クライアントからのリクエストが受理され、表示に成功したことを示します。
結果としてリクエストされたwebページが表示されるので、100番台同様に画面上で見ることは基本的にはありません。

200 OK 【OK】
あるページを見ようとして問題なく希望通りのページが表示されている際は、裏ではこの200番が返ってきています。
目にすることは無くても、実は一番多く触れ合っているかもしれません。


■300番台 Redirection リダイレクト処理
リクエストされたページが移動していたときに返されるステータスです。
ブラウザ側で追加の処理(別URLへの転送など)を実行する必要があることを示します。

301 Moved Permanently 【恒久的に移動】
webサイトがお引越しをした際に使用されます。
今後ずっと新しいURLを使用する場合には、管理者はこのコードを返すようにしておく必要があります。

302 Moved Temporarily 【一時的に移動】
301と違い、メンテナンスなどの理由で移動が一時的な場合はこちらのコードを返すようにしておく必要があります。


■400番台 Client Error クライアントエラー
クライアント側のリクエストにエラーがあった場合に返されるステータスです。
リクエストが正常に処理できないことを示します。

401 Unauthorized 【認証が必要】
ユーザー名やパスワードの入力を要求するBasic認証などを行うときに使用されます。

403 Forbidden 【拒否】
リクエスト先へのアクセス権限が無く、拒否されている際に返されます。
社内のイントラネットからのみアクセスできるページに社外からアクセスしたときなど。

404 Not Found 【未検出】
リクエストしたページが見つからない場合に返されます。
URLのタイプミスなどでも同様に返されます。
各サイトで趣向を凝らした「ページが見つかりませんでした」ページが作られていて、探してみると面白いのでおすすめです。

410 Gone 【消滅】
404と同様にページが見つからない場合に返されます。
違う点は、404はURLのタイプミスや誤ってページを削除してしまったといった意図しないエラーの場合に使用されるのに対し、410は管理者が意図的にページを削除したことを示します。
Googleに既にページが消えていることをアピールし、無駄なクロールを減らし新規ページのクロールを早くさせたいといった場合は410を返すとよいかもしれない。


■500番台 Server Error サーバーエラー
サーバーがリクエストの処理に失敗したということを示します。

500 Internal Server Error 【サーバ内部エラー】
サーバ内部にエラーが発生した場合に返されます。
プログラムの記述ミスや文法エラーがあった場合に返されるので、管理者の対応が必要です。

503 Service Unavailable 【利用不可】
サーバの過負荷状態で一時的にWebページが表示できない場合に返されます。
LIVEチケットの販売開始直後にアクセスしようとしたけどつながらないとか、ツイッターで「あけおめー」ってつぶやこうとしたらクジラが表示されたときなどがこちら。


~おまけ~
ソフト404エラー
訪れたユーザーのために404ページを設置しているwebサイトが多くなっていますが、そこで密かに発生しているかもしれないエラー。
リクエストされたページが存在しない場合に返されるのは本来404番ですが、404ページを設置したことによって「「ページが見つかりませんでした」というページの表示が成功した」ということで200番が返されているという場合があるそうです。
こうした事態を防ぐためには、管理者が適切なステータスコードを返すように設定しておく必要があるようです。

 

ということで、有名なものだけをザッとまとめてみました。
こんなに細かく分かれていたんだなというものや、そんなものもあったのか!など、いろいろな発見もあったので、今後のお仕事でもしっかりと意識していけたらなと思いました。

それではまたー。

WEBサイト制作のお問い合わせ、お見積り依頼、ご質問は
こちらのお問い合わせフォームよりお願いいたします

メールお問い合わせはこちら