關於對瀏覽器發送POST請求的一點研究

網上對與HTTP的Method,GET和POST的區別,說得畢竟詳細。而後提到一點,說瀏覽器對二者的還有一個比較容易讓人忽略的區別就是:POST會分2次發送,而GET只1次。php

GET發送1次,這個沒什麼好說的。而後對於POST,作了個測試,結果以下:html

IE11瀏覽器【11.0】,分2次發送
Opera瀏覽器【49.0.2725.47】,分1次發送
Chrome瀏覽器【64.0.3282.119(正式版本) (64 位)】,分2次發送
Firefox【57.0.4 (64 位)】,1次發送
Safari【5.1.7】,2次發送

有的文章說,POST要請求2次,其實這應該是不許確的說法,請求依然是1次,只是分別發送了請求Header和Body。nginx

對於服務器(nginx),日誌是這樣的,都是1次請求:瀏覽器

27.10.68.64 - - [23/Feb/2018:11:01:32 +0800] "POST //likeme/t.php HTTP/1.1" 200 29 "http://play.whatmiss.com//likeme/" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"
27.10.68.64 - - [23/Feb/2018:11:01:38 +0800] "POST //likeme/t.php HTTP/1.1" 200 29 "http://play.whatmiss.com//likeme/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.89 Safari/537.36 OPR/49.0.2725.47" "-"
27.10.68.64 - - [23/Feb/2018:11:01:41 +0800] "POST //likeme/t.php HTTP/1.1" 200 29 "http://play.whatmiss.com//likeme/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2" "-"
27.10.68.64 - - [23/Feb/2018:11:01:45 +0800] "POST //likeme/t.php HTTP/1.1" 200 29 "http://play.whatmiss.com//likeme/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0" "-"
27.10.68.64 - - [23/Feb/2018:11:01:51 +0800] "POST //likeme/t.php HTTP/1.1" 200 29 "http://play.whatmiss.com//likeme/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36" "-"

 

網絡資源:服務器

99%的人理解錯 HTTP 中 GET 與 POST 的區別: https://www.oschina.net/news/77354/http-get-post-different網絡

不一樣瀏覽器發送POST請求分包狀況比較: http://blog.csdn.net/someonelikesyou/article/details/8078380ide

HTTP1.1協議中文版-RFC2616: http://www.cnblogs.com/k1988/archive/2010/01/12/2165683.htmlpost

 

詳細截圖以下:測試

 IE11瀏覽器【11.0】,分2次發送:spa

 

Opera瀏覽器【49.0.2725.47】,分1次發送:

 

Chrome瀏覽器【64.0.3282.119(正式版本) (64 位)】,分2次發送:

 

Firefox【57.0.4 (64 位)】,1次發送:

 

 

Safari【5.1.7】,2次發送:

相關文章
相關標籤/搜索