NSURLクラスのフラグメントの解釈

NSURLクラスの「fragment」メソッドは、URLのフラグメントを返してくれます。ただ、その動作は「#」以降をすべてフラグメントとして解釈するとなっているようです。
例えば、「http://www.rk-k.com/test.html#name=10?from=browser」というURLがあった場合、「fragment」メソッドと「query」メソッドの戻り値は次のようになります。
fragment : name=10?from=browser
query : nil
RFC 1808では、URLを次のように定義しています。
<scheme>://<net_loc>/<path>;<params>?<query>#<fragment>
つまり、定義的には、フラグメントは最後にあるべきで、クエリーはフラグメントよりも前にあるべきということです。そのため、「http://www.rk-k.com/test.html?from=browser#name=10」というURLでは、次のように値が戻ります。
fragment : name=10
query : from=browser
プログラム中でフラグメントを解釈するとき、クエリーが含まれているかもしれないことを注意しなければいけないようです。

関連記事

  1. Wi-Fi親機を入れ替え

  2. NSTrackingAreaクラス

  3. Mac OS X 10.5.8上でのRKDetailDesignのプリ…

  4. Mac OS X ServerでのSubversionのセットアップ

  5. 今日は雪です

  6. StoryboardとXibの使い分け

最近の著書

最近の記事