🙆‍♀️

学習備忘録〜「Webを支える技術」第4章〜

に公開

はじめに

この備忘録は、新卒2年目の初学者バックエンドエンジニアの学習記録のためにつけているものです。
解釈違いや、誤情報がある可能性があります。見つけた際にはご指摘をお願いします。
新規プロジェクトにアサインしてもらうことも増えてきて、基礎知識から定着させていきたいと思い学習備忘録第二弾が始まります。

第4章〜URIの仕様〜

URIの重要性

  • Uniform Resource Identifierの略
  • 日本語は「統一リソース識別子」
  • URIを使うことでWeb上に存在するすべてのリソースに簡単にアクセスできる

URIの構文

シンプルなURIの例

http://blog.example.jp/entries/1
  • URIスキーム:http
    • URIが利用するプロトコルを示すのが一般的
  • ホスト名:blog.example.jp
    • DNSで名前が解決できるドメイン名かIPアドレスで、インターネット上で必ず一意になる
  • パス:/entries/1
    • ホストの中でリソースを一意に指し示す

複雑なURL

http://yohei:pass@blog.example.jp:8000/search?q=test&debug=true#n10
  • URIスキーム:http
  • ユーザ情報:yohei:pass
    • ユーザ名とパスワード
  • ホスト名:blog.example.jp
  • ポート番号:8000
  • パス:/search
  • クエリパラメータ:q=test&debug=true
  • URIフラグメント:#n10

URIと文字

URIで使用できる文字

  • アルファベット:A-Za-z
  • 数字:0-9
  • 記号:-.~:@!$&'()
  • 日本語は直接入れられないのでエンコーディングして入れる

URIの長さ制限

  • 長さ制限は存在しない
  • Interner Explorerはバージョンを問わず2,038バイトまでという制限があり事実上この長さに合わせて実装することが多い

URIの実装で気をつけること

  • 相対URIの解決と%エンコーディング
    • 相対URI
      • クライアントd相対URIを解決するには面倒な処理が必要になるので、WebサービスやWebAPIを実装する際にはなるべく絶対URIを使う方が親切
    • %エンコーディング
      • 文字エンコーディングの混乱を避けるために、%エンコーディングの文字エンコーディングとしてなるべくUTF-8を用いるのが望ましい

Discussion