首頁
社區(qū)
課程
招聘
重發(fā)請求時get方法里的空格問題

我看視頻里老師在重發(fā)請求的時候,get方法后面是能出現(xiàn)空格的,我自己做的時候,發(fā)現(xiàn)不能有空格,都得用%20替換,否則響應(yīng)頭直接報400錯誤,,,咋回事。。我百度沒找到原因。。。(我用的2023.9和2020.8這兩個版本都是這情況)

收藏
4條回答
wyfe 2023-8-30

視頻上說是查看回放記錄吧,不是實時在操作,實時應(yīng)該要%20

回復(fù)
YanU 2023-10-11

可能是工具問題,有的工具是可以自動給你url編碼的,命令行發(fā)送的就需要自己編碼了

回復(fù)
achzet 2023-12-4 2023-12-4編輯

不知道怎么設(shè)置才能像老師那樣

回復(fù)
jemus 2024-4-26

在URL中,空格和%20都用于表示空白字符,但它們之間存在一定的差異。

首先,從編碼標(biāo)準上來看,空格在URL中通常被編碼為加號+或%20。根據(jù)W3C的標(biāo)準,當(dāng)Content-Type為application/x-www-form-urlencoded時,空格應(yīng)使用加號+進行編碼。然而,RFC 2396標(biāo)準規(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)準、瀏覽器兼容性以及URL設(shè)計初衷的不同,它們在使用上可能會有所區(qū)別。在實際應(yīng)用中,為了避免兼容性問題,使用%20來替代空格可能是一個更為穩(wěn)妥的選擇。
綜上所述,當(dāng)你在URL欄直接輸入空格時,瀏覽器可能不會將其解釋為有效字符,而是會忽略或嘗試進行某種形式的編碼。而當(dāng)你輸入%20時,瀏覽器會根據(jù)標(biāo)準將其解碼為空格,因此輸入%20是有效的。

回復(fù)
《30小時教你玩轉(zhuǎn)CTF》
  參與學(xué)習(xí)     691 人
  提問次數(shù)     67 個
《30小時教你玩轉(zhuǎn)CTF》;頂尖講師團隊親授,教你深入淺出學(xué)攻防;每周一、周四更新
0
我的提問
0
我的回答
0
學(xué)習(xí)收益