2015.
04.
18
14:06:05
言いたいことはすべてタイトルに書いてしまいましたが、
PHPの「get_headers()」はデフォルトではGETメソッドでアクセスするらしいです。
マジかよ<( ̄◇ ̄;)>
「get_headers()」は、その名の通りHTTPアクセスしてヘッダ情報を取得する関数です。
だから今まで、HEADメソッドでアクセスしているものだと勝手に思い込んでいました。
ところが
HEADメソッドによるHTTPアクセスに対して404エラーを返す
の記事で書いた対応の動作確認のために、こんなプログラムを作ったのですがφ(--)
一向に404が返ってこなくてですね。
200ばっかり返ってきてキレ気味になっていたのです。
なんでHEADメソッドでアクセスしてるのに404が返らないんだよ!(#T皿T)ノミ☆ガンガン
サーバ側のログを見たら、こんなんなってましたφ(--)
……GETでアクセスしてるじゃん(--;
慌てて「get_headers()」の仕様を確認したところ、バージョン5.1.3の変更履歴に
とか書いてありました。
そんでもって、デフォルトはGETみたいです。
ついでに、HEADでアクセスしたければ
をつけなさい、とも書いてありました。
あっ、そーですか(^^ゞ
結局、もともとのコードを
に変更して実行したら、ちゃんとHEADでのアクセスになりました。
なるほど。
なんでデフォルトはHEADじゃなくてGETなんですかね(--?
まぁ、良いや。
取りあえず、そんな感じ\(--)/
PHPの「get_headers()」はデフォルトではGETメソッドでアクセスするらしいです。
マジかよ<( ̄◇ ̄;)>
「get_headers()」は、その名の通りHTTPアクセスしてヘッダ情報を取得する関数です。
だから今まで、HEADメソッドでアクセスしているものだと勝手に思い込んでいました。
ところが
HEADメソッドによるHTTPアクセスに対して404エラーを返す
の記事で書いた対応の動作確認のために、こんなプログラムを作ったのですがφ(--)
<?php
$header = get_headers("http://example.com/");
var_dump($header);
$header = get_headers("http://example.com/");
var_dump($header);
一向に404が返ってこなくてですね。
200ばっかり返ってきてキレ気味になっていたのです。
なんでHEADメソッドでアクセスしてるのに404が返らないんだよ!(#T皿T)ノミ☆ガンガン
サーバ側のログを見たら、こんなんなってましたφ(--)
198.51.100.0 - - [18/Apr/2015:12:21:12 +0900] "GET / HTTP/1.0" 200 198 "-" "-"
……GETでアクセスしてるじゃん(--;
慌てて「get_headers()」の仕様を確認したところ、バージョン5.1.3の変更履歴に
この関数はデフォルトのストリームコンテキストを使用します。 これは、stream_context_set_default() 関数を使用して設定/変更することが可能です。
とか書いてありました。
そんでもって、デフォルトはGETみたいです。
ついでに、HEADでアクセスしたければ
stream_context_set_default(
array(
'http' => array(
'method' => 'HEAD'
)
)
);
array(
'http' => array(
'method' => 'HEAD'
)
)
);
をつけなさい、とも書いてありました。
あっ、そーですか(^^ゞ
結局、もともとのコードを
<?php
stream_context_set_default(
array(
'http' => array(
'method' => 'HEAD'
)
)
);
$header = get_headers("http://example.com/");
var_dump($header);
stream_context_set_default(
array(
'http' => array(
'method' => 'HEAD'
)
)
);
$header = get_headers("http://example.com/");
var_dump($header);
に変更して実行したら、ちゃんとHEADでのアクセスになりました。
なるほど。
なんでデフォルトはHEADじゃなくてGETなんですかね(--?
まぁ、良いや。
取りあえず、そんな感じ\(--)/