[10] [[HTTP]] では [[URL]] の[[比較]]の方法が規定されています。 基本的には[[オクテット列]]としての比較になりますが、 [[大文字]]と[[小文字]]の同一視など、多少の正規化が行われます。 [11] [[HTTP]] 仕様上どこで[[比較]]が行われるのかは明確には記述されていませんが、 [[キャッシュ]]されている[[資源]]の [[URL]] との照合に当たって同一性の判断に使うのでしょう。 * 仕様書 - [7] [[RFC 2616]] (旧 [[RFC 2068]]) -- [8] [CSECTION@en[3.2.3 URI Comparison]] (旧 ) [9] >>8 の比較対照・日本語訳が [[HTTPにおけるURL]] の項にあります。 * HTTP での比較 [4] [[RFC2068]] 3.2.3 で規定されています。 - [[scheme]] 名は大文字・小文字を区別してはならない。 - [[host]] は大文字・小文字を区別してはならない。 - [[port]] が空の時は既定の番号であるものとする。 - 空の [[abs_path]] は [CODE(URI)[/]] と等しいとする。 - 集合 [[reserved]] 及び [[unsafe]] に含まれるものを除いて、[[文字]]はその [[URI符号化]]したものと等しいとする。 例: - [SAMP(URI)[http://abc.com:80/~smith/home.html]] - [SAMP(URI)[http://ABC.com/%7Esmith/home.html]] - [SAMP(URI)[http://ABC.com:/%7esmith/home.html]] この3つはいずれも同等。 - [5] 以上例外を除いて、オクテット毎に全体を比較する'''べきです'''。 - [6] [CODE(WikiPage)[[[HTTP//URI]]] も参照。]] * メモ [2] HTTP RFCs の規定によると [SAMP(URI)[http://foo.example:80/]] と [SAMP(URI)[http://foo.example:00080/]] は等しくありませんね。 実際のブラウザとかの実装は等しいとみなすみたいですけど。 (でもそうじゃない実装ももしかしたらあるかもしれない。)