サイトを運営する場合httpステータスコードを利用することがあります。
たとえば、ページが存在しないURLにアクセスが行われたときや、ページのURLを変更したときなど、サイトを最適化するためにサイト運営者は適切な設定・処理をしなければなりません。
特に気をつけたいのが「301」「302」「404」「500」「503」などです。
■「301」「302」リダイレクト(転送)を設定する処理
「301」「302」は、ページのリダイレクト(転送)を設定する処理で、用途に合わせて使い分ける必要があります。「301」は恒久的な移動した場合に設定し、そのページに対する被リンク効果やPRなどのような要素も引き継ぎます。一方「302」は一時的な移動で、後々元のページを利用する際に用いられます。
・.htaccess/mod_rewrite(httpd.conf)/meta refreshなどで設定できます。
処理 | 301 | 302 |
---|---|---|
.htaccess | Redirect 301 (転送前)(転送後)で記述。ディレクトリ・ページなど設定可 例)Redirect 301 /test1.html http://www.sample.com/test2.html |
Redirect 302(転送前)(転送後)で記述。ディレクトリ・ページなど設定可 例)Redirect 302 /test1.html http://www.sample.com/test2.html |
mod_rewrite (httpd.conf) | Rewriterule ^/test1.html$ /test2.html [R=301,L](サーバーに設定・正規表現利用) | Rewriterule ^/test1.html$ /test2.html [R,L] |
meta refresh | 時間は0秒で同等あつかい | 時間は1秒以上で同等あつかい |
※meta refreshは、検索エンジンによってはうまく機能しないことがあります。
■「404」のページを設定
「404」に対してページを用意していないと、ブラウザが吐き出すエラーメッセージページとなってしまいます。これはサイトのユーザビリティ的に不親切であるため、「ページがありませんでした。」用の専用ページを作り、トップページやその他のページへ誘導してあげましょう。
・「.htaccess」での設定例
ErrorDocument 404 [専用ページのURL](※半角スペース区切りです。)
例)ErrorDocument 404 http://www.sample.com/file_not_found.html
■「500」「503」は早急な対象が必要
「500」「503」はサーバー内でのプログラムや設定エラー及び過剰負荷によってサイトが閲覧できない状態になっています。サイトが表示できないのは致命的なので、早急に対処する必要があります。
コード | ステータス |
---|---|
意味・解説 | |
1xx系 | Informational【情報】リクエストの処理継続 |
100 | Continue【継続】 |
クライアントは、リクエスト(要求)を継続できる。 | |
101 | Switching Protocols |
サーバーは、リクエストを理解し、クライアントのリクエストに応じようとプルトコルの切替えをリクエストしている。 | |
102 | Processing【処理中】 |
WebDAVの拡張ステータスコード。処理が継続していることを示す。 | |
2xx系 | Successful【成功】リクエストの受理 |
200 | OK【OK】 |
リクエストが成功しました。レスポンス(応答)と共に返される情報は、リクエスト内容に依存します。ブラウザでサイトが表示されるときは、ほどんどこのステータスコードを返している。 | |
201 | Created【生成】 |
リクエストは受理され、結果として新しいリソースが作成され、リソースのURIをレスポンスする。 ・たとえばPUTメソッドなどを利用して、リソース処理をサーバーが実行したが、処理が完了していない場合に返される。 |
|
202 | Accepted【受理】 |
リクエストは受理されたが、処理は完了していない。 たとえばPUTメソッドなどを利用して、リソース処理をサーバが実行したが、処理が完了していない場合に返される。 |
|
203 | Non-Autoritative Information【信頼性に欠ける情報】 |
オリジナルデータではなく、ローカルやあるいはサード・パーティのコピー、プロシキ等からの情報であることを示す。 | |
204 | No Content【コンテンツなし】 |
リクエストを受理したが、返すべきレスポンス情報が存在しない。 ・たとえばPOSTメソッドでフォームの内容を送信したが、ブラウザで更新されない場合に返される。 POSTメソッド・・POST は新しく作成されるリソースの URI がサーバー上のプログラムによって決まる場合に用いる。 |
|
205 | Reset Content【コンテンツのリセット】 |
サーバはリクエストを受理し完了したが、リクエストの送信元であるドキュメント・ビューをリセットする必要がある場合に返される。 ・たとえばPOSTメソッドでフォームの内容を送信したが、ブラウザで更新して初期状態にする必要がある場合に返される。 |
|
206 | Partial Content【部分的コンテンツ】 |
コンテンツの一部分で、サーバによってリソースのGET要求の一部(バイト範囲が含まれる)が処理された場合返される。 | |
207 | Multi-Status【複数のステータス】 |
WebDAVの拡張ステータスコード | |
226 | IM Used【IM使用】 |
Delta encoding in HTTPの拡張ステータスコード | |
3xx系 | Redirection【リダイレクション】レスポンスのための追加的な処理 |
300 | Mlutiple Choices【複数選択】 |
リクエストされたリソースが複数あり、ユーザやユーザエージェントにより、望ましいものを選別してリダイレクトした情報が提供される場合に返される。 | |
301 | Moved Permanently【恒久的移動】 |
リクエストされたリソースは恒久的に新しいURI移動した場合に返される。Location:ヘッダに移動先のURLが示される。 | |
302 | Found【発見した】 |
リクエストされたリソースは、一時的に移動されている場合に返される。Location:ヘッダに移動先のURLが示される。HTTP 1.0においては「Moved Temporarily」(一次的移動)であったが、定義外の使用が行われるようになったため、定義を改め、303・307が追加された。本来の一次的移動は307で定義。 | |
303 | See Other【他を参照】 |
リクエストに対するレスポンスが他のURLに存在した場合に返される。Location:ヘッダに移動先のURLが示されている。 | |
304 | Not Modified【変更なし】 |
リクエストされたリソースが指定された日時以降に更新されていない場所に返される。 | |
305 | Use Proxy【プロキシ―を使用】 |
リクエストされたリソースは、Locationヘッダで指定されたプロキシを通じてアクセスしなければならない。 | |
306 | (Unused)【将来のために予約】 |
以前のバージョンの仕様では使われていたが、廃止され将来のために予約コード | |
307 | Temporary Redirect【一時的リダイレクト】 |
リクエストされたリソースは、一時的に移動されている場合に返される。Location:ヘッダに移動先のURLが示されている。 | |
4xx系 | Client Error【クライアント・エラー】リクエストに誤りあり |
400 | Bad Request【不正リクエスト】 |
リクエストは不正な構文であるために、サーバが理解できなかった。クライアントのリクエストがおかしい場合に返される。 | |
401 | Unauthorized【認証が必要】 |
リクエストは未認証であり、認証を必要とする。認証に失敗した時など。Basic認証やDigest認証などを行うときに使用される。ブラウザはこのステータスを受け取ると、認証ダイアログを表示する。 | |
402 | Payment Required【支払リクエスト】 |
現在は実装されておらず、、将来の使用のために予約されている。 | |
403 | Forbidden【禁止】 |
サーバはリクエストを理解したが、リソースにアクセスすることを拒否された場合に返される。リクエストはしたが処理できないという意味。 アクセス権がない場合や、ホストがアクセス禁止処分を受けた場合などに返される。 |
|
404 | Not Found【未検出】 |
リクエストのリソースが見つからなかった、もしくは実行を拒否した場合に返される。アクセス権限がない時など。主に「404」用のページを作成するのが一般的。 | |
405 | Method Not Allowed【未許可メソッド】 |
c | |
406 | Not Acceptable【受理できない】 |
Accept関連のヘッダに受理できない内容が含まれている場合に返される。 ・たとえばサーバでは受付できない言語で、リクエストのAccept-Language:ヘッダに含まれていたり、フォイルのアップロードなどで、リクエストのAccept:ヘッダでapplicationのタイプが記載されていないなどがあげられる。 |
|
407 | Proxy Authentication Required【プロキシ認証リクエスト】 |
このコードは401(Unauthorized)と似ているが、プロキシの認証が必要な場合に返される。 | |
408 | Request Timeout【リクエストタイムアウト】 |
リクエストが時間以内に完了していない場合に返される。サーバが予期している時間内にリクエストが完了しなかったため。 | |
409 | Conflict【矛盾】 |
リクエストがリソースの現在の状態と矛盾するため、完了出来ない場合に返される。 | |
410 | Gone【消滅】 |
リクエストされたリソースが移動した場合に返される。サーバにはなく、転送先のアドレスの不明である場合が多い。 | |
411 | Length Required【長さリクエスト】 |
サーバは、定義された Content-Lengthのないリクエストの受理を拒否した場合に返される。 | |
412 | Precondition Failed【前提条件で失敗】 |
前提条件が偽だった場合に返される。 | |
413 | Request Entity Too Large【リクエスト・エンティティが大きすぎ】 |
リクエスト・エンティティがササーバの許容範囲を超えている場合に返す。サーバはリクエストの処理を拒否しているため。 ・たとえばアップローダの上限を超えたデータを送信しようとした場合に返される。 |
|
414 | Request-URI Too Long【リクエストURIが長すぎ】 |
リクエストされたURIが長過ぎるのでサーバが処理を拒否した場合に返す。サーバはリクエストの処理を拒否しているため。 ・たとえば画像データをアップロードする際に、サーバの許容データ量を超えた |
|
415 | Unsupported Media Type【非サポート・メディア・タイプ】 |
リクエストされたメディア・タイプがサーバーでサポートされていない場合に返される。フォーマットが対応していないため、リクエストの処理を拒否しているため。 | |
416 | Requested Range Not Satisfiable【リクエストされた範囲を満たせない】 |
リクエストされた範囲のデータを返すことができない。ファイル容量を超えたデータが要求された時など。 | |
417 | Expectation Failed【Expectヘッダによる拡張失敗】 |
Expectヘッダで指定されたリクエストをサーバが実行できない。Expectヘッダに100-continue以外の変なものを入れた場合や、そもそもサーバが100 Continueを扱えない場合に返す。 | |
418 | I’m a teapot【私はティーポット】 |
HTCPCP/1.0の拡張ステータスコード。 | |
422 | Unprocessable Entity【処理できないエンティティ】 |
WebDAVの拡張ステータスコード | |
423 | Locked【ロックされいる】 |
WebDAVの拡張ステータスコード。リクエストしたリソースがロックされている場合に返す。 | |
424 | Failed Dependency【依存関係で失敗】 |
WebDAVの拡張ステータスコード。 | |
426 | Upgrade Requiered【アップグレード要求】 |
Upgradeing to TLS Within HTTP/1.0の拡張ステータスコード | |
5xx系 | Server Error【サーバ・エラー】サーバーがリクエストの処理に失敗 |
500 | Internal Server Error【サーバ内部エラー】 |
サーバ内部にエラーが発生した場合に返される。CGIスクリプト・エラー・設定などのプログラムによるエラー。 | |
501 | Not Implemented【未実装】 |
サーバは、リクエストを実行するために必要な機能をサポートしていない。 | |
502 | Bad Gateway【不正ゲートウェイ】 |
ゲートウェイ・プロキシサーバは不正な要求を受け取り、これを拒否した場合に返します。不正なゲートウェイ経由のアクセスなど。 | |
503 | Service Unavailable【サービス利用不可】 |
サーバはサーバの一時的な過負荷あるいはメンテナンスのために、リクエストを扱うことができない場合に返される。 | |
504 | Gateway Timeout【ゲートウェイ・タイムアウト】 |
ゲートウェイ・プロキシサーバはURIから推測されるサーバからの適切なレスポンスがなくタイムアウトした場合に返される。 | |
505 | HTTP Version Not Supported【非サポートHTTPバージョン】 |
リクエストがサポートされていないHTTPバージョンである場合に返される。あるいはサポートを拒否している。 | |
506 | Variant Also Negotiates |
Transparent Content Negotiation in HTTPで定義されている拡張ステータスコード | |
507 | Insufficient Storage【容量不足】 |
WebDAVの拡張ステータスコード。リクエストを処理するために必要なストレージの容量が足りない場合に返される。 | |
509 | Bandwidth Limit Exceeded【帯域幅制限超過】 |
サーバに設定されている帯域幅(転送量)を使い切った場合に返される。 | |
510 | Not Extended【拡張できない】 |
An HTTP Extension Frameworkで定義されている拡張ステータスコード |