2005年11月14日

動的なページを静的なページに見せる33

動的なページを静的なページとしてみせる2という記事を書きましたが、実はこれだけでは不十分でして。
場合によっては、動的なページって一発でばれる項目があります。


それはサーバーが返すHTTPヘッダーにあるのですが。
たとえば、静的なページにアクセスしてきた場合、サーバーはページを送信する前にいくつかデータを送信します。
その中にあるのが、「Last-Modified」という項目ですね。
これは要求されたページの最終更新時間になります。
細かくいうと、最終更新時間から9時間引いた(日本サーバーの場合)値になります。
ところが、動的なページはこの項目を返しません。
つまり、この「Last-Modified」が送られてきたかどうかで動的なページか静的なページを判断することが出来ます。

実は、ライブドアの私のブログを久しぶりに見ていたのですが、ずいぶん前から更新していなくて・・・。んで、googleにどれくらいキャッシュされているか調べてみました。
記事総数は270を超えます。
ところが、たった17件・・・。
バリバリ書いていた時は、100を超えていたと思うのですが・・・。
なので、もしかしたら検索ロボットはクローリングする時にページが更新されているかチェックしているかもしれません。
んで、チェック方法の1つとしてこの「Last-Modified」を見ているかもしれません。


そこまで検索ロボットが見てるかどうかわかりませんが、PHPのような動的なページでも強制的にこの「Last-Modified」を出力させてみましょう。


出力するのはこんな感じになります。

If-Modified-Since: Thu, 03 Nov 2005 12:14:48 GMT

なので、スクリプトの頭の方で以下のように記述しておきます。

header("If-Modified-Since: " . date("D, d M Y H:i:s") . " GMT");


さて、この結果どういうやりとりをするか見てみます。
まず最初のアクセスです。

GET /test.php HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, a
pplication/x-shockwave-flash, application/vnd.ms-excel, */*
Accept-Language: ja
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;
.NET CLR 1.1.4322)
Host: fstyle.ddo.jp
Connection: Keep-Alive

HTTP/1.1 200 OK
Date: Sun, 13 Nov 2005 17:13:22 GMT
Server: Apache
X-Powered-By: PHP/
Last-Modified: Thu, 03 Nov 2005 12:14:48 GMT
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

45
<html>


次に、2回目のアクセスです。


GET /test.php HTTP/1.1
Accept: */*
Accept-Language: ja
Accept-Encoding: gzip, deflate
If-Modified-Since: Thu, 03 Nov 2005 12:14:48 GMT
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;
.NET CLR 1.1.4322)
Host: fstyle.ddo.jp
Connection: Keep-Alive

HTTP/1.1 200 OK
Date: Sun, 13 Nov 2005 17:15:56 GMT
Server: Apache
X-Powered-By: PHP/5.0.5
Last-Modified: Thu, 03 Nov 2005 12:17:28 GMT
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

45
<html>


campanella_77 at 02:43│Comments(0)TrackBack(0)PHP 

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 
What's campanella
ライブカメラ公開中
kao.gif
訪問者数
  • 今日:
  • 昨日:
  • 累計: