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. Mac OS XとWindows間でのハードディスク共有

  2. MOSADeN ONLINE 第17回の原稿アップしました

  3. JIRAの要約ページのグラフのこと

  4. GUIクライアントを使うとコミット漏れが防げる気がする

  5. 紹介 – 「仕組み」進化論

  6. Surface RTを入手しました

最近の著書

最近の記事