為什麼伺服器端無法存取URL的Hash部分?
在網路開發中,URL由幾個部分組成,包括協定、網域名稱、路徑和雜湊。哈希值由“#”符號表示,用於標識頁面的特定部分,例如標題或部分。
問題:
但是,據觀察,URL 的雜湊部分在伺服器端不可用。例如,如果使用者在瀏覽器網址列中輸入“http://www.foo.com/page.php?parameter=kickme#MOREURL”,伺服器不會收到“#MOREURL”部分。
答案:
是的,如果不使用外部工具,伺服器無法存取 URL 的雜湊部分。這是因為雜湊元件旨在僅由瀏覽器客戶端處理。伺服器永遠不會將其作為 HTTP 請求的一部分接收。
說明:
根據 HTML 標準,雜湊片段不會傳送到伺服器。瀏覽器解釋它並可以以各種方式處理它,例如滾動到頁面上的特定位置。這種行為在不同的瀏覽器和伺服器端技術(例如 PHP)中是一致的。
維基百科提供了進一步的說明:
「片段標識符的功能與URI 的其餘部分不同:即,它的處理是獨佔客戶端,沒有伺服器參與當代理(例如Web 瀏覽器)從Web 伺服器要求資源時,代理程式會將URI 傳送到伺服器,但不會傳送片段。
以上是為什麼伺服器無法存取 URL 的哈希部分?的詳細內容。更多資訊請關注PHP中文網其他相關文章!