HTTPステータスコードとは
技術情報
HTTPステータスコードは、ApacheやNginxなどのWebサーバが応答の意味を表す3桁の数字のコードです。
目次
この記事の目次です。
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
更新履歴
更新履歴になります。
- 2022/8/12 ApacheでHTTPステータスコードに対応するエラーページの設定方法について追記しました。
- 2022/2/4 403 Forbidden関連の記事について追記しました。
- 2021/11/28 記事をUPしました。