Perl/CGI研究室 'PERL-LABO'

Perl/CGI研究室 'PERL-LABO' TOPへ
戻る(History.Back)

Locationでジャンプ

研究内容

HTTPヘッダのLocationヘッダで別のページにジャンプするらしいです。テストしてみましょう。

詳細

HTTPヘッダというのは、Content-type: text/html っていうあれです。 HTTPヘッダにはいろいろな種類があり、その中にLocationというものがあります。 HTTPヘッダでLocationを指定すると任意のページにジャンプすることができます。 例えば、次のような文字列をCGIで出力したとしましょう。

Location: http://www.yahoo.co.jp/

ブラウザ側ではこれを解釈して、自動的に http://www.yahoo.co.jp/ にジャンプしてくれます。 そういう機能がもともとブラウザ側にはあるんですね。

この機能、なんに使うんだ?という感じでもありますが、結構便利なこともあるようです。 例えば、あるリンクが何回クリックされたかとかいうことを数えたいときに、 一旦CGIプログラムを経由して、クリックされた回数を増やす処理をして、 Locationで本来のページにジャンプするとか。 他にもいろいろ使い道があるみたいですし、 面白そうなので試してみましょう。

結果

print文でLocation:〜というのを出力するだけなので簡単です。 今までいつも出力していたContent-type:〜は必要ありません。 HTTPヘッダの後の空行を出力するのを忘れないようにしましょう。

作成したCGIプログラム

gotoyahoo.cgi
#!/usr/bin/perl

print "Location: http://www.yahoo.co.jp/\n";
print "\n";

結果

次のリンクをクリックしてください。gotoyahoo.cgiが実行されて、Yahoo!Japanが開けば成功です。

gotoyahoo.cgiを実行してYahoo!Japanを開きます!

考察

ちゃんとジャンプできました。

分かったこと

  1. Locationヘッダでちゃんとジャンプ出来ました。
Perl/CGI研究室 'PERL-LABO' TOPへ
戻る(History.Back)

Copyright (c) 'PERL-LABO' All Rights Reserved.  リンクフリーです。