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. MOSADeN Online 第19回の原稿アップしました

  2. MOSADeN ONLINE 第24回の記事を入稿しました

  3. Mac OS Xで環境変数を設定する

  4. 長く運用するサーバーは仮想マシンにしておこう

  5. Cornerstone、これだけ知っていればとりあえず始められる

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

最近の著書

  1. 基礎から学ぶ SwiftUI

最近の記事

  1. 2020.10.21

    GitLabへの移行
  2. 基礎から学ぶ SwiftUI
  3. 基礎から学ぶ SwiftUI