header

PHPでリンク切れを調べる(その2)

(1/3)

以前、コンテンツ内のリンク切れを調べるプログラムを作ったが、リンク先でリダイレクトしていたりすると、期待する結果が得られないケースがある。 そこで今回は、HTTPレスポンスを調べ、より実用的なプログラムに改良してみることにした。

HTTPレスポンス

HTTP通信とは、

  1. クライアントがURLを含むHTTPリクエストを送出する
  2. サーバ側がHTTPレスポンスを返す

――この繰り返しである。

fopen 関数でインターネットにアクセスするときには表に見えないが、実際には、リクエスト・ヘッダとレスポンス・ヘッダがやり取りされている。そして、レスポンス・ヘッダの中には、リクエストしたコンテンツがどうなっているかを示すステータスが記録されている。このステータスを解析することで、リンク切れなのかどうか判断できる。
HTTPレスポンスの詳細については、HTTP Status Codeを参照してほしい。

今回は、HTTPレスポンスがクライアントエラー(4xx番台)とサーバエラー(5xx番台)が「リンク切れ」であると定義し、プログラムを作っていくことにする。

(この項つづく)