HTTP定義了與服務(wù)器交互的不同方法,最基本的方法是 GET 和 POST。HTTP-GET和HTTP-POST是使用HTTP的標(biāo)準(zhǔn)協(xié)議動詞,用于編碼和傳送變量名/變量值對參數(shù),并且使用相關(guān)的請求語義。
超文本傳輸協(xié)議(HTTP)的設(shè)計目的是保證客戶機(jī)與服務(wù)器之間的通信。
HTTP 的工作方式是客戶機(jī)與服務(wù)器之間的請求-應(yīng)答協(xié)議。
web 瀏覽器可能是客戶端,而計算機(jī)上的網(wǎng)絡(luò)應(yīng)用程序也可能作為服務(wù)器端。
舉例:客戶端(瀏覽器)向服務(wù)器提交 HTTP 請求;服務(wù)器向客戶端返回響應(yīng)。響應(yīng)包含關(guān)于請求的狀態(tài)信息以及可能被請求的內(nèi)容。
在客戶機(jī)和服務(wù)器之間進(jìn)行請求-響應(yīng)時,兩種最常被用到的方法是:GET 和 POST。
GET - 從指定的資源請求數(shù)據(jù)。
POST - 向指定的資源提交要被處理的數(shù)據(jù)
GET請求能夠被緩存
GET請求會保存在瀏覽器的瀏覽記錄中
以GET請求的URL能夠保存為瀏覽器書簽
GET請求有長度限制
GET請求主要用以獲取數(shù)據(jù)
POST請求不能被緩存下來
POST請求不會保存在瀏覽器瀏覽記錄中
以POST請求的URL無法保存為瀏覽器書簽
POST請求沒有長度限制
GET | POST | |
點(diǎn)擊返回/刷新按鈕 | 沒有影響 | 數(shù)據(jù)會重新發(fā)送(瀏覽器將會提示用戶“數(shù)據(jù)被從新提交”) |
添加書簽 | 可以 | 不可以 |
緩存 | 可以 | 不可以 |
編碼類型(Encoding type) | application/x-www-form-urlencoded | application/x-www-form-urlencoded or multipart/form-data. 請為二進(jìn)制數(shù)據(jù)使用multipart編碼 |
歷史記錄 | 有 | 沒有 |
長度限制 | 有 | 沒有 |
數(shù)據(jù)類型限制 | 只允許ASCII字符類型 | 沒有限制。允許二進(jìn)制數(shù)據(jù) |
安全性 | 查詢字符串會顯示在地址欄的URL中,不安全,請不要使用GET請求提交敏感數(shù)據(jù) | 因?yàn)閿?shù)據(jù)不會顯示在地址欄中,也不會緩存下來或保存在瀏覽記錄中,所以看POST求情比GET請求安全,但也不是最安全的方式。如需要傳送敏感數(shù)據(jù),請使用加密方式傳輸 |
可見性 | 查詢字符串顯示在地址欄的URL中,可見 | 查詢字符串不會顯示在地址欄中,不可見 |
方式 | 描述 |
HEAD | 與GET請求類似,不同在與服務(wù)器只返回HTTP頭部信息,沒有頁面內(nèi)容 |
PUT | 上傳指定URL的描述 |
DELETE | 刪除指定資源 |
OPTIONS | 返回服務(wù)器支持的HTTP方法 |
CONNECT | 轉(zhuǎn)換為透明TCP/IP隧道的連接請求 |