2 回答

TA貢獻2051條經驗 獲得超10個贊
GET:用于獲取數據。
POST:用于修改數據。
一.GET和POST與數據如何傳遞沒有關系
GET和POST是由HTTP協議定義的。在HTTP協議中,Method和Data(URL, Body, Header)是正交的兩個概念,也就是說,使用哪個Method與應用層的數據如何傳輸是沒有相互關系的。
二.HTTP協議對GET和POST都沒有對長度的限制
HTTP協議明確地指出:HTTP頭和Body都沒有長度的要求。而對于URL長度上的限制,有兩方面的原因造成:
1. 瀏覽器。據說早期的瀏覽器會對URL長度做限制。據說IE對URL長度會限制在2048個字符內(流傳很廣,而且無數同事都表示認同)。但我自己試了一下,我構造了90K的URL通過IE9訪問live.com,是正常的。網上的東西,哪怕是Wikipedia上的,也不能信。
2. 服務器。URL長了對服務器處理也是一種負擔。原本一個會話就沒有多少數據,現在如果有人惡意地構造幾個幾M大小的URL,并不停地訪問你的服務器。服務器的最大并發數顯然會下降。另一種攻擊方式是,把告訴服務器Content-Length是一個很大的數,然后只給服務器發一點兒數據,哪怕你有超時設置,這種故意的次次訪問超時也能讓服務器吃不了兜著走。有鑒于此,多數服務器出于安全穩定方面的考慮,會給URL長度加限制。但是這個限制是針對所有HTTP請求的,與GET、POST沒有關系。
所以對于GET和POST,他們只有一點根本區別,簡單點兒說:
一個用于獲取數據。
一個用于修改數據。
添加回答
舉報