URL 的雜湊片段由「#」字元表示,旨在促進僅在客戶端內進行交互瀏覽器。與其他 URL 元件不同,伺服器始終不知道它的存在。為了更深入地研究這個主題,讓我們考慮一個場景:
想像一下導航到具有以下URL 的網站:
http://www.foo.com/page.php?parameter=kickme#MOREURL
到達伺服器後,您可能會注意到缺少“#MOREURL”片段。這是因為哈希部分永遠不會開始到伺服器的旅程。它由瀏覽器嚴格按照 HTML 標準中規定的規範進行處理。
伺服器排除雜湊處理背後的理由很簡單:主要職責在於提供所請求的資源。另一方面,哈希片段控制客戶端行為,例如捲動到特定頁面元素。這種區別確保伺服器的重點仍然是交付內容,而瀏覽器負責解釋哈希片段的指令。
解決是否可以中繼的問題如果不借助 jQuery AJAX 將哈希片段傳輸到伺服器,答案是響亮的「不」。哈希片段在瀏覽器網域內的獨佔性意味著它無法透過 PHP 等伺服器端技術存取。
總而言之,URL 的雜湊部分嚴格保留在瀏覽器域內領域。伺服器不知道它的存在,從而將它們排除在其處理能力之外。了解這種基本的職責分離對於有效利用哈希片段的優勢至關重要。
以上是為什麼伺服器看不到 URL 哈希片段?的詳細內容。更多資訊請關注PHP中文網其他相關文章!