2016/10/06

ヤバイ!初心者向けで凄い解るHTTPステータスコード301.403.404.500等の意味

初心者用に「ステータスコードとは何」を説明します。詳しい説明みると、何のことかさっぱり・・。ってなりませんか?ウィキの説明が理解できるように『知識の底上げ』って事で書いてます。

HTTPステータスコードは、HTTPにおいてWebサーバからのレスポンスの意味を表現する3桁の数字からなるコードで、RFC 2616、RFC 7231等によって定められている。以下に一覧を示す。

引用元:HTTPステータスコード

404や301や403、500など、HTTPステータスコードですね。ちょっと解りにくいので、初心者が解るような言葉ではじめに説明して、その後ガッツリ説明しますね。

スポンサーリンク

超初心者向け説明!ステータスコードって何か

ステータスコードとは
Webページにアクセスしたら、『ページのデータ置き場であるサーバー』はあなたのリクエスト(アクセス)に応え、画面に情報を表示させようと処理を行います。処理とはどのようにページを表示したか。

サーバーがブログを表示させるときにやった『処理内容と結果』を、3桁の数字で表現したものが、ステータスコードです。

ページがキチンと表示できても出来なくてもその結果を、あなたが見ている画面に返します。(画面上ではコードは見えない。)

ステータスコードには200番台~500番台があって、意味は下記。

○百番台 内容
200番台 ちゃんと表示できた
300番台 転送とかして、ひと手間かけたものだよ
400番台 表示できない何かの原因がサーバー以外であった
500番台 サーバー内部のトラブルで、表示できない

例えば画像を削除しリンク切れをおこし表示されないときや、URLを間違えて入力したり、削除された投稿へアクセスすれば『該当のモノは存在しないという意味』で404(原因はサーバー以外のトコロにある)。

出すべきページを出せばステータスコードは200ok(キチンとページを表示した)となります。この文章を見れてるなら、200okとステータスコードは出してます。

百番単位で内容が大きく分かれ、下2桁はさらに細かい処理結果の内容に分類して、あなたがアクセスしたページへ番号で返す。これがステータスコードです^^

サーバーが返すHTTP ステータスコードとは

WEB上にアクセスして見たいページが見れるのは、(レンタル)サーバーが『ブログのデータファイルの保管』して「表示させるための処理」をしているからです。

リンクを踏んでアクセスすれば、サーバーはデータベースから記事をとりだし、あなたのブラウザ(画面)にページを表示させようと、色んな処理をします。

またどうやって表示をさせたか(表示できなかったか)、表示させようと処理した結果を、ステータスコードで返します。

ステータスコードを表示させるときの仕組み

画像に説明を加えますね。コードの意味は後述。

  • A子がアクセスしたら、サーバーはページの運営者の指示通り、301リダイレクト(転送)してページを表示させたよ。301を返し表示させた200 Ok。
  • Bくんがアクセスしたとき、200ok。キチンと表示した!
  • それぞれ違う意味を持った(処理をした結果)3桁の数字、301や200などを『ステータスコード』と言う。

サーバー側から言えば「アクセスのあったページを表示させるために、こんな処理をした」と言う結果をステータスコードに当てはめて、表示しているブラウザの裏側で返してる感じ。って言えば解りやすいですね。

知っておきたいメジャーなステータスコード

ブログを運営してると思わぬところでエラーが出てしまう事もあります。プラグインが競合して出たエラーや、phpなどのコードを間違えて管理画面にも入れない画面をだしたり。

ブログを立ち上げたばかりのときや、アクセス拒否をする設定を指定した場合、閲覧禁止にしたりなど。

  1. ブログを運営してると、実際エラー表示を目にするのは下記。
  1. キチンと表示されたときは下記コード
    • 200 Ok(200)普通にネット上で見てる画面の大半がこれ。
    • 301リダイレクト(301)ページを転送させ表示(200)したとき。

「サーバーがクライアントのリクエストにHTTPステータスコードでレスポンスを返す」って意味を説明

言葉がムツカしくって、何言ってるのか解りにくいですよね。

例えば見たいページAのリンクを踏んで表示するとき、ページAをページBに転送するとブログ運営者が指定してる場合があります。これは『HTTPステータスコード301』。

サーバーがクライアントの欲しい情報(あなたがアクセスしようとURLをクリックしたページ)を『リダイレクト(転送)処理をして表示したよっ!』結果、HTTPステータスコード301番を返しページを表示(200)したたよ!」ってことです。

各単語の意味は下記。

クライアントとは
「ブログなどの情報にアクセスする全ての人」あなたや私、企業もそう、ネット扱う人全て。ネットで情報を求めアクセスした全ての人や機械がクライアントになります。
  1. 『サーバー』が
    • ネット上に情報を表示するため、必要な「データファイル」の保存・保管・表示する場所
  2. 『クライアント』の
    • 「ネット上にある情報」を求めてアクセスしたもの全て
  3. 『リクエスト』に
    • サーバーに情報をくださいって求める
    • リンクをクリックしたり入力してアクセスしてページを見ようとする事
  4. 『HTTPステータスコード』で
    • サーバーがページを表示させるとき行った処理内容と結果を表す3桁の数字
  5. 『レスポンスを返す』
    • 要求のお返事(レスポンス)を返す

今このブログを読んでるので、

サーバーはクライアントである「あなた」のリクエスト(このページ)をキチンと表示しているから、ステータスコード「200 Ok」または、「301リダイレクト」して「表示200 Ok」をブラウザに返している。ワケです。(後述に画像あり)

ややこしいですか、ちょっとわかってきましたか!?ステータスコードの数字に、どんな意味があるか見ていきましょう!

ブログ運営で覚えておくと良いステータスコード

HTTPステータスコードの数字によって、サーバーの処理や結果が違うから、数字にはそれぞれの意味があると、わかりましたね。

ブログを運営してく上で知っておきたいステータスコードはザッと下記の通りです。上述したのと同じですけど、一般的に使われる言葉で書いてます。

サーバー側の目線で言葉の意味をとらえて見る。と言えば解りやすいので、少しずつ慣れていきましょう^^

○百番台 内容
200番台 クライアントからの要求の成功
300番台 要求を受けたページを表示させるため、再処理(リダイレクト)が必要
400番台 クライアントの要求内容に表示できない原因があった
500番台 サーバー内部で要求の処理にミスがあった

次は、百の位以下の下二桁のコードです!

表示成功の200 Ok

200番台のステータスコードの処理は、クライアントの要求の成功と言う意味で、ブログが表示されてヘッダーにはナビ、ブログタイトルそれから、コンテンツ部分があり、サイドにフッター全て装飾をされ、指示通りに表示されてる状態です。

表示させるためHTMLに記載されてるHTMLタグやCSS、JSファイルなど全てサーバーが拾い集めて読み込んでるから、ページがネット上で見られる状態になってます。

LINKFTPソフトの使い方が解る初歩ステップ:目次1.3:PHPファイルは、ブラウザにブログを表示させる

サーバーは「正常に情報出した」のでページをちゃんと出したよぉ!って意味の『200 Ok』と言うステータスコードを出してる状態!って言えば解りやすいです。

301 Moved Permanently  永久的に移動

301リダイレクトは、ページAが転送されページBを表示してるときに返すHTTPステータスコードになります。ページAのURLを完全にBページURLに移動させて表示させてる状態です。

そのページAのリダイレクトは.htaccessに記入してページBへの移動を実行させます。ただ元のページAの.htaccessが編集出来ない状態でしたら出来ません。。canonical(カノニカル)タグを使う手も・・っとだけ、参考までっ ><

またブログサービスにって、URLが完全に一致しなくても表示してくれるものもあるんです。http://~/image-broken/ってURLなのにhttp://~/image-bにしても表示してくれるのは301 Moved Permanentlyでリダイレクトしてるからっ!

301 Moved Permanentlyと200 OK

クロームの検証画面のNetworkの画面で見れば一目瞭然。『image-b』は、301リダイレクトされて『image-broken/』を正常に出し200 Okが表示されてます。意図してリダイレクトさせてないけど、WordPressでは自動的にリダイレクトしてくれます。

ポイント

300番台は、表示させるために転送させる工程のステータスコード関連。

  • /image-b/は、リンクが途中だから、301リダイレクトで転送
  • /image-broken/に転送完了して表示させたよ、200 Ok

ってな具合で、WordPressはリダイレクトさせたって事です^^

転送して表示させるって便利ですよね。末尾のURLが、うまくコピペ出来てなくても表示してくれるんですもんっ!

参考.htaccessを使った301リダイレクト記述方法

302 Found 一時的に移動

302のリダイレクトは301とちがって、リダイレクトするけどこのURLに移動しますか?みたいなことがページに表示されてる時302 Foundになります。一時的なリダイレクトですね。

※うまく画像が撮れません。。

302 Moved Temporarily 一時的に移動

『302 Moved Temporarily』も一時的にページを移動と言う意味ですが、HTTPの手続きの仕方で変わるようです。

302リダイレクト

ステータスコード302を用いて行なうHTTPリダイレクト。HTTP 1.0では“Moved Temporarily”(一時的な移転)、HTTP 1.1では“Found”(発見した)を意味し、リクエストされたURLは新しいURLに一時的に移転したことを表す。HTTP 1.1では302に似た意味の303“See Other”や307“Temporary Redirect”が追加され、どちらも一時的な移転を意味するが、アクセスに用いるメソッド(GET、POSTなど)の扱いに違いがある。

引用元:HTTPリダイレクト 【HTTP redirect】|IT用語辞典

私が経験したのは、ページ移動しようとしてリダイレクト先のURLが無限ループをおこして『302 Moved Temporarily』が表示されました。一時的な移動→移動できないURLのループを起こす→500エラーとして対処したって状態ですね。#複雑ですw

302 Moved TemporarilyエラーでURLが無限ループ!原因は、WordPressのプラグインの競合だった

403 Forbidden 閲覧禁止

ページへ入ることを禁止されたとき返されるコードで要求(アクセス)したけど、ページの表示を実行せず『見せない。っと閲覧禁止したページ』のことです。

運営者が「.htaccessファイル」で画像やipアドレスにアクセス制限をかけてる場合もアクセス権がないという理由で閲覧禁止の403 Forbiddenが表示されます。

また、初めて独自ドメインをとって、別のブラウザから見たらアドレス(ドメイン)がまだ浸透がされてないときも浸透するまでの数時間~数日のあいだは、403 Forbiddenを表示させます。

サーバードメインと独自ドメイン♪違いは何?ドメイン登録後なぜ403ページに!?

一部サーバーのウェブアプリ ファイアーウォール『WAF』の誤認で403ページを出すこともあります。管理画面から更新したり画像をアップしようとしたとき、誤認で403 Forbiddenを出して運営者自身が、ページへ入る事を禁止される場合も…。

404 Not Found お探しのページが見つかりませんでした

探してるファイルが見当たらない、サーバーのディレクトリ(ブログ内フォルダ:階層化されたデータ格納場所)に該当のページや画像、その他ファイルがなかった場合404を返します。表示したくてもページがないから出せない状態ですね。

リンクの入力間違いで正しいパスがかかれてない場合や、該当ページをゴミ箱へポイッ!と捨てた場合、ページを非表示にした時も404 Not Foundになります。

ブログの画像が表示されない5つ+αの原因!リンク切れの対処法

WordPressで404エラーページをカスタマイズ!超簡単に工夫して作る方法

500 error Internal Server Error  内部サーバーエラー

サーバー内部で、必要ファイルを集めページ表示しようとしてるとき、エラーをだしてしまって該当ページを表示できない状態に陥ったとき返されるコードです。

内部サーバーエラーは、phpファイルの記載ミスや、.htaccessを違った文字コードでアップした時、プラグインの競合などでサーバー内部でエラーを起こしページを正常に表示できなくなります。

運営者自身のミスで、ブログが表示されず真っ白(ワンパンチで即ノックアウト)状態です。カスタマイズ失敗した時など、よくおこります。

HTTP500内部サーバーエラー(Internal Server Error)の意味とは?誰もが理解出来るかもページ

503 Service Unavailable サービスを使用できません

アクセスが一気に増して一時的に負荷がかかった場合や、サーバーがメンテナンス中でサービスが利用できないときにこのコードが返されます。

検索上位入りページのキーワードがテレビ放送されたとき、検索ユーザーさんがいっきに流れ込んで場合。公開したページが一気にシェアされて飛ぶ鳥を落とす勢いでアクセスが入ったときサーバーの容量に耐え切れないと判断されたとき起こるエラーです。

バズったとか言うようでっ!言ってみたいですねぇw

HTTPステータスコードの説明が解りにくい原因!クライアントは人だけではない

ステータスコードについて説明をしましたけど、だいたいこの説明している各ページさんの書かれていることって難しいと思いませんか!?

  • リクエストはアクセス。
  • クライアントはアクセスしてきた訪問者。

これでいいって思いませんか!?よくよく見て知っていくと、人間だけが訪問者ではないから、この言いかたをしてます。

クローラーもサーバーのクライアント

検索エンジンのクローラーも日々WEB上を徘徊して情報を集めています。手元のボタンでブログ更新すると、サーバーにデータを保存します。その後クローラーはインデックスするためにサーバーにある情報をGETしにむかうんです。

LINK初心者ができるSEO!検索エンジンの仕組みから説明しよう!

サーバーのクライアントには、クローラーもいる!ってこと。サーチコンソールでもGoogleのbotクローラーが来てるのがわかります。訪問者は人間だけでないってこと。クローラーもアクセスしてくるんですよね。

先人の言葉を見てると、機械も訪問者だと見えてくるんですよね。なので、なるほどぉ、あの言葉が的確だなぁって感じます^^

Googleだけでなく、他の検索エンジンにも情報を伝えてますし。

LINKGoogle XML SitemapsでXMLサイトマップ送信!検索エンジンに情報を伝える為にプラグインで登録

本当にアクセスしてる場合、攻撃者もクライア…(´・ω:;::..

来てほしくもない、15秒間で1000回以上不正アクセスを繰り返す攻撃ブルートフォースアタックで突破されたら、クライアントになるのかも!?

LINKWAFがディレクトリトラバーサルの攻撃からWordPress、ブログを守るために出来ること

リファラスパム対策済みですけど、.htaccessで拒否してないので、それもクライアントになってるかも。。。不正アクセスやリンク元がおかしいこのスパムも、もし実際アクセスしてたらそうなりかねない…(´・ω・`)

アクセスしてなければ、ならないですけど(*ノωノ)

簡単にセキュリティ対策ができる、SiteGuard WP Pluginで設定してると、403を返してる場合も多いので(ロリポップ)、この辺もクライアントになるのかなぁ?嫌ですけど。

クライアントからのリクエストは、人間でありクローラーbotでもあるってお話です。余談でした^^;

さいごに

ブログ運営で知っておきたいHTTPステータスコードを紹介しましたが、こうして表示されてるって思ったら少しだけサーバーの様子を垣間見た気分ですよね。

でも普段見えないステータスコードを実際に目にするのは、何かしらエラーが出たので修正が必要になることを理解して頂けましたでしょうか。今までよく解らなかったのが、少しでも解ってもらえてたら、アレコレ試行錯誤して作った甲斐があります!

これからエラーが出たら、どこがどうなってエラーが出たのか、またどう対処するべきか、知るきっかけになればと思う、かうたっくでした!

書いた人:かうたっく

何も知らない初心者ですが、WordPressでブログを始めました。 ブログの技術系でつまずいたエラーを経験したことからエラー関連を、初心者が初心者に向けて分かりやすい言葉で書いてます★子どもの喘息様気管支炎や、幼い子どもとの生活ページなどよく読まれる雑多ブログを運営中^^♪ご意見、感想、質問はお問い合せよりお待ちしています。

Twitterフォロー