メインコンテンツまでスキップ

6. 正規化と比較 (Normalization and Comparison)

6.1. 等価性 (Equivalence)​

URIの等価性の定義は、アプリケーションの要件に依存します。

6.2. 比較ラダー (Comparison Ladder)​

6.2.1. 単純な文字列比較 (Simple String Comparison)​

最速ですが、最も不正確な比較方法です。

6.2.2. 構文ベースの正規化 (Syntax-Based Normalization)​

次のものを含みます:

  • 大文字小文字の正規化(スキームとホスト)
  • パーセントエンコーディングの正規化
  • パスセグメントの正規化

例:

HTTP://Example.COM/path  →  http://example.com/path
http://example.com/%7Euser → http://example.com/~user
http://example.com/a/./b/../c → http://example.com/a/c

6.2.3. スキームベースの正規化 (Scheme-Based Normalization)​

デフォルトポートの削除など。

例:

http://example.com:80/  →  http://example.com/
https://example.com:443/ → https://example.com/

6.2.4. プロトコルベースの正規化 (Protocol-Based Normalization)​

リソースへのアクセスに関するプロトコル固有の知識が必要です。


次の章: 7. セキュリティに関する考慮事項 (Security Considerations) - URIセキュリティの問題