凪瀬 Blog
Programming SHOT BAR

目次

Blog 利用状況
  • 投稿数 - 260
  • 記事 - 0
  • コメント - 46946
  • トラックバック - 192
ニュース
広告
  • Java開発者募集中
  • 経歴不問
  • 腕に自信のある方
  • 富山市内
  • (株)凪瀬アーキテクツ
アクセサリ
  • あわせて読みたい
凪瀬悠輝(なぎせ ゆうき)
  • Java技術者
  • お茶好き。カクテル好き。
  • 所属は(株)凪瀬アーキテクツ
  • Twitter:@nagise

書庫

日記カテゴリ

 

なんとなくWebシステム強化週間となっているProgramming SHOT BARです。
今回はURLについてのお話です。

静的なWebページを作ったことのある方だと、HTMLファイルを作ってFTPで転送して―という 作業過程をされたことがあるのではないでしょうか。
また、ローカルフォルダ上にHTMLを書いた場合も、リンク先を相対的に

<a href="/hoge/piyo.html">...</a>

などとすると同一階層にあるhogeフォルダの中のpiyo.htmlに遷移します。
これらの経験から、URLの表現する階層構造はフォルダの階層構造と密接な関係にあるように 思い込んでいる人が多くいるように思います。

実際のところ、Webアプリケーションにしてみれば、URLなんてただのパラメータの一種にすぎません。

HTTPを紐解く

こういうのはASP.NETであったりJavaEEであったり、つまることろWebシステムを作るための フレームワークの階層で考えてもいまひとつわかりません。もっと根柢の部分、HTTPのプロトコルを 紐解いてみるのが一番です。

たとえばこのblogのURL、http://blogs.wankuma.com/nagise/に対するリクエストを見ると

GET /nagise/ HTTP/1.1
Host: blogs.wankuma.com

といったHTTPヘッダが送られるわけです。このHTTPヘッダのGETの部分の文字列、 つまり、URLのドメイン以降の部分を見て、何かしらの結果を返すのがWebのシステムなわけです。

ですから、送られた文字列に対して処理するだけなのでフォルダとかは関係ありません。 単にフレームワークがURLの文字列と同じフォルダ構成でファイルが準備してあれば 自動でそれを送り返すようにプログラムされているだけにすぎません。

Amazonの例

AmazonのURLなどは、このようなパラメータとして使われており、フォルダ構成と全然関係ないことがわかると思います。

たとえば、Java言語仕様 第3版の場合のURLは以下のようになっています。

http://www.amazon.co.jp
/Java%E8%A8%80%E8%AA%9E%E4%BB%95%E6%A7%98-%E7%AC%AC3%E7%89%88-Java-%E3%82%B8%E3%82%A7%E3%83%BC%E3%83%A0%E3%82%BA-%E3%82%B4%E3%82%B9%E3%83%AA%E3%83%B3
/dp/4894717158
/ref=pd_sim_b_2/250-0299683-3798604?ie=UTF8&qid=1191647297&sr=1-27

長いので改行を入れています。最初のJava~というのはタイトルで、この部分はシステム的には利用されていない様子。
欧米文化圏ならURL上に書名が見えることになるので都合がよいのでしょう。あとは検索エンジンのSEO対策と思われます。

次の/dpの部分が次の区間がISDN番号だということを示すマーカーになっています。 ref~などの部分は参照元ページなどをあらわしているようです。その外セッションを管理するためのワンタイムトークンとかそんな感じっぽい。

というわけで、ざっくりカットして
http://www.amazon.co.jp/dp/4894717158
というURLでアクセスできます。こういった動きをみていると、URLって単なるパラメータなんだ、ということが実感できるのではないでしょうか。

Webアプリケーションを作る際はURLをどのように扱うのか、という部分から設計する必要があるのですね。

投稿日時 : 2007年10月6日 14:33
コメント
  • # re: プログラムは圧縮だ
    凪瀬 Blog
    Posted @ 2007/10/22 15:55
    re: プログラムは圧縮だ
  • # re: WebアプリケーションにとってURLはパラメータに過ぎない
    シャノン
    Posted @ 2007/10/23 12:01
    > /hoge/piyo.html
    > などとすると同一階層にあるhogeフォルダの中のpiyo.htmlに遷移します。

    先生、それはルートからの絶対パスだと思います。
  • # re: WebアプリケーションにとってURLはパラメータに過ぎない
    凪瀬
    Posted @ 2007/10/24 20:28
    あー。
    ./
    じゃないといけないんでしたっけ。
  • # re: AmazonのURL短縮
    ma2のblog - わんくま版(仮)
    Posted @ 2008/05/19 11:13
    re: AmazonのURL短縮
  • # LWGdtFfCqZPXeVEuTv
    JimmiXzSq
    Posted @ 2017/05/22 2:35
    5GkLwi http://www.LnAJ7K8QSpkiStk3sLL0hQP6MO2wQ8gO.com
タイトル
名前
Url
コメント