アクセス分析リンク元取得

[上に] [前に] [次に]
たかまろ [HomePage] 1999/11/01(月) 16:12:46
今僕はCGIの勉強に
いろんなスクリプトをDLして、見比べながら憶えています。

その中で、画像呼び出し式のアスセス解析のスクリプトで
疑問が出てきました。

リンク元の情報を得る命令文?に
$ENV{'HTTP_REFERER'}があると思いますが、
その後、違うスクリプトには 同じ動作をする
$ENV{'QUERY_STRING'}を見つけました。

同じ動作をさせる命令に何故2つも存在するのですか?
教えて下さい。

ひまじん 1999/11/01(月) 18:18:04
1.SSIのexecで起動されたCGIだとhtmlが呼ばれた時に環境変数
HTTP_REFERERで参照元が取れる。

2.SSIが使えないサーバの場合、htmlが呼ばれても、単純にはCGIが
起動できないのでIMGタクで無理矢理CGI呼ぶと起動できる。
その場合はCGIで環境変数HTTP_REFERERを参照しても、そのhtmlのURL
になってしまい全然意味がありません。

だからhtmlが読み出されて端末側でJavaScriptで得たreferrerを使
い参照元をまず得ます。
それをCGI呼び出し時のパラメタにしてxxx.cgi?http://....html
見たく使ってCGIにhtmlファイルの参照元を渡すような事を行い、
呼び出された方のCGIは、REQUEST_METHODがGETになり、
QUERY_STRINGにhttp://...htmlがパラメタとして入ってくるので
それを使っているのではないでしょうか。

ようは、QUERY_STRINGは参照元を意味するものではなく、
CGIをxxx.cgi?param=1等と呼ぶ場合にパラメタの受け取りのための
環境変数ということです。
それが今回は偶然?参照元をパラメタとして渡していただけです。

andi 1999/11/01(月) 18:20:08
HTTP_REFERERはブラウザが一つ前に訪れたHPのアドレスを
教えてくれます。
QUERY_STRINGはFORMのGETメソッドで与えたり
リンクのhttp://〜/xxx.cgi?の後につけたりすると
値を得ることができます。

実際にソースを見ないとわからないと思いますが、
HTTP_REFERERを使用すれば自分のHP内での移動をカウントしなかったり、
外部からのCGIの使用を禁止したりできます。
QUERY_STRINGはカウンタ毎に設定すれば
ひとつのCGIで複数のカウンタを設置したりができそうですね。
つまり違う動作に使用されているのかも・・・

う〜ん・・・どうでしょう。

たかまろ 1999/11/01(月) 18:55:53
ありがとうございます。
もっとCGIを勉強しなければ、


ps.KENTさんのところも見ている方、すいませんです。

たかまろ 1999/11/02(火) 11:42:22
[[解決]]
忘れてました。済にします。

[上に] [前に] [次に]