目次

この記事の目次です。

1. HTTPステータスコードとは
2. HTTPステータスコード200、300番台
3. HTTPステータスコード400番台
4. HTTPステータスコード500番台
5. ApacheでHTTPステータスコードに対応するエラーページの設定方法

更新履歴

1. HTTPステータスコードとは

HTTPステータスコードは、ApacheやNginxなどのWebサーバが応答の意味を表す3桁の数字のコードです。

2. HTTPステータスコード200、300番台

HTTPステータスコードの200番台はリクエスト成功、300番台はリダイレクトの際に設定されます。

HTTPステータスコード200:OK

HTTPステータスコード200は、リクエスト成功を表します。

HTTPステータスコード301:Moved Permanently

HTTPステータスコード301は、301リダイレクトとも呼ばれるコードです。 SEOなどでは元のページの評価を引き継いでページを移設する際に301リダイレクトが使うといいといわれています。

301(moved permanently)の意味

HTTPステータスコードの301(moved permanently)は、「恒久的に移動した」ことを意味するコードです。

301(moved permanently)の原因

Webサーバのログに、301(moved permanently)が出力されるリクエストがあり、気になって調べる方もいるかと思います。 これはWebサーバやWebアプリケーションなどで同ステータスコードを設定してリクエストしているのが原因です。

HTTPステータスコード302:Found

HTTPステータスコード302は、一時的なリダイレクトを表します。 一時的にそのURLのページが表示できない場合に別のURLを表示する場合に設定します。

3. HTTPステータスコード400番台

HTTPステータスコードの400番台はクライアントからのリクエストに誤りがあった場合に設定されます。

HTTPステータスコード400:Bad Request

HTTPステータスコード400は「リクエストが不正」を表します。

HTTPステータスコード400:Bad Requestの原因の例

たとえば、存在しないメソッドを使う、ヘッダ情報を不正にするなどした場合に設定されます。

HTTPステータスコード400:Bad Requestの発生例

たとえば、curlコマンドでHostヘッダに複数のHostを指定するとHTTPステータスコード400:Bad Requestが発生します。

$ curl -H "Host: htaccess-suport.com, htaccess-support.com" http://localhost/
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<p>Additionally, a 400 Bad Request
error was encountered while trying to use an ErrorDocument to handle the request.</p>
</body></html>

HTTPステータスコード401:Unauthorized

HTTPステータスコード401は、認証が必要であることを表します。 たとえば、Basic認証を行う場合に設定されます。

HTTPステータスコード403:Forbidden

HTTPステータスコード403は、禁止されていることを表します。 たとえば、ディレクトリリスティング機能が無効になっているところにディレクトリ名でアクセスした場合などに設定されます。

403 Forbiddenとは

403 Forbiddenとは、閲覧禁止を意味するエラーです。ご自身が公開しているホームページであれば閲覧禁止となる原因を確認すれば、解決もしくは回避できます。 ここでは403 Forbiddenの解決をテーマに、ワードプレス(WordPress)、ロリポップ(lolipop!)、などのエラー対処方法をまとめています。

詳細

ディレクトリリスティングとは

ディレクトリリスティングは、URLでWebディレクトリを指定したときに、インデックスファイルがない場合にディレクトリのファイル一覧を表示する機能です。 意図せずにディレクトリリスティングを有効にしている場合も多く、それを悪用したサーバー攻撃の手法のことを指す場合もあります。

詳細

HTTPステータスコード404:Not Found

HTTPステータスコード404は、未検出を表します。 たとえば、存在しないリソース名でアクセスした場合に設定されます。

4. HTTPステータスコード500番台

HTTPステータスコードの500番台はサーバエラーを表します。

HTTPステータスコード500:Internal Server Error

HTTPステータスコード500は、サーバ内部エラーを表します。 たとえば、サーバサイドのプログラム(CGI)でエラーが発生した場合に設定されます。

HTTPステータスコード502:Bad Gateway

HTTPステータスコード502は、不正なゲートウェイを表します。 たとえば、プロキシサーバで不正な要求を受け取り、拒絶した場合に設定されます。

HTTPステータスコード503:Service Unavailable

HTTPステータスコード503は、サービス利用不可を表します。 たとえば、サーバにアクセスが集中してレスポンスが返せなくなった場合などに設定されます。

5. ApacheでHTTPステータスコードに対応するエラーページの設定方法

ApacheでHTTPステータスコードに対応するエラーページは「ErrorDocument」ディレクティブで設定できます。

.htaccessファイルの記述例

たとえば、.htaccessファイルに以下のように記述することでHTTPステータスコード404とHTTPステータスコード500で表示されるエラーページが設定できます。

ErrorDocument 404 /errors/not-found.html
ErrorDocument 500 /errors/server-error.html

更新履歴

更新履歴になります。

トップ技術データベースHTTPステータスコード