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