HTTP方法中的GET和POST區別
HTTP1.1中的八個方法:
1.GET 請求獲取Request-URI所標識的資源
2.POST 在Request-URI所標識的資源後附加新的資料
3.HEAD 請求獲取由Request-URI所標識的資源的響應訊息報頭
4.PUT 請求伺服器儲存一個資源,並用Request-URI作為其標識
5.DELETE 請求伺服器刪除Request-URI所標識的資源
6.TRACE 請求伺服器回送收到的請求資訊,主要用於測試或診斷
7.CONNECT 保留將來使用
8.OPTIONS 請求查詢伺服器的效能,或者查詢與資源相關的選項和需求
我們瀏覽網頁然後抓包來看基本上都是GET和POST方法,其它的不太常用
抓包分析HTTP協議:
1)請求行
圖上是瀏覽器瀏覽網頁抓取到的包,可以看出請求行的資訊,method、request-URL、version三部分資訊
(2)請求首部
由關鍵字+關鍵字的值組成,之間使用“:”進行分隔,格式Name:Value,請求首部的作用是通過客戶端將請求的相關內容告知伺服器端,首部可以不止一個。
(3)空白行
請求首部之後會有一個空白行,通過傳送回車字元和換行符,用於通知伺服器端以下的內容將不會再出現請求首部的資訊。
(4)請求實體(entity-body)
上圖就是請求的實體,抓表的路徑及內容。
GET和POST區別:
實際上在HTTP協議中,Method是哪個並不影響它的Data的傳輸,兩者是沒有直接關係的。HTTP沒有對GET和POST方法的長度作限制,從根本上來講的話區別只在於一個是用來獲取資料,一個是修改。
在web開發中我們流傳一種說法就是GET比POST安全,GET的URL長度會有限制,GET使用URL或Cookie傳參,而POST則放在BODY中,其實這只是HTML對HTTP協議的使用方法。