ウェブサイトをリニューアルする際に「古いページから新しいページには301リダイレクト転送してください。」、存在しないページにアクセスされた際には「404エラーページを表示させてください」といったことを聞いたことはあるのはないでしょうか?
301や404などはHTTPステータスコードと呼ばれており、他にも様々なステータスコードがあります。
そこで今回は、HTTPステータスコードとはそもそもなんなのか、存在する種類と役割について紹介していきます。
目次
ウェブサイトを閲覧するウェブブラウザから送られるリクエストに対し、ウェブサーバーから返信されるレスポンス内容を表す3桁の数字のことです。
噛み砕いていうと、私たちサイトを運営している時に、「PCやスマホの画面にこのウェブサイトを表示させたい」という<リクエスト>に対し、「現在このサイトは表示できません」「このサイトはURLが変更になりました」などのウェブサーバーからの<レスポンス>を表す数字がステータスコードです。
301や404を例にとると…
上記のような処理を行います。
受信した数字に応じて、ブラウザの処理が変わってきます。
一方で正しいレスポンスがないと…
などといった自体に陥ってしまい、ページへ訪れたユーザーの離脱にもつながってしまいます。
この自体を未然に防ぐためにも、各ステータスコードにはどんな種類がありどんな役割を持つのかきちんと把握しておく必要があります。
ステータスコード100~510までの間で数字が存在し役割が異なります。
100番台 | 継続 |
---|---|
200番台 | リクエスト完了 |
300番台 | リダイレクト(移行) |
400番台 | リクエスト失敗 |
500番台 | サーバーエラー |
100番台はリクエストに対し、処理が継続されていることを表します。
200番台はリクエストを正しく受理したことを表します。
私たちがいつもPCやスマホでウェブサイトを閲覧できている際の多くがこの番号を受信している状態です。
300番台はリダイレクトや移行など、リクエストを達成するために、追加の処理が必要と返信している状態です。
URLが変更された場合など、新しいURLへ転送させるレスポンスが該当します。
400番台はリクエストが正しく処理できない状態です。
ページ自体が存在しないため、サーバー正しく処理できず、ページが表示できないケースが該当します。
500番台はサーバーに問題があり、エラーとなる状態です。
上記のように、各個別の数字ごとに役割をもちます。
ステータスコードのおおまかに紹介しましたが、次に各種類と役割を紹介します。
サーバーはリクエストに対して最初の部分を受けて取って、途中まで読み取り、問題はない、現状はただしく処理できている状態です。
ここから更に継続してリクエストすることが可能です。
サーバーはリクエストを理解できているので、正しい処理を行うため、プロコトルの切り替え求めています。
リクエストが完全に処理できていない状態です。
リクエストは正しく処理され、要求された内容が返信されています。ブラウザ上でPCやスマホの画面で正しくサイトが閲覧できる際には、この数字が返ってきています。
リクエストは成功し、新規で作成されたリソースのURLが返信されています。
例えば、PUTメソッドでリソースを指定し作成しようした際に、そのリクエストを行って、サーバ側も受理して作成も完了した場合に返される状態がこのステータスになります。
リクエストを受理したものの、まだ処理している途中だと返されています。
例えば、UTメソッドでリソースを指定し作成しようした際に、そのリクエストを行って、サーバ側も受理したが、まだ作成されない場合に返される状態がこのステータスになります。
リクエストの内容が、実際のオリジナルのものとは異なり、ローカルやプロキシなどの情報なので、信頼できないと返されます。
例えば、リクエストされた内容もしくは、リクエスト元のブラウザ、ソフトウェアが不正プログラムやウイルスに感染しているため承認できない状態がこのステータスになります。
リクエストを受理しているものの、返せる情報がないケースです。
リクエストは成功していますが、ユーザーエージェントに対して画面をリセットするよう返しています。
例えば、リクエストは承認されているが、ブラウザの画面を初期化するよう返されている状態がこのステータスに当てはまります。
ツールを使用し分割ダウンロードを行ったり、レジュームを行った際に、部分的にリクエストを受理しています。
例えば、あるPDFファイルをダウンロードしようとした際、ファイルを分割してダウンロードするなどの場合がこのステータスに当てはまります。
複数のステータスコードが存在する際に返されます。
IM(instance manipulation)の使用。Delta encoding in HTTPの拡張コードです。
リクエストされた情報を確かめた結果、複数存在していたために、ユーザーエージェントやユーザーに選択肢を返信し、選択させます。
例えば、複数のページが利用、閲覧可能である状態です。
リクエストされたURLが変更されているケースです。この場合、同時に新しいURLへの誘導も返されます。
ここまで紹介したように、古いURLから変更されていた際に、新しいURLを案内されるコードです。
サイトリニューアル時には重要な設定になります。
詳細については下記記事をご確認ください。
リクエストされたURLが一時的に存在しない状態のため、別のURLに転送される。
完全にURLが変更されているのに302リダイレクトを設定しているケースがありますが、あくまで一時的に変更されている場合にのみ使用されるものですので注意しましょう。
リクエストに対する情報は他のURLに存在ケースです。この場合は、ユーザーをそこに誘導するようURLを指定し返信されます。
例えば、要求された内容は別のページ内に存在しているので、自動的そのURLページを表示させる際がこのステータスに当てはまります。
リクエスト先が更新していなかったケースです。
例えば、リクエストで指定された日程以降、更新されていないため、求めている最新の情報が掲載されていない可能性があります。
リクエスト先は、プロキシを使用しアクセスしなければならないなど制限がかかっているケースです。
リクエスト先は一時的に移動しています。302とほぼ同様です。
例えば、指定のURLには一時的に別のURLに変更されているため、転送される場合がこのステータスに当てはまります。
リクエスト先のURLは変更されているため、新しいURLに誘導します。301とほぼ同様です。
例えば、指定のURLには完全に別のURLに変更されているため、転送される状態がこのステータスに当てはまります。
定義していないメソッドを使用されているので、リクエストが理解できず、不正扱いされています。
例えば、リクエストの内容にエラーがあるため表示できない状態がこのステータスに当てはまります。
リクエストに応えるためには、認証資格が必要になりますが、ユーザーがその資格をもっていないためにアクセスできない状態です。
例えば、Basic認証などが必要で、ID/PASSが誤っているために表示されない場合になります。
ユーザーがリクエスト先へのアクセス権がないため、拒否されています。多くの場合は、ユーザーに見せたくないページや一般公開していないページなどに適用されます。
例えば、社内のネットワーク環境でしかアクセスできないページに対して、社外からアクセスしようとしたため、そもそも表示されない状態が当てはまります。
リクエスト先が見つからない、そもそも存在していないために、アクセスができません。「指定されたページは存在しません」などのエラーページが表示されるケースです。
例えば、ページが存在しない。アクセス権がそもそもない場合などになります。
詳細については下記で紹介していますので、こちらをご確認ください。
要求されているメソッドは理解できるものの、使用を許可されていないケースです。
リクエスト先の情報が受理できないものであるケースです。
例えば、サーバは日本語しか認識できないのに、リクエストされたページの内容は中国語だった場合が当てはまります。
プロキシの認証が必要です。
リクエストが時間内に完了せずに終了してしまったケースです。
例えば、ファイルが大きすぎるために時間がかかる場合がこの状態に当てはまります。
リクエスト先は現状のリソースと競合・矛盾するため完了できないケースです。
例えば、サーバー内で既に存在しているファイルより古いが同じようなファイルをアップしようとした際がこの状態に当てはまります。
リクエスト先が消滅したためか、利用できなく、転送先のURLも不明なケースです。
例えば、指定のURLが存在しないが、代わりとなるURLも見つからない場合です。
リクエストに対し、Content-Length ヘッダがないため、アクセスが拒否されています。
リクエスト元のヘッダーにある前提条件は、サーバーに適合できないために処理が失敗しています。
リクエスト先の内容が膨大であるため、サーバーの処理できないケースです。
URIが長過ぎるためにサーバーの処理可能範囲を超えています。
メソッド、メディアタイプが、サポートされていないため、リクエストが拒否されています。
リクエスト先の情報が膨大なため、現状のリソースサイズを超えています。
サーバー内で問題が発生し、エラーが起きています。
例えば、サーバー内のプログラムに記述されている内容に誤り、エラーがあるなどのケースです。
メソッドが、現状のサーバーでは対応していません。
ゲートウェイとして動作するサーバーが不正な要求を受けています。
リクエスト先が一時的にアクセス集中やメンテナンスなどで使用できません。
リクエスト先はサーバーが対応していないHTTPバージョンであるケースです。
上記ステータスコードを調べる際に、簡単に確認ができるツールが、HTTP Status Code Checkerになります。
利用方法については下記記事で紹介していますので、こちらをご確認ください。
今回ご紹介したように、各ステータスコードはそれぞれの役割をもち、利用シーンがわかれています。
それぞれの特色を理解し、正しい場面で利用することでユーザーに対してもストレスなくサイトを閲覧してもらうことができるため、是非参考にしてみてください。
ディーエムソリューションズのSEOコンサルタント、犬塚と申します。 過去には、「SEOコンサルタントがこっそり教えるSEO施策のコツ」など、…
私たちがSEO事業をスタートした2006年のSEO施策は、現在の施策とは大きく異なるものでした。 人工的な外部リンクが隆盛を極め、とにかくリ…
皆さんはSEOを外注ではなく、自分で実施したいと考えたことはありませんか? 外部リンクによるSEOが終焉に近づき、コンテンツによるSEOが全…
みなさんはSEOにはブラックハットSEOとホワイトハットSEOと呼ばれる2つのアプローチがあることをご存知でしょうか?今回の記事ではブラック…
「WEBサイトの流入が増えない」「狙っているキーワードでの検索順位がなかなか上がらない」といったSEOに関する悩みを抱えているが、「原因が何…
日々進化し続けるGoogleのアルゴリズムに対し、最適化を図るSEO(Search Engine Optimization)もこれまでにいく…
今話題のAIによるコンテンツ自動生成機能も!SEO対策に本当に必要な機能だけを搭載した使いやすさとコストパフォーマンスに優れたWeb集客支援ツールです。
Webマーケティングに関わる施策全般をワンストップで
ご提供します。
お気軽にご相談ください。
Webマーケティング最新ニュースのレポートや無料セミナーの先行案内が届く、お得なメルマガ配信中!