兩個最常用的HTTP方法是:GET和POST。
什麼是HTTP?
超文本傳輸協議(HTTP)的目的是使客戶端和服務器之間的通信。
HTTP效果作為客戶端和服務器之間的請求 - 響應協議。
Web瀏覽器可能是客戶端,並承載一個網站可能是服務器的計算機上的應用程序。
例如:客戶端(瀏覽器)提交的HTTP請求到服務器; 則服務器返回到客戶端的響應。 響應包含有關請求狀態信息,並也可含有所請求的內容。
兩個HTTP請求方法:GET和POST
為客戶端和服務器之間的請求 - 響應兩種常用的方法有:GET和POST。
- GET -從指定的資源請求數據
- POST -提交要處理的數據到一指定的資源
GET方法
注意查詢字符串(名稱/值對)在GET請求的URL發送:
/test/demo_form.asp?name1=value1&name2=value2
在GET請求其他一些注意事項:
- GET請求可以被緩存
- GET請求留在瀏覽器歷史記錄
- GET請求可以添加書籤
- GET敏感數據時,要求絕對不能用
- GET請求有長度限制
- GET請求應該只用於檢索數據
POST方法
注意查詢字符串(名稱/值對)在POST請求的HTTP郵件正文發送:
POST /test/demo_form.asp HTTP/1.1
Host: w3ii.com
name1=value1&name2=value2
在POST請求的其他一些注意事項:
- POST請求不會被緩存
- POST請求不留在瀏覽器歷史記錄
- POST請求,不可添加書籤
- POST請求對數據長度沒有限制
比較GET與POST
下表比較了這兩種HTTP方法:GET和POST。
得到 | POST | |
---|---|---|
BACK按鈕/重裝 | 無害 | 數據將被重新提交(瀏覽器應該提醒的數據是將要被重新提交的用戶) |
書籤 | 可以書籤 | 不能書籤 |
網頁快照 | 可被高速緩存 | 沒有緩存 |
編碼類型 | 應用程序/ x-WWW的形式,進行了urlencoded | 應用程序/ x-WWW窗體-urlencoded或多部分/表單數據。 使用二進制數據編碼的多部分 |
歷史 | 參數保持在瀏覽器歷史記錄 | 參數不保存在瀏覽器歷史記錄 |
數據長度限制 | 是的,發送數據時,GET方法增加了數據的URL; 和URL的長度是有限的(最大URL長度為2048個字符) | 無限制 |
關於數據類型限制 | 只允許ASCII字符 | 無限制。 二進制數據也允許 |
安全 | 相比POST GET不太安全,因為發送的數據是URL的一部分 發送密碼或其他敏感信息時,切勿使用GET! | POST比GET更安全一點,因為這些參數並不存儲在瀏覽器歷史記錄或Web服務器日誌 |
能見度 | 數據的所有人都可以在網址 | 數據不顯示在URL |
其他HTTP請求方法
下表列出了一些其他的HTTP請求方法:
方法 | 描述 |
---|---|
HEAD | 同GET,但僅返回HTTP頭,沒有文檔主體 |
PUT | 上載到指定的URI的表示 |
DELETE | 刪除指定的資源 |
OPTIONS | 返回的HTTP方法服務器支持 |
CONNECT | 請求連接到一個透明的TCP / IP轉換隧道 |