2013年10月21日月曜日

Webアプリケーション: 第3回

実施日時: 2013年10月21日(月) 3限
講義内容: URI

Webを構成する主要技術の1つ目、URI(Uniform Resource Identifier)についてお話ししました。以下、今日の講義の概要を箇条書きでまとめてみます。

  • URI(Uniform Resource Identifier)
    • リソースの統一的な識別子=リソースの「名前」
    • 現在のWeb技術の観点からは、URIは「自動的に決まるもの」ではなく「設計するもの」←これは重要
  • URIの例
    • http://example.jp/2013/10/21.html
    • ftp://ftp.example.jp/sample.txt
    • file:c:/sample.txt
    • tel:09099999999
    • これらの例から分かる通り、URIはWeb(HTTP通信)だけでなく様々な通信プロトコルにも使えるし、ローカルコンピュータ上のファイル、他のアプリケーションの起動指定などにも使われている
  • URI = URL + URN
    • URL(Uniform Resource Locator): 上に挙げた例はすべてURL
    • URN(Uniform Resource Name):ホスト名やプロトコルに依存しないリソースの「名前」
      • 例: urn:isbn:9784774142043 … ISBN番号9784774142043の書籍を表すURN
      • ほとんど使われていないため、事実上、URI ≒ URL
  • URIの構成
    • http://example.jp/2013/10/21.html
      • http … URIスキーム(リソースを取得するためのプロトコルなど)
      • example.jp … ホスト名(リソースを取得するために通信するべき相手)
      • /2013/10/21.html … パス(通信相手上でのリソースの識別子)
    • 複雑な例
      • http://kunishi:pass@example.jp:8000/search?q=data&debug=true#n10
        • kunishi … ユーザ名
        • pass … パスワード
        • 8000 … TCP/IPのポート番号
        • q=data&debug=true … クエリパラメータ(GETパラメータ)。この例では、q(値data)とdebug(値true)という2つのパラメータを指定している。
        • #n10 … URIフラグメント(リソース中のある部分を指す)
  • URIの役割
    • Web上(インターネット上)でリソースを一意に識別するための識別子(名前)
    • リソースを取得するための手順の記述
      • 手順がコンピュータ処理可能で記述されているため、URIでリソースを指定すると、自動的にリソースを取得することが可能になる
  • いいURIとは
    • 変更されないURI(変更されるとリンク切れが発生する=ユーザがリソースにたどり着けなくなる)
    • Webサイトを公開したり、Webアプリケーションを実装する場合、なるべく将来にわたってURIを変更する必要がないように、URIを設計する必要がある
    • URIが変更される要因
      • パスの構成の変更(静的Webサイトでのディレクトリ構成の変更など)
      • Webアプリケーションのプログラムの変更
      • Webアプリケーションのプログラミング言語の変更
      • Webサーバの設定変更
      • Webサーバのリプレース
      • etc.
    • どのようにすれば変更されにくくなるか
      • 最初から熟慮してURIを設計(適切な階層構造にする)
      • 実装に依存しないURI(プログラミング言語を表す拡張子をつけない、cgi-binなど特定の実装方法に依存する文字列をURIに含めない、など)
      • Webサーバに用いるコンピュータ名とURIのホスト名とを独立させる(独自ドメインなど)
      • どうしても変更しなければならない場合は→HTTPリダイレクト

0 件のコメント: