post與get 請求的區別
阿新 • • 發佈:2018-11-24
1,GET和POST與資料如何傳遞沒有關係??
post與get 請求是由HTTP協議定義的,那麼使用那個方式與應用層的資料層如何傳輸是沒有互相關係的。
從而,http就沒有要求,post一定要放到請求體裡面,get就一定要放到url裡面。
因為有各種瀏覽器軟體的實現,就變成get用url傳參,post用body傳參。
2、HTTP協議對GET和POST有沒有對長度的限制??
HTTP協議明確地指出了,HTTP請求頭和請求體都沒有長度的要求。
而對於URL長度上的限制,有兩方面的原因造成:
1、瀏覽器。
據說IE對URL長度會限制在2048個字元內。但是就我所知,firefox是支援10W以上的長度
2、伺服器。
伺服器處理超長的URL本身就是一種負擔,更何況遭受惡意攻擊呢?
因此,多數伺服器出於安全、穩定等多方面的考慮,會給URL長度加限制。但是這個限制是針對所有HTTP請求的,與GET、POST沒有關係。
3、安全不安全和GET、POST有沒有關係??
Get和Post剝開後,他們的本質上就是TCP連結,並無差別。
只是由於HTTP的規定和瀏覽器/伺服器的限制,導致他們在應用過程中體現出一些不同
Get產生一個TCP資料包;Post產生兩個TCP資料包。
對於GET方式的請求,瀏覽器會把http header和data一併傳送出去,伺服器響應200(返回資料);
對於POST,瀏覽器先發送header,伺服器響應100(continue),然後再發送data,伺服器響應200(返回資料);