例えばテキスト内に
http://www.amazon.co.jp/exec/obidos/ASIN/4062129302/qid=11468335...
と記載されているとき、これをWくりっくすると
http://www.amazon.co.jp/exec/obidos/ASIN/4062129302/qid%3D11468335.../503-2147669-8052747
のページが表示されます。
当然ですが、ブラウザのアドレス枠に前者のURLを入れても同じ振る舞いをします。
この「...」を用いたURLに対するHTTPの仕掛けはどうなっているのですか?
回答に添えて、その仕様が書かれているドキュメント(英文も可)を紹介していただけたら
うれしいです。
http://www.tohoho-web.com/wwwcgi3.htm
その URL の途中(多分 obidos)がおそらく CGI の指定になっていて、その CGI プログラムが環境変数 PATH_INFO を通してその後の部分を受け取っているのではないかと思います。なので ... というのは CGI プログラムに渡される文字列で、解釈の方法についてはその CGI プログラムに従います(つまり一般的な方法ではなくそのCGI固有の指定方法ということです)。
尚、CGIプログラムはよく cgi-bin ディレクトリ以下にあったり .cgi のサフィックス(MS-DOSやWindowsでいうところの拡張子)が付いていますが、それはウェブサーバの設定によって変更が可能です。なのであたかもディレクトリ名のように思えるような名前にすることは可能です。
http://www.studyinghttp.net/header
httpヘッダのLocationフィールドです。
実際ヘッダをみてみると
Location: http://www.amazon.co.jp/exec/obidos/ASIN/4062129302/qid%3D114683...
のような感じの部分がありますね。
情報と興味あるURLありがとうございました。
途中の.は普通の英数字と同じ振る舞いでしょう。
URIのRFC1738では"."は単にunsafeである規定されているだけ、使用に制限はないようです。(あるいは各スキームにまかされている)
そして、httpのスキームでは、(RFC2616の3.2.2あたり)特になにもかかれていないので、"."と普通の英数字は同じ振る舞いでしょう。
http://www.ietf.org/rfc/rfc1738.txt
http://www.ietf.org/rfc/rfc2616.txt
ですんで、httpにはなんの仕掛けもなく、単純にamazonがそうなるように決めただけではないでしょうか。amazonが"..."をなににしているかはわかりません。単なるセッションIDとの区切りと見ますけど。
ありがとうございました。
CGI固有の指定方法ですか。
ありがとうございました。