- PR -

URLリファー

1
投稿者投稿内容
masagt
会議室デビュー日: 2001/10/01
投稿数: 10
投稿日時: 2001-10-01 16:07
はじめて投稿させていただきます。よろしくお願いします。

早速なのですが、以下のことは可能でしょうか?
【内容】
ユーザがどこからきたのかURLを調べたい。

例として、
たとえば、http://www.yahoo.co.jpからきたとした場合、
そのURLのStringを取りたいと考えています。Javaで実現可能でしょうか?

同様の内容としては、JavaScriptのdocument.referrerというメソッドがあるようですが、
開発の関係上Javaのみで実現することになってしまいました。

どうかご教授ください。
H2
ぬし
会議室デビュー日: 2001/09/06
投稿数: 586
お住まい・勤務地: 港
投稿日時: 2001-10-01 17:38
できますよ。

ServletやJSPではjavax.servlet.ServletRequest の getRemoteHost()メソッドが使えます。アクセスしてくるクライアントのURLもしくはIPアドレス(URLが引けない場合)を返すそうです。IPアドレスを調べる時はgetRemoteAddr()メソッドが使えます。

java.netを使ったソケット・プログラミングではgetURL()メソッドが使えるのではないでしょうか?

[ メッセージ編集済み 編集者: H2 編集日時 2001-10-01 17:52 ]
masagt
会議室デビュー日: 2001/10/01
投稿数: 10
投稿日時: 2001-10-01 18:00
ありがとうございます。
getRef()というメソッドがありましたが、それでいけそうですね・・・
しかし、フレームなどを使用しているHPの場合、URLが同じということも
考えられそうですが・・・
H2
ぬし
会議室デビュー日: 2001/09/06
投稿数: 586
お住まい・勤務地: 港
投稿日時: 2001-10-01 18:22
あや、ごめんなさい。すっかり勘違いしたみたいです。
引用:

ユーザがどこからきたのかURLを調べたい。


っていうのはどのリンクをたどってきたのかを調べたいということですね。初歩的な間違いをしてしまいました。私が載せたのは、ユーザーがどこからアクセスしているかでした。

失礼しました。


[ メッセージ編集済み 編集者: H2 編集日時 2001-10-01 20:46 ]
ひぐち おさむ
大ベテラン
会議室デビュー日: 2001/07/26
投稿数: 108
お住まい・勤務地: 東京都在住
投稿日時: 2001-10-01 20:14
引用:

masagtさんの書き込み (2001-10-01 18:00) より:
しかし、フレームなどを使用しているHPの場合、URLが同じということも
考えられそうですが・・・


試したわけではないのでアレですが、たぶん、Referrer にはリンク元の「ページ」の URI が入ると思います。フレームのトップではなく、リンクのタグが書いてあるページの URI です。

逆に、リンク先のページがフレーム構成になっているときは、フレームの子ページから Referrer を調べると、ブラウザによって親フレームのリンク元を返したり、親フレームそのものを返したりすることがあるので気をつけないといけないはずです。たぶん。
_________________
ひぐち おさむ
[Disclaimer] この書き込みは私個人の見解を記述したものです。私が所属・関与する法人・団体の意見を代表・代弁するものではありません。
H2
ぬし
会議室デビュー日: 2001/09/06
投稿数: 586
お住まい・勤務地: 港
投稿日時: 2001-10-01 20:44
訂正バージョンです。

jspやservletではString referedFrom = request.getHeader("REFERER");で"referedFrom"にリンク元のアドレスが返されます。フレームで試したところ、親フレームそのものを返しました。(IE 5.5 sp2です)

ところでgetRef()はちょっと違うと思います。もしURLが
"http://www.cse.unsw.edu.au/index.html#chapter1"
とあった場合、#の後の"chapter1"というのはInternal Reference(同じページ内でぽこぽこ飛ぶ奴です)になります。getRef()はURLオブジェクトからこの部分を返すだけのメソッドです。この場合、"chapter1"しか返してくれません。refere(参照元)ではなくreference(参照先)をgetするものです。

[ メッセージ編集済み 編集者: H2 編集日時 2001-10-01 20:49 ]
masagt
会議室デビュー日: 2001/10/01
投稿数: 10
投稿日時: 2001-10-02 10:25
すいません、勘違いしてたようですね。
ひぐちさん、H2さん、ありがとうございました
cronocraft
会議室デビュー日: 2001/10/09
投稿数: 3
お住まい・勤務地: 横浜・東京
投稿日時: 2001-10-09 11:09
引用:

H2さんの書き込み (2001-10-01 20:44) より:
訂正バージョンです。

jspやservletではString referedFrom = request.getHeader("REFERER");で"referedFrom"にリンク元のアドレスが返されます。フレームで試したところ、親フレームそのものを返しました。(IE 5.5 sp2です)

[ メッセージ編集済み 編集者: H2 編集日時 2001-10-01 20:49 ]



REFERERに何が設定されるかはブラウザ依存ですので、IEとNNでは振る舞いが違ってきます。
frameを使用する際にはご注意ください。
(参考)
http://www.ez-net.ne.jp/index.asp?content=%2Fspecial%2Fsoftware%2Fbrowser%2Freferer%2Easp

また、最近のフィルタリング技術(プロキシサーバやWebwasherという製品)では、
HTTPヘッダ上のREFERERを加工・削除してしまうこともありますので、
そういう利用者の場合には、そもそもREFERERが取得できないこともあります。
1

スキルアップ/キャリアアップ(JOB@IT)