1. 程式人生 > >post與get 請求的區別

post與get 請求的區別

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(返回資料);