Url中有些字符會引起歧義 : =、+、&、?、#等。
RFC3986文檔規定,Url中只允許包含英文字母(a-zA-Z)、數字(0-9)、-_.~4個特殊字符以及所有保留字符( ! * ' ( ) ; : @ & = + $ , / ? # [ ] )。
Url可以划分成若干個組件,協議、主機、路徑等。
當保留字符以參數的形式出現在url中就會引起歧義,導致划分出錯,從而導致頁面出現bug
解決方案:
用特殊字符的編碼代替字符:
| 字符 | 在url中的含義 | 編碼 |
| + | 表示空格 | %2B |
| / | 分隔目錄和子目錄 | %2F |
| 空格 | %20 | |
| ? | 分隔實際的 URL 和參數 | %3F |
| % | 指定特殊字符 | %25 |
| # | 表示書簽 | %23 |
| & | 指定的參數間的分隔符 | %26 |
| = | 用於指定參數的值 | %3D |
舉個栗子:

