现象引入
浏览器发送请求时携带中文或某些符号时,会出现某些字符被编码的情况,如:想要发送如下请求:
但,浏览器实际发送该请求时,发送的是: www.baidu.com/?wd=%3Cscri…
现象分析
浏览器发送请求时,进行了url编码。将< >两个字符替换为为%3C和%3E(%后为十六进制数字)
为什么会进行编码?
- 某些字符会引起歧义:如 &
- 包含非ASCII字符,如中文。url本身只包含ascII字符,对于非ascII 字符会进行uft-8编码转义,将字符替换为utf-8编码。
- 防止注入攻击。如
<script></script>
中的<会进行编码
其他: 浏览器在发送get请求时,会自动进行url编码