devdevdevReports

dev系開発開発者の開発日記

【WEBを支える技術】URI仕様編

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

  • 作者:山本 陽平
  • 発売日: 2010/04/08
  • メディア: 単行本(ソフトカバー)

URIとはなにか

1.URIの重要性

  • URIとは
    • リソースを統一的に識別するID
    • WEB上に存在するすべてのリソースにアクセスできる

2.URIの構文

  • 簡単なURI(静的なリソースへのアクセス)
    例)https://gentlemans.hatenablog.com/entry/2020/05/18/083534

    - URIスキーム : https
    - ホスト名 : gentlemans.hatenablog.com
    - パス : /entry/2020/05/18/083534
    

    f:id:gentlemans:20200603083112p:plain
    静的なリソースへのアクセス

  • 複雑なURI(動的なリソースへのアクセス)
    例)https://www.hatena.ne.jp/o/search/top?q=WEBを支える技術#gsc.tab=0&gsc.q=WEBを支える技術&gsc.page=1

    - URIスキーム : https
    - ホスト名 : www.hatena.ne.jp
    - パス : /o/search/top
    - クエリパラメータ : q=WEBを支える技術
    - URIフラグメント : #gsc.tab=0&gsc.q=WEBを支える技術&gsc.page=1
    
    • 【補足】
      簡単なURIと比べて、クエリパラメータとURIフラグメントが増えています。
      簡単なURIではWEBサイト上に固定されたページがあるのに対し、複雑なURIでは固定されたページがあるわけではなく、 検索結果を動的に作成し、リソースへアクセスしているように見せています。
      つまり、クエリパラメータとURIフラグメントは動的にリソースを作成するためのパラメータとなっているということです。

f:id:gentlemans:20200603083649p:plain
動的なリソースへのアクセス

3.絶対URIと相対URI

絶対URI

ルートディレクトリからリソースまでをディレクトリを「/」で区切って記述するURI

相対URI

絶対パスの冗長性を防ぐために起点を決めて、記述するURI

ベースURI

相対URIで指定する際の起点となるURI

指定方法

  • リソースのURIをベースURIとする方法

    • メリット
      直感的にわかりやすい
    • デメリット
      ベースURIをクライアント側で保存しておかなければならない。
      WEBサイトのhtmlファイルがどこのURIかは通常意識しないため、相対URIを使用できないケースが多い
  • ベースURIを明示的に指定する方法
    ↑の問題解決としてhtml、xmlに明示的にベースURIを指定する

    • html
      headタグにbaseタグで定義する
    • xml
      要素ごとにベースURIを定義できる

4.URIと文字

5.WEBサービス、WEB APIURI

【WEBを支える技術】を読む理由 - devdevdevReports

【WEBを支える技術】REST編 - devdevdevReports

【WEBを支える技術】URI仕様編 - devdevdevReports

【WEBを支える技術】URI設計編~良いURI設計とは~ - devdevdevReports

【WEBを支える技術】HTTP基礎編~シンプルさが標準化~ - devdevdevReports

【WEBを支える技術】HTTPメソッド編~名は体を表す~ - devdevdevReports

【WEBを支える技術】HTTPステータス編~名は体を表す~ - devdevdevReports