1. 程式人生 > >GET和POST的真正的區別

GET和POST的真正的區別

好,大家都知道的GET和POST的區別,我就不說了,就說兩點,如下:

1.HTTP協議是TCP/IP的一種應用,所以說GET和POST也是TCP連線,所以GET和POST其實對url長度和傳送的內容大小是沒有限制的(我們平時見到的URL長度和傳送內容的大小限制,都是來自於各個瀏覽器的限制,而非HTTP協議本身的限制)

2.GET產生一個TCP資料包;POST產生兩個TCP資料包。

GET請求的時候,會把HEADER和DATA一起傳送給伺服器;

而對於POST,瀏覽器先發送Header,伺服器響應100 Continue,瀏覽器再發送DATA,伺服器響應200 OK(返回資料)。

因為POST需要兩步,時間上消耗的要多一點,看起來GET比POST更有效。因此Yahoo團隊有推薦用GET替換POST來優化網站效能。但這是一個坑!跳入需謹慎。為什麼?

1. GET與POST都有自己的語義,不能隨便混用。

2. 據研究,在網路環境好的情況下,發一次包的時間和發兩次包的時間差別基本可以無視。而在網路環境差的情況下,兩次包的TCP在驗證資料包完整性上,有非常大的優點。

3. 並不是所有瀏覽器都會在POST中傳送兩次包,Firefox就只發送一次。

以後面試的時候,遇到面試官這樣問你,你是不是可以這樣了,哈哈

原文:https://blog.csdn.net/allenwdj/article/details/52231331