HTTPステータスコードってなに?

ネットワーク・サーバー部では図も交えてわかりやすく教えていますが、

私達がブラウザでサイトを表示するまでには以下のようなことが行われています。

 

1.ブラウザがURLを元にサーバーへファイルを問い合わせる(リクエスト)

2.サーバーがファイルを返す(レスポンス)

ウェブカツ___-_初心者向けオンラインプログラミング学習サイト_-___ネットワーク・サーバー部_-Lesson2「ブラウザとサーバー」-

私たちはサイトを画面に表示できるのは、インターネットの向こうにある「サーバー」という場所にあるHTMLなどのファイルをURL(ファイルの場所を記した住所のようなもの)を指定することで、ブラウザがサーバーへ「○○サーバーさん、☓☓の場所にある△△のファイルを送って!」と通信し、その通信を受けてサーバーが自分の保管庫からファイルを見つけて送っているからなんですね。

ちなみにURLは基本的にこんなふうになってます。

http://○○/☓☓/△△.html

○○の部分はgoogle.comだったりwebukatu.comだったり、ドメイン名と呼ばれるものでサーバーの場所を表してると思ってください。

そして、そのあとにスラッシュで区切ってフォルダの構造を指定して、最後にファイル名を指定してるって形になってます。

そのファイルをブラウザが読み取って画面が表示されてるってわけです。

ちなみにブラウザからサーバーへ問い合わせる通信のことを「リクエスト」といい

サーバーからブラウザへの通信は「レスポンス」といいます。

「リクエストって投げられてる?」とか、「レスポンスまだ返ってこないなぁ」とかって使います。

 

ステータスコードとレスポンスコード

しかし、もし指定したURLのファイルがなかったらどうでしょう?

もしファイルがあったときだけレスポンスを返す作りだったとするとブラウザはサーバーへ問い合わせたままずっと待ちぼうけになってしまいますね。

「ファイルなかったよ〜」って一言でもいいから返してあげたいですよね。

それが「ステータスコード」っていうものです。

レスポンスコードとも呼ばれてます。

このステータスコードは「自分のステータス(状態)」3桁の数字で表したもので、サーバーからの通信には必ずこのコードが含まれています。

例えば、ファイルがあって正常に返す場合は「200」になります。

逆にファイルがなかった場合は「404」になります。

よく「404エラー」とかって言われたりします。

一度はサイトを見ていて「404 Not Found」とかって表示されたことありませんか?あれです。

ステータスコードには一緒に必ずステータステキストという一言的な説明文もくっついています。

「404」であれば「Not Found」で「ファイルが見つからないよ」っていうステータステキストがついてます。

もしサイトを作っていてうまく動かないといった不具合があった場合は、このステータスコードを見るだけで解決する場合もあるのでチェックするようにしましょう。

 

主なステータスコード

ステータスコードは下記の公式サイトに一覧が載っていますが、何十種類もあります。

https://developer.mozilla.org/ja/docs/Web/HTTP/Status

でも、全部覚える必要はありません。

現場でよく使うものだけ覚えておけば大丈夫なので、以下に記載しておきます。

ステータスコード ステータステキスト 説明
200 OK リクエストが正常に成功したという意味
301 Moved Permanently そのURLじゃなくなったよという意味(サイトを移転して前のURLにリダイレクトをかけている時など。リダイレクトとは郵便の転送届のようなもので設定しておけば古いURLでアクセスしても、新しいURLに自動で切り替わってアクセスされる)
400 Bad Request リクエストの意味がよくわからないという意味(決まった通信形式で通信していなかったり)
403 Forbidden お前にはアクセス権がないという意味(ファイルにはユーザーごとの閲覧権限をつけられるので、その権限がないということ)
404 Not Found リクエストのファイルはないよ〜という意味
500 Internal Server Error サーバー側で処理しようとしてエラーが発生している。PHPなどサーバー側で実行されるファイルにバグがあるなどで処理が止まってしまう。