HTTPヘッダいろいろ@はやし

先週の土曜にJR仁木町で初めて降り、友人と町を歩きましたが、
歩いている人は私たち以外誰もいない、とっても静かな町でした。
仁木ファームの「チェリーパイ」がとてもおいしかったです!


本日はHTTPヘッダあれこれです。


●HTTPヘッダ
データの先頭に付加される、データ自体に関する情報。
ウェブのリソースに関するメタ情報を提供します。
ブラウザからウェブサーバへの外へ出ていくリクエストヘッダと
ウェブサーバからブラウザへ返ってくる応答のリプライヘッダがあります。


header() 関数は、通常の HTML タグまたは PHP からの出力にかかわらず、
すべての実際の 出力の前にコールする必要があることです。
PHPマニュアルより)


header出力の前にデバック用にprintと書いてあるのを
忘れてしまうことが度々。。。
もちろんエラーです。



SSLPHP+ファイルをダウンロードする場合
・ダウンロード対象となるファイルに Content-Disposition:attachment
ヘッダーを付加している
・Cache-Control:no-cache ヘッダーなどを使用して、ファイルのキャッシュを
行わない設定をしている


IEではファイルのダウンロードができません。


例えばcsvファイルダウンロードの際には
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=output.csv");


の前に


session_cache_limiter('public') ;


または

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


と付け加えると、ダウンロードが可能になります。


◆ Pragma (要求/応答)
・Pragma: no-cache:
キャッシュを禁止する旨をプロキシサーバやクライアントに通知します。


◆ Cache-Control (要求/応答)
キャッシュに関する指示を表します。
・Cache-Control: no-cache:
プロキシサーバやクライアントがこのリソースをキャッシュしては
ならないことを示しています。
※HTTP/1.0 では Pragma: no-cache が使用されます。


◆session_cache_limiter()
クライアントに送信されるキャッシュ制御用の HTTPヘッダを制御します。
これらのヘッダは、ページの内容をクライアントやプロキシが
キャッシュする規則を定義します。


session_cache_limiter()もheader()と同じように
通常の HTML タグまたは PHP からの出力にかかわらず、
すべての実際の 出力の前にコールする必要があります。


・session_cache_limiter('nocache'):
クライアント/プロキシのキャッ シュは無効になります。

・session_cache_limiter('public'):
キャッシュを許可します。

・session_cache_limiter('private'):
プロキシがキャッシュすることは許可しませんが
クライアントがキャッシュすることは許可されます。



●『ieHTTPHeaders 』
HTTP リクエストとレスポンスを表示してくれる IEプラグイン

・ieHTTPHeaders のダウンロードとインストール
■blunck.info
http://www.blunck.info/iehttpheaders.html
■Download ieHTTPHeaders - Just download and execute the installer
http://www.blunck.se/iehttpheaders/ieHTTPHeadersSetup.exe



●余談
「HTTP」でグーグル検索したら、”Yahoo!Japan”や
厚生労働省”、”首相官邸ホームページ”が1ページ目でヒットします。


●参考
■HTTP入門(ヘッダ)
http://www.tohoho-web.com/ex/http.htm#headers
■studyingHTTP
http://www.studyinghttp.net/header