URL中"#"、"?"、"&"、"="特殊意義符號的用途及那些坑


最近在排查一個線上問題,瀏覽器請求的URL中包含一個參數,並且參數的值是"#"號開頭的,

如下:www.aaa.com?name1=bbb&name2=#erqwers

發現在沒有登錄的情況下,正常會跳轉到登錄SSO,然后SSO登錄后refer url和return url變成www.aaa.com?name1=bbb&name2=這樣了,后面的value值沒了。

於是查了一下相關文檔:

"#"號相關:

   1、"#"號代表網頁中的一個位置,其右面的字符,就是該位置的標識符,瀏覽器讀取URL后,會自動將位置滾動至可視區域,常見於錨點或使用ID屬性。

   2、#是用來指導瀏覽器動作的,對服務器端完全無用。所以,HTTP請求中不包括#。

   3、在第一個#后面出現的任何字符,都會被瀏覽器解讀為位置標識符。這意味着,這些字符都不會被發送到服務器端。

   4、只改變#后的部分時,瀏覽器只會滾動到相應位置,不會重新加載網頁。

   5、改變#后,瀏覽器的訪問歷史中會增加一個記錄

   6、網絡爬蟲默認忽視#的部分,特殊情況除外,比如使用"#!"

 

"?"號相關:

   1、前端的URL相同,但?號后內容不同,瀏覽器會認為是一個新的地址

 

"&"號相關:

   1、URL中不同參數間的分隔符

 

"="號相關:

   1、URL中不同參數的KeyValue的分隔符

備注:

    1、URL中的value值,要避開使用特殊符號,如果要使用,建議轉義

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM