在URL中的片段標識符中,空間應編碼爲%20
(如路徑中)還是編碼爲+
(如查詢字符串中)?如何在URL中的片段標識符中編碼空間
3
A
回答
3
對於HTML頁面,它們應該進行百分比編碼。
根據RFC 2396,RFC 3986和RFC 7320,分片標識符的格式取決於媒體類型。從RFC 2396和RFC 3986:
一個片段標識符的語義由該組 表示了可能由在 主資源的檢索動作定義。因此,片段的格式和分辨率取決於潛在檢索到的 表示的媒體類型[RFC2046],即使僅在取消引用了 URI時才執行此類檢索,也是 。
從RFC 7320:
媒體類型定義(按照[RFC6838])應該指定片段 標識符語法(ES)與它們一起使用;其他規範必須不定義片段標識符內的結構,除非它們明確定義了一個供媒體類型定義重用的結構。
HTML5規範only specifies percent encoding:
該文件的指示的部分是一個片段標識符,如果有的話,識別。片段標識符在將其映射到特定DOM節點方面的語義由定義文檔使用的MIME類型的規範(例如,處理XML MIME類型的片段標識符是RFC7303的職責)定義。
對於HTML文檔(和HTML MIME類型),必須遵循以下處理模型來確定文檔的指示部分是什麼。
將URL解析器算法應用於URL,並讓fragid爲結果解析URL的片段組件。
如果fragid是空字符串,那麼文檔的指示部分是文檔的頂部;在這裏停止算法。
讓fragid字節是百分比解碼fragid的結果。
解碼fragid是將UTF-8解碼器算法應用於fragid字節的結果。如果UTF-8解碼器發出解碼器錯誤,則中止解碼器,而是跳轉到標記爲「未解碼的fragid」的步驟。
- [...]
(重點煤礦)
對於XML文檔,RFC 7303指定URI保留字符XPointer Framework這也requires percent encoding的語法。
其他媒體類型可能有不同的規則。
相關問題
- 1. 如何在Chrome擴展中匹配URL和片段標識符?
- 2. 如何在JSP中檢索URL片段標識符
- 3. 如何檢測Url映射中的片段標識符?
- 4. 如何從URL中刪除片段標識符?
- 5. 如何監控URL中的更改(片段標識符 - URL的錨點部分)
- 6. URL中片段標識符的有效字符列表?
- 7. PHP中處理URL中的片段標識符
- 8. 如何防止片段標識符在URL
- 9. 如何從R中的包含片段標識符的url中獲取數據?
- 10. 如何在Thymeleaf中創建一個動態的URL片段標識符?
- 11. Django。如何重定向到帶有片段標識符的url
- 12. 如何導航到帶有片段標識符的url?
- 13. 如何片段標識符取決於
- 14. 從片段標識符中刪除#
- 15. Zend_Navigation_Page_Mvc和片段標識符
- 16. 如何在ajax url中編碼'+'符號
- 17. 如何在Android類中爲片段生成標識或標籤
- 18. HTML文檔的URL「片段標識符」語義
- 19. 任何方式來調用Python中的片段標識符'#'
- 20. PHP編碼URL的空白空間
- 21. EBNF在元標識符中的空白
- 22. 顯示一個div僅當URL沒有片段標識符
- 23. URL片段標識符 - 簡化狀態處理(javascript)
- 24. 是否將URL片段標識符發送到服務器?
- 25. 如何從HttpServletRequest獲取URL片段標識
- 26. 如何在郵件上讀寫/保留片段標識符
- 27. 處理GWT歷史片段標識符
- 28. Symfony2 - 路由到片段標識符
- 29. PhantomJS滾動捕獲片段標識符
- 30. 四郎登錄與片段標識符