動的なリンクとSEO対策

動的なリンクとSEO対策
  
line

動的なリンクとSEO対策

Saturday, Feb, 18, 2006
line

今回は、ブログランキングのような動的なリンク集についてちょっと詳しく。
ブログランキングとブラウザがどんなやりとりをしているかをみてみます。
以下は、ブログランキングではありませんが、原理は似ているのでgoogleを例に説明してみます。

> telnet www.google.co.jp 80
Trying 66.249.89.99...
Connected to www.google.co.jp.
Escape character is '^]'.

GET / HTTP/1.1

HTTP/1.1 302 Found
Location: http://www.google.co.jp/
Set-Cookie: xxxx=xxxxxxxxx; expires=Sun, 17-Jan-2038 19:14:07 G
MT; path=/; domain=.google.com

Content-Type: text/html
Server: GWS/2.1
Content-Length: 221
Date: Fri, 17 Feb 2006 17:01:20 GMT

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.co.jp/">here</A>.
</BODY></HTML>

スタートメニュー→全てのプログラム→アクセサリ→コマンドプロンプトとたどっていき「コマンドプロンプト」を立ち上げます。

次に(正確に)「telnet www.google.co.jp 80」と打ち込みます。 打ち込んだらエンターキーを押します。
Windows付属のTelnetは非常に使いにくく、一文字打つごとに送信してしまいます。なので、打ち間違えないようにしてください。
意味としては、「www.google.co.jp」というドメインの「80」番ポートにコネクション(接続)してください。という感じでしょうか。

すると、
Trying 66.249.89.99...
Connected to www.google.co.jp.
Escape character is '^]'.

という返事が返ってきます。これは、

66.249.89.99(www.google.co.jpをIPアドレスに変換した値)に接続しています。
www.google.co.jp へコネクションを張りました。
接続を切るにはCtrl と ] を同時に押してください

という感じになります。

やはり打ち間違えないように「GET / HTTP/1.1」と入力し、今度はエンターキーを2回連続で打ちます。

GET / HTTP/1.1の下、空行あけて記述されているのがwww.google.co.jpから送られてきたデータです。
1行ずつみていきます。

HTTP/1.1 302 Found
これはステータスコードと呼ばれるものです。エラーがない場合は200番がかえってくるはずなのですが、何らかのエラーがあるとこのように300番台、400番台、CGIのエラーなんかだと500番台のステータスコードがかえってきます。
302番は、 「302 Moved Temporarily」。
つまり、「ご希望のページは移動されました」という意味です。
実際は移動していないんですけれど、とあるデータを送らなかったのでこんな返事が返ってきました(とあるデータはここでは割愛します)。

で、この302番のステータスコードと、下の「Location: ******」はたいていペアになっています。
ブラウザはこの302番を受け取ると、続いて送られてきた「Location: ******」の値を調べ、新たに「*******」へ接続し直します。
今回は「*******」が「http://www.google.co.jp/」ですので「http://www.google.co.jp/」へ接続し直します。
実際には今接続したURLなので、このgoogleの返事はおかしいのですが、この302番のステータスコードはよく知られているとあるシステムで使われています。

そう、ブログランキングやYSTの検索結果です。
たとえば、「http://www.google.co.jp/」へのリンクをクリックしようとリンクにカーソルを載せると、「ステータスバー」に「http://www.google.co.jp/」と表示されますが、ブログランキングやYSTではちょっと違うアドレスが表示されます。
「http://www.google.co.jp/」へ行きたいのに「http://aaaaaaa.co.jp/blogRanking.cgi?url=http%3a%2f%2fwww.google.co.jp%2f」と表示されるような感じ。
この場合は、「www.google.co.jp」へ行く前に、「http://aaaaaa.co.jp/blogRanking.cgi」へ行きます。
で、このCGIが、先ほどのwww.google.co.jpと同じように、

HTTP/1.1 302 Found
Location: http://www.google.co.jp/

を返します。よって、これを受け取ったブラウザは「http://www.google.co.jp/」へと接続し直します。

ブログランキングがSEO対策としては意味をなさない。といわれているのは、ブラウザは「302番」を受け取ると仕様に沿って、「Location: 」に続くURLに接続し直してくれますが、検索ロボットがこのようにきちんと指定されたURLへ接続し直してくれるかどうかは定かではありません。
もしかしたら、「こんな小細工をしているとは・・・。このURLはランクを下げるか。」なぁんて思っているかも?w
故に、SEO対策としては意味をなさないんじゃないか。と。
まぁ、googleをはじめ、検索サイトがどのような動作をするかが発表されていないんで、推測でしかないんですけれどねぇ。

Set-Cookie: xxxx=xxxxxxxxx; expires=Sun, 17-Jan-2038 19:14:07 G
MT; path=/; domain=.google.com
これはクッキーです。こんな感じでクッキーデータが送られてくるんですね。これを受け取ったブラウザは、このデータを一時的に保存します。
保存期限が「 expires=Sun, 17-Jan-2038 19:14:07 GMT 」の部分です。

Content-Type: text/html
これは、これから送るデータがテキストデータで、HTML形式のデータであることを示しています。
画像の場合は、image/gif みたいな感じになります。

Server: GWS/2.1
これは googleで使われているWebサーバーのソフト名ですね。


Content-Length: 221
これは、送信されるデータが何バイトかを示しています。
ブラウザは221バイト受け取ると、受信するのをやめます。


Date: Fri, 17 Feb 2006 17:01:20 GMT
で、この値ですが、リクエストしたページがいつ更新されたか。を示しています。先日の記事で静的なファイルと、動的な出力を見分ける方法を書きましたが、この値がサーバーから送られてくれば、静的なファイル。送られてこなければCGIやPHPといった動的なファイルとみなすことが出来ます。
が、CGIやPHP、さらにサーバーの設定によって動的なファイルでもこの値を返すことが出来るので、正確ではありません。
ただし、googleはこの値を記録しているようで、もしかしたらこの値があるかどうかで静的か動的かを見分けているかも??

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.co.jp/">here</A>.
</BODY></HTML>
で、この■色で表示されている部分がブラウザに表示される部分です。
Date: Fri, 17 Feb 2006 17:01:20 GMT
ここまでのデータを、HTTPヘッダーと呼んだりします。で、このHTTPヘッダーとブラウザで表示される<HTML>以下のデータは、必ず空白の1行で区切ることが定められています。

終了するには、「Ctrl + ] 」を押し、最後に「q」を押してエンターで終了します。

実際には、ソース表示させても<THML>以下のデータしか見ることが出来ませんが、Telnetやパケットキャプチャーを使うことによって、こうしたWebサーバーとブラウザのやりとりを確認することが出来ます。

これはインターネットを理解する上で非常に重要なことなので、是非一度実際にやってみてください。
おそらくCGIが書ける。っていう人でも、これらのやりとり(プロトコル)を全く知らない人が多いので、SEO対策を理解する上でも、必要な知識かと思います。

このテクニックを応用すれば、アウトルックエクスプレスを使わずに、メールを出したり出来ます。
基本的にはHTTPサーバー(Webサーバーのこと)、SMTPサーバー(メールサーバーのこと)をはじめ、ほとんどのサーバーはテキストによって会話をするので、色々な偽装やプログラムを使って操作したりすることが出来ます。

インターネット上でやりとりするには、どんな機械、ソフトが使われているのかわからないので、それぞれきちんとプロトコル(規則)が決められています。
HTTPプロトコルもそうした決まりの1つで、この決まりに従っていればきちんとやりとりが出来る。ということになります。
実際には、HTTPプロトコルだけでなく、TCPプロトコルやIPプロトコル等々色々なプロトコルにしたがってやりとりされます。
HTTPプロトコルがもっともやさしく、理解しやすい内容だと思います。
実際、TCP/IPといったレベルだと私は、さっぱりです。

投稿者 campanella : 2006年02月18日 03:00 | SEO対策2 | 編集
line
□□□ コメント □□□

line
名前
メールアドレス
URL
コメント
 
 
  kado