- 締切済み
リンクタグのオプション
HTMLのリンクタグで以下のような記述を見ました。 <a href="http://www.hogehogetest.jp&url=http://www.hogehogetest.jp/test1.html"> 記載されているURLは以下の2種 http://www.hogehogetest.jp http://www.hogehogetest.jp/test1.html 動作としては http://www.hogehogetest.jp/test1.html に飛ばされます。 このような記述のリファレンスが見つけられず、どのような目的で記述されているのかも わかりませんでした。 ご存知の方ご教授いただけないでしょうか? よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- ORUKA1951
- ベストアンサー率45% (5062/11036)
肝心な疑問から、少し外れていたようなので補足します。 >HTMLのオプションとして汎用性のあるものではなく、 とても汎用性があり、QUERY_STRINGより多く使われています。 例えば http://www.yomiuri.co.jp/atmoney/news/20130514-OYT1T00311.htm?from=main5 という読売新聞の記事 /news/20130514-OYT1T00311.htm はPATH_INFOでサーバーのどこを探しても、そんなディレクトリもファイルも存在しないでしょう。 atmoneyがプログラムで、それ以降は動的に作られている。あるいはatmoneyもPATH_INFOかも・・ >ある特定のサーバーで設定された、特別な動作(カウントしてリダイレクトなど)を するためのPQUERY_STRINGとして使われているのではないか? 業務用の大規模なサイトは、基本的にドメイン以降はすべて動的に作成されていることが多いでしょう。データベースにデータさえ上げておけば、主文以外はすべて自動的に作ってくれる。 考えてみれば、新聞社のページなんて大部分は同じで、主文しか違わない。効率から考えても。 たまたま、あなたが見つけられたURLは、あからさまに判るような書き方がされているだけ。悪意があるときは・・次のようにします。 HTMLメール/テキストメールに画像(URL)を貼り付けて、その画像が読み込まれることで、受信者のメールが実在することや、興味の対象を知ることが出来るのですよ。 http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi/byrdland/1305141200.jpg とかね。だからメールではリモート画像を表示させてはならないのです。(上記はHTMLが出力しますが画像を表示するなんてわけもない事です。)
- ORUKA1951
- ベストアンサー率45% (5062/11036)
QUERY_STRINGは、googleなどで散々お目にかかっていると思います。 PATH_INFOは、実はWikiでしっかり使われています。(^^) そんなに難しい話ではなく、PATH_INFOは「パス情報」と言う意味ですよ。 サーバーのドメイン以降?があれば、それまではすべてPATH_INFOで、ファイル(とは限りません)までの情報です。Directryとか、follder,file情報とは言いませんね。 サーバーは、/abc/efg/hij を提供しろと要求を受けたら--HTTP要求ヘッダで-- /abc/efg/のhijを探します。 1) それがファイルならそれを提供します。 それが実行ファイルならプログラムに渡して手を引きます。 2) もしディレクトリなら、それを開いて ・ DIRECTORY_INDEXでファイル(例えばindex.html)が指定されていればそれを開きます。 それが実行ファイルならプログラムに渡して手を引きます。 ・ 指定がなく許可されていればDirectoryの内容を一覧にして表示します。 最近は許可しないことが多い 3) いずれもなければ、/hijを環境変数PATH_INFOに格納して、 /efgに対して、同じ動作を繰り返します。 4) これを最上部までさかのぼって、最終的にエラーを返すか、DIRECTORY INDEXで指定してあるファイルを表示します。 ★実は、QUERY_STRINGも環境変数に格納されていますから、実行ファイルで開く場合、そのいずれの情報も利用できます。 先に紹介した ⇒Enviroment Variable and FORM,COOKIE( http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi ) の後に/で区切って好きな文字列を入れてみてください。 http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi/byrdland/byrdland/test とか、そしてそのページのPATH_INFOの項目を見てください。きちんと伝わっているはずです。
補足
誰かこの人の暴走をとめて
- ORUKA1951
- ベストアンサー率45% (5062/11036)
?があろうとなかろうと同じです。 http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi/byrdland.html&http://hpcgi1.nifty.com そのあとredirectさせればよいだけですね。 URLには、&は使用できます。 ⇒( http://jbpe.tripod.com/rfcj/rfc2396.ej.sjis.txt ) 要は、何に使用しているかは判断のしようがないですが、そのURLは何らかの目的を持って作成されたもので、PATH_INFOとして処理されているのでしょう。
補足
せっかくお教えいただきましたが、私に内容を理解する技量がありませんでした。 誤ってるかもしれませんが、以下のように理解しました。 私が質問したリンクタグの記述は、HTMLのオプションとして汎用性のあるものではなく、 ある特定のサーバーで設定された、特別な動作(カウントしてリダイレクトなど)を するためのPQUERY_STRINGとして使われているのではないか? PATH_INFOは通常、URL***?abc=def・・と言うふうにURLの次の?以降に続くQUERY_STRING で表現されるが、?がなくても同じ目的は果たせる?(ここが疑問が深まり理解できない部分です)
- ORUKA1951
- ベストアンサー率45% (5062/11036)
見つからないわけないですが・・ サーバーの指定に関するリファレンスでしたら AddType application/x-httpd-cgi *.html ; とか、 URLの?以降は、QUERY_STRINGです。 もちろんPATH_INFOで渡すことも出来るはずです。 >動作としては >http://www.hogehogetest.jp/test1.html >に飛ばされます。 ではありません。 たぶん、http://www.hogehogetest.jp/test1.htmlの/test1.htmlはPATH_INFOで実在はしてなくて、動作しているのはhttp://www.hogehogetest.jp/index.cgiなどではないかと。 基本的にURLのドメイン名以降は、実在するかしないかとは、全く関係ありません。 [例] http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi/byrdland/byrdland.html?name=byrdland
補足
>URLの?以降は、QUERY_STRINGです。 この表記に?はありません
- t_ohta
- ベストアンサー率38% (5238/13705)
a タグの仕様の問題では無く、リンク先の http://www.hogehogetest.jp というサイトのサーバ側の動作の問題です。 目的はサイトへの流入経路を調べたりする事だと思われます。
補足
ありがとうございます なんだか例に書いたリンクタグが、勝手にぶった切られて全文表示されてないのです。 それゆえ、2番目の回答者のような偉そうなトンチンカンが出てきて困ります。
補足
あなたさまはいろんな事例でご説明いただきますが、あなたさまのお教えは私には理解する力がないようです。申し訳ございません。ここまでにしてください。 ただ私に対して誤解があるようなので私のことについて追記します。 1.QUERY_STRINGを使った値の受け渡しで動作するページは理解しています。 自分でASP(Active Server page)、PHPで作成をしてましたので知識だけでなく身について理解してます。 2.実在するページがない動的に作成されるページも理解してます。 これもASP・PHPで自分で作成していました。 なので動的ページについての力説は無用です。 私の質問にはなんの関係もありません。 3.画像の読み込みで表示回数をカウントする方法は知っておりますが、これも私の疑問にはなんの関係もありません。 4.ただ、私は現役から数年経っているいるので、少々知識が古く、質問したようなLINKの書き方に見覚えがなかったのでアドバイスを求めました。(もちろん自分で調べました) 5.質問の情報が不足してましたが、質問ページのリンク先は実在ページです。 拡張子がPHPやcgi・PHPでなくても(html・htm)でも、サーバーの設定で動的ページを作成できるのは 知っていますが、そこまで動的ページであることを隠す必要がないサイトです。 確認できている拡張子から静的ページであると判断しています。 ------------------------------ この質問でお聞きしたかったのは 質問に記載したリンクタグの作成者(仮にA)とリンク先のサービス提供者(仮にB)はまったく 異なる関係のない個人(A)と会社(B)です 要はサービス提供者(B)がプログラムを準備して実行するために書かれたリンクのように思えなかった のです。 なのでAが作成したHTMLは(HTMLの文法として)(B)がなんらかの(プログラム的な)協力をしなく ても、ある目的を動作させることができるものではないか?と思い、アドバイスを求めました。 ということです。