我看視頻里老師在重發(fā)請(qǐng)求的時(shí)候,get方法后面是能出現(xiàn)空格的,我自己做的時(shí)候,發(fā)現(xiàn)不能有空格,都得用%20替換,否則響應(yīng)頭直接報(bào)400錯(cuò)誤,,,咋回事。。我百度沒(méi)找到原因。。。(我用的2023.9和2020.8這兩個(gè)版本都是這情況)
視頻上說(shuō)是查看回放記錄吧,不是實(shí)時(shí)在操作,實(shí)時(shí)應(yīng)該要%20
可能是工具問(wèn)題,有的工具是可以自動(dòng)給你url編碼的,命令行發(fā)送的就需要自己編碼了
不知道怎么設(shè)置才能像老師那樣
在URL中,空格和%20都用于表示空白字符,但它們之間存在一定的差異。
首先,從編碼標(biāo)準(zhǔn)上來(lái)看,空格在URL中通常被編碼為加號(hào)+或%20。根據(jù)W3C的標(biāo)準(zhǔn),當(dāng)Content-Type為application/x-www-form-urlencoded時(shí),空格應(yīng)使用加號(hào)+進(jìn)行編碼。然而,RFC 2396標(biāo)準(zhǔn)規(guī)定,在URI的查詢組件中,保留字符需要轉(zhuǎn)義為%HH格式,因此空格也被編碼為%20。這是因?yàn)榧犹?hào)+在某些應(yīng)用中可能被視為非法字符,而%20能被更廣泛地接受并正確解析為空格。
其次,從瀏覽器兼容性的角度來(lái)看,不同的瀏覽器可能對(duì)空格的編碼有不同的處理方式。有些瀏覽器可能會(huì)將加號(hào)+解釋為空格,而有些則可能只識(shí)別%20作為空格的編碼。這種差異可能會(huì)導(dǎo)致在不同的瀏覽器中訪問(wèn)同一URL時(shí)出現(xiàn)不一致的結(jié)果。
最后,從URL的設(shè)計(jì)初衷來(lái)理解,URL最初是設(shè)計(jì)為可以通過(guò)書(shū)面形式轉(zhuǎn)錄的,因此其構(gòu)成字符必須是可書(shū)寫(xiě)的ASCII字符。由于空格字符在書(shū)面轉(zhuǎn)錄中容易被忽略,且在某些情況下可能會(huì)因意想不到的原因被引入,因此被視為不安全字符,需要進(jìn)行轉(zhuǎn)碼。
綜上所述,雖然空格和%20在URL中都用于表示空白,但由于編碼標(biāo)準(zhǔn)、瀏覽器兼容性以及URL設(shè)計(jì)初衷的不同,它們?cè)谑褂蒙峡赡軙?huì)有所區(qū)別。在實(shí)際應(yīng)用中,為了避免兼容性問(wèn)題,使用%20來(lái)替代空格可能是一個(gè)更為穩(wěn)妥的選擇。綜上所述,當(dāng)你在URL欄直接輸入空格時(shí),瀏覽器可能不會(huì)將其解釋為有效字符,而是會(huì)忽略或嘗試進(jìn)行某種形式的編碼。而當(dāng)你輸入%20時(shí),瀏覽器會(huì)根據(jù)標(biāo)準(zhǔn)將其解碼為空格,因此輸入%20是有效的。