よく使うヘッダー関数のまとめ

[参考記事] HTTPヘッダー情報とは
[参考記事] Internet Explorerでヘッダー情報をみる方法
[参考記事] Firefoxでヘッダー情報をみる方法
[参考記事] Google ChromeでHTTP headerをみる方法
[参考記事] docomo端末でCSSを使うには
[参考記事] Androidのapkファイルをサーバから端末にダウンロードする

正しいレスポンス

header("HTTP/1.x 200 OK");
exit;

ページが見つからない。

header("HTTP/1.0 404 Not Found");
exit;

ページの移動

header("HTTP/1.1 301 Moved Permanently");
header("location: http://" . $domain . $uri);
exit;

ページの移動 (一時的)

header("HTTP/1.1 302 Found(Moved Temporary)");
header("location: http://" . $domain . $uri);
exit;

ベーシック認証

header("WWW-Authenticate: Basic realm=\"Please Enter Your Password\"");
header("HTTP/1.0 401 Unauthorized");
exit;

入力された値は次のようにして受け取れる

アカウント$_SERVER["PHP_AUTH_USER"]
パスワード$_SERVER["PHP_AUTH_PW"]

HTML出力のコンテントタイプ

header('Content-Type: text/html; charset=Shift_JIS');

header('Content-Type: text/html; charset=UTF-8');

header('Content-Type: text/html; charset=EUC-JP');

XML出力のコンテントタイプ

header('Content-type: application/xhtml+xml; charset=Shift_JIS');

header('Content-type: application/xhtml+xml; charset=UTF-8');

header('Content-type: application/xhtml+xml; charset=EUC-JP');

画像出力のコンテントタイプ

header ( 'Content-type: image/jpeg' );

header ( 'Content-type: image/gif' );

header ( 'Content-type: image/png' );

ファイルダウンロード時のデフォルトファイル名

header("Content-Disposition: attachment; filename=\"test.cvs\"");

出力ファイル容量 (au EZweb対策によく使う)

header("Content-Length:" . filesize($file_path));

最終更新日時

header("Last-Modified: Fri, 02 Mar 2007 17:40:01 GMT");

キャッシュコントロール

header("Cache-control: public");
header("Pragma: public");

header("Cache-Control: private, max-age=10800, pre-check=10800");
header("Pragma: no-cache");

HTTPステータスコード(レスポンスコード)の一覧

$GLOBALS['http_status_code'] = array(
	array("code"=>200,"name"=>"OK","description"=>"成功。リクエストは成功し、レスポンスとともに要求に応じた情報が返される。"),
	array("code"=>201,"name"=>"Created","description"=>"作成。リクエストは完了し、新たに作成されたリソースのURIが返される。"),
	array("code"=>202,"name"=>"Accepted","description"=>"受理。リクエストは受理されたが、処理は完了していない。"),
	array("code"=>203,"name"=>"Non-Authoritative Information","description"=>"信頼できない情報。オリジナルのデータではなく、ローカルやプロキシ等からの情報であることを示す。"),
	array("code"=>204,"name"=>"No Content","description"=>"内容なし。リクエストを受理したが、返すべきレスポンスエンティティが存在しない場合に返される。"),
	array("code"=>205,"name"=>"Reset Content","description"=>"内容のリセット。リクエストを受理し、ユーザエージェントの画面をリセットする場合に返される。"),
	array("code"=>206,"name"=>"Partial Content","description"=>"部分的内容。部分的GETリクエストを受理したときに、返される。"),
	array("code"=>207,"name"=>"Multi-Status","description"=>"複数のステータス。WebDAVの拡張ステータスコード。"),
	array("code"=>226,"name"=>"IM Used","description"=>"IM使用。Delta encoding in HTTPの拡張ステータスコード。"),
	array("code"=>300,"name"=>"Multiple Choices","description"=>"複数の選択。リクエストしたリソースが複数存在し、ユーザやユーザーエージェントに選択肢を提示するときに返される。"),
	array("code"=>301,"name"=>"Moved Permanently","description"=>"恒久的に移動した。リクエストしたリソースが恒久的に移動されているときに返される。Location:ヘッダに移動先のURLが示されている。"),
	array("code"=>302,"name"=>"Found","description"=>"発見した。リクエストしたリソースが一時的に移動されているときに返される。Location:ヘッダに移動先のURLが示されている。"),
	array("code"=>303,"name"=>"See Other","description"=>"他を参照せよ。リクエストに対するレスポンスが他のURLに存在するときに返される。Location:ヘッダに移動先のURLが示されている。"),
	array("code"=>304,"name"=>"Not Modified","description"=>"未更新。リクエストしたリソースは更新されていないことを示す。"),
	array("code"=>305,"name"=>"Use Proxy","description"=>"プロキシを使用せよ。レスポンスのLocation:ヘッダに示されるプロキシを使用してリクエストを行わなければならないことを示す。"),
	array("code"=>306,"name"=>"(Unused)","description"=>"将来のために予約されているコード番号。"),
	array("code"=>307,"name"=>"Temporary Redirect","description"=>"一時的リダイレクト。リクエストしたリソースは一時的に移動されているときに返される。Location:ヘッダに移動先のURLが示されている。"),
	array("code"=>400,"name"=>"Bad Request","description"=>"リクエストが不正である。定義されていないメソッドを使うなど、クライアントのリクエストがおかしい場合に返される。"),
	array("code"=>401,"name"=>"Unauthorized","description"=>"認証が必要である。Basic認証やDigest認証などを行うときに使用される。"),
	array("code"=>402,"name"=>"Payment Required","description"=>"支払いが必要である。"),//現在は実装されておらず、将来のために予約されているとされる。
	array("code"=>403,"name"=>"Forbidden","description"=>"アクセスが禁止されている。リソースにアクセスすることを拒否された。"),
	array("code"=>404,"name"=>"Not Found","description"=>"未検出。リソースが見つからない。"),
	array("code"=>405,"name"=>"Method Not Allowed","description"=>"許可されていないメソッド。許可されていないメソッドを使用しようとした。"),
	array("code"=>406,"name"=>"Not Acceptable","description"=>"受理できない。Accept関連のヘッダに受理できない内容が含まれている場合に返される。"),
	array("code"=>407,"name"=>"Proxy Authentication Required","description"=>"プロキシ認証が必要である。プロキシの認証が必要な場合に返される。"),
	array("code"=>408,"name"=>"Request Timeout","description"=>"リクエストタイムアウト。リクエストが時間以内に完了していない場合に返される。"),
	array("code"=>409,"name"=>"Conflict","description"=>"矛盾。要求は現在のリソースと矛盾するので完了出来ない。"),
	array("code"=>410,"name"=>"Gone","description"=>"消滅した。ファイルは恒久的に移動した。どこに行ったかもわからない。"),
	array("code"=>411,"name"=>"Length Required","description"=>"長さが必要。Content-Length ヘッダがないのでサーバがアクセスを拒否した場合に返される。"),
	array("code"=>412,"name"=>"Precondition Failed","description"=>"前提条件で失敗した。前提条件が偽だった場合に返される。"),
	array("code"=>413,"name"=>"Request Entity Too Large","description"=>"リクエストエンティティが大きすぎる。リクエストエンティティがサーバの許容範囲を超えている場合に返す。"),
	array("code"=>414,"name"=>"Request-URI Too Long","description"=>"リクエストURIが大きすぎる。URIが長過ぎるのでサーバが処理を拒否した場合に返す。"),
	array("code"=>415,"name"=>"Unsupported Media Type","description"=>"サポートしていないメディアタイプ。指定されたメディアタイプがサーバでサポートされていない場合に返す。"),
	array("code"=>416,"name"=>"Requested Range Not Satisfiable","description"=>"リクエストしたレンジは範囲外にある。実ファイルのサイズを超えるデータを要求した。"),
	array("code"=>417,"name"=>"Expectation Failed","description"=>"Expectヘッダによる拡張が失敗。その拡張はレスポンスできない。またはプロキシサーバは、次に到達するサーバがレスポンスできないと判断している。"),
	array("code"=>418,"name"=>"I'm a teapot","description"=>"私はティーポット(ジョークのコード)。HTCPCP/1.0の拡張ステータスコード。コーヒーを淹れるように要求したが、接続先はティーポットであるためコーヒーを入れることができない。"),
	array("code"=>422,"name"=>"Unprocessable Entity","description"=>"処理できないエンティティ。WebDAVの拡張ステータスコード。"),
	array("code"=>423,"name"=>"Locked","description"=>"ロックされている。WebDAVの拡張ステータスコード。リクエストしたリソースがロックされている場合に返す。"),
	array("code"=>424,"name"=>"Failed Dependency","description"=>"依存関係で失敗。WebDAVの拡張ステータスコード。"),
	array("code"=>426,"name"=>"Upgrade Required","description"=>"アップグレード要求。Upgrading to TLS Within HTTP/1.1の拡張ステータスコード。"),
	array("code"=>500,"name"=>"Internal Server Error","description"=>"サーバ内部エラー。サーバ内部にエラーが発生した場合に返される。"),
	array("code"=>501,"name"=>"Not Implemented","description"=>"実装されていない。実装されていないメソッドを使用した。"),
	array("code"=>502,"name"=>"Bad Gateway","description"=>"不正なゲートウェイ。ゲートウェイ・プロキシサーバは不正な要求を受け取り、これを拒否した。"),
	array("code"=>503,"name"=>"Service Unavailable","description"=>"サービス利用不可。サービスが一時的に過負荷やメンテナンスで使用不可能である。"),
	array("code"=>504,"name"=>"Gateway Timeout","description"=>"ゲートウェイタイムアウト。ゲートウェイ・プロキシサーバはURIから推測されるサーバからの適切なレスポンスがなくタイムアウトした。"),
	array("code"=>505,"name"=>"HTTP Version Not Supported","description"=>"サポートしていないHTTPバージョン。リクエストがサポートされていないHTTPバージョンである場合に返される。"),
	array("code"=>506,"name"=>"Variant Also Negotiates","description"=>"Transparent Content Negotiation in HTTPで定義されている拡張ステータスコード。"),
	array("code"=>507,"name"=>"Insufficient Storage","description"=>"容量不足。WebDAVの拡張ステータスコード。リクエストを処理するために必要なストレージの容量が足りない場合に返される。"),
	array("code"=>509,"name"=>"Bandwidth Limit Exceeded","description"=>"帯域幅制限超過。そのサーバに設定されている帯域幅(転送量)を使い切った場合に返される。"),
	array("code"=>510,"name"=>"Not Extended","description"=>"拡張できない。An HTTP Extension Frameworkで定義されている拡張ステータスコード。"),
);

[参考記事] HTTPヘッダー情報とは
[参考記事] Internet Explorerでヘッダー情報をみる方法
[参考記事] Firefoxでヘッダー情報をみる方法
[参考記事] Google ChromeでHTTP headerをみる方法
[参考記事] docomo端末でCSSを使うには
[参考記事] Androidのapkファイルをサーバから端末にダウンロードする

関連記事

スポンサーリンク

EclipseでAndroidプロジェクトを作る方法

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る