亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

帶請求正文的HTTP GET

帶請求正文的HTTP GET

九州編程 2019-05-22 15:01:20
帶請求正文的HTTP GET我正在為我們的應用程序開發一個新的RESTful Web服務。在某些實體上執行GET時,客戶端可以請求實體的內容。如果他們想要添加一些參數(例如排序列表),他們可以在查詢字符串中添加這些參數?;蛘撸蚁M藗兡軌蛟谡埱笳闹兄付ㄟ@些參數。 HTTP / 1.1似乎沒有明確禁止這一點。這將允許他們指定更多信息,可以更容易指定復雜的XML請求。我的問題:這完全是一個好主意嗎?HTTP客戶端在GET請求中使用請求主體會有問題嗎?http://tools.ietf.org/html/rfc2616
查看完整描述

5 回答

?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

羅伊菲爾丁關于將一個機構納入GET請求的評論。

是。換句話說,任何HTTP請求消息都允許包含消息體,因此必須解析消息。但是,GET的服務器語義受到限制,使得正文(如果有的話)對請求沒有語義含義。解析的要求與方法語義的要求是分開的。

所以,是的,你可以使用GET發送一個正文,不,這樣做永遠不會有用。

這是HTTP / 1.1的分層設計的一部分,一旦規范被分區(正在進行中),它將再次變得清晰。

羅伊....

是的,您可以使用GET發送請求正文,但它不應該有任何意義。如果你通過在服務器上解析它并根據其內容更改響應來賦予它意義,那么你忽略了HTTP / 1.1規范第4.3節這個建議:

[...]如果請求方法不包含實體主體的定義語義,則在處理請求時應該忽略消息主體。

HTTP / 1.1規范中的GET方法的描述,第9.3節

GET方法意味著檢索Request-URI標識的任何信息([...])。

其中聲明請求主體不是GET請求中資源標識的一部分,只是請求URI。

更新 引用為“HTTP / 1.1規范”的RFC2616現已過時。2014年,它被RFC 7230-7237取代。引用“處理請求時應該忽略消息體”已被刪除。它現在只是“請求消息框架獨立于方法語義,即使該方法沒有定義消息體的任何用途”第二個引用“GET方法意味著檢索任何信息......由Request-URI標識”被刪除了。 - 來自評論


查看完整回答
反對 回復 2019-05-22
?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

如果您嘗試利用緩存,則可能會遇到問題。代理人不會在GET主體中查看參數是否會對響應產生影響。


查看完整回答
反對 回復 2019-05-22
?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

restclientREST控制臺都不支持這個,但卷曲確實如此。

HTTP規范說,在第4.3節

如果請求方法的規范(第5.1.1節)不允許在請求中發送實體主體,則消息主體不得包含在請求中。

第5.1.1節將我們重定向到第9.x節的各種方法。他們都沒有明確禁止包含消息體。然而...

第5.2節

通過檢查Request-URI和Host頭字段來確定Internet請求標識的確切資源。

9.3節

GET方法意味著檢索由Request-URI標識的任何信息(以實體的形式)。

這一點一起表明,在處理GET請求時,服務器不需要檢查Request-URI和Host頭字段之外的任何其他內容。

總之,HTTP規范并不會阻止您使用GET發送消息體,但是如果所有服務器都不支持它,那么它就不會讓我感到驚訝。


查看完整回答
反對 回復 2019-05-22
  • 5 回答
  • 0 關注
  • 1470 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號