http://e-words.jp/w/E382BDE382B1E38383E38388.html
ソケットとは 【socket】 ─ 意味・解説 : IT用語辞典 e-Words
サーバもソケットを使うとPCのブラウザと同じようにWebページを見に行くことができます。
回答を書き込もうとすると、たまになかなかプレビュー画面に切り替わらずに待たされることがあります。そして「このURLは反応がありません」みたいなエラーが表示されることがあります。つまり、回答を書き込む前に、はてなのサーバは回答として記入したURLを読みに行っているわけです。
<title>○○</title>は、その時に取得した内容だと思います。
http://x68000.q-e-d.net/~68user/net/http-1.html
HTTP クライアントを作ってみよう(1)
技術的にはこういうことをするとサーバをHTTPクライアントとして動作させることができます。
Googleはロボットが検索したうえで、データベースを作成しているので、そのロボットがデータとして格納していると思われますが、はてなのばあいは、CGIでHTMLを取得し、<title>と言う場所を検索して、そこに挟まれた文字を出力しているのではないでしょうか。
print”Content-type:text/html¥n¥n”;
use LWP::Simple;
$c=0;
$fdname=”http://www.google.com/”;
$doc = get($fdname);
$find = index ($doc, ’title’, $find );
$i = index ($doc, ’>’, $find );
$i++;
$j = index ($doc, ’<’, $i );
$w=substr($doc,$i,$j-$i);
print ”$w
”;
exit();
こんな感じだと思います。
これだと横文字のページタイトルしか取得できないので、改良してください。
具体的なソースまでも。ありがとうございます。
http://www.studyinghttp.net/method#HEAD
[Studying HTTP] HTTP Method
hatenaのシステムに自宅サーバにアクセスさせてみました。
(URLは私の自宅サーバではありません。念のためw)
ログを見てみると、http/1.1で定義されているHEADメソッドを使ってアクセスし、htmlファイルの<head>タグに囲まれた内容を取得してました。
そこから、<title></title>の間に記述された内容を、毎回読み取っているようです。
以下、ログから抜粋…
”HEAD / HTTP/1.1” 200 0 ”-” ”Hatena Pagetitle Agent/1.0”
お。確認ありがとうございます。
なるほど。
ありがとうございます。