2013-12-19 31 views

回答

3

對於HTML頁面,它們應該進行百分比編碼。

根據RFC 2396,RFC 3986RFC 7320,分片標識符的格式取決於媒體類型。從RFC 2396和RFC 3986:

一個片段標識符的語義由該組 表示了可能由在 主資源的檢索動作定義。因此,片段的格式和分辨率取決於潛在檢索到的 表示的媒體類型[RFC2046],即使僅在取消引用了 URI時才執行此類檢索,也是 。

從RFC 7320:

媒體類型定義(按照[RFC6838])應該指定片段 標識符語法(ES)與它們一起使用;其他規範必須不定義片段標識符內的結構,除非它們明確定義了一個供媒體類型定義重用的結構。

HTML5規範only specifies percent encoding

該文件的指示的部分是一個片段標識符,如果有的話,識別。片段標識符在將其映射到特定DOM節點方面的語義由定義文檔使用的MIME類型的規範(例如,處理XML MIME類型的片段標識符是RFC7303的職責)定義。

對於HTML文檔(和HTML MIME類型),必須遵循以下處理模型來確定文檔的指示部分是什麼。

  1. 將URL解析器算法應用於URL,並讓fragid爲結果解析URL的片段組件。

  2. 如果fragid是空字符串,那麼文檔的指示部分是文檔的頂部;在這裏停止算法。

  3. 讓fragid字節是百分比解碼fragid的結果。

  4. 解碼fragid是將UTF-8解碼器算法應用於fragid字節的結果。如果UTF-8解碼器發出解碼器錯誤,則中止解碼器,而是跳轉到標記爲「未解碼的fragid」的步驟。

  5. [...]

(重點煤礦)

對於XML文檔,RFC 7303指定URI保留字符XPointer Framework這也requires percent encoding的語法。

其他媒體類型可能有不同的規則。