HTTP定義了與服務(wù)器交互的不同方法,最基本的方法是 GET 和 POST。HTTP-GET和HTTP-POST是使用HTTP的標(biāo)準(zhǔn)協(xié)議動詞,用于編碼和傳送變量名/變量值對參數(shù),并且使用相關(guān)的請求語義。 什么是HTTP?超文本傳輸協(xié)議(HTTP)的設(shè)計(jì)目的是保證客戶機(jī)與服務(wù)器之間的通信。 HTTP 的工作方式是客戶機(jī)與服務(wù)器之間的請求-應(yīng)答協(xié)議。 web 瀏覽器可能是客戶端,而計(jì)算機(jī)上的網(wǎng)絡(luò)應(yīng)用程序也可能作為服務(wù)器端。 舉例:客戶端(瀏覽器)向服務(wù)器提交 HTTP 請求;服務(wù)器向客戶端返回響應(yīng)。響應(yīng)包含關(guān)于請求的狀態(tài)信息以及可能被請求的內(nèi)容。 兩種 HTTP 請求方法:GET 和 POST在客戶機(jī)和服務(wù)器之間進(jìn)行請求-響應(yīng)時(shí),兩種最常被用到的方法是:GET 和 POST。
GET - 從指定的資源請求數(shù)據(jù)。 POST - 向指定的資源提交要被處理的數(shù)據(jù)
GET方法使用GET方法時(shí),查詢字符串(鍵值對)被附加在URL地址后面一起發(fā)送到服務(wù)器: /webdemo.aspx?name1=value1&name2=value2 特點(diǎn): GET請求能夠被緩存 GET請求會保存在瀏覽器的瀏覽記錄中 以GET請求的URL能夠保存為瀏覽器書簽 GET請求有長度限制 GET請求主要用以獲取數(shù)據(jù)
POST方法使用POST方法時(shí),查詢字符串在POST信息中單獨(dú)存在,和HTTP請求一起發(fā)送到服務(wù)器: POST /webdemo.aspx HTTP/1.1 Host: w3schools.com name1=value1&name2=value2 特點(diǎn): POST請求不能被緩存下來 POST請求不會保存在瀏覽器瀏覽記錄中 以POST請求的URL無法保存為瀏覽器書簽 POST請求沒有長度限制
GET和POST的區(qū)別 | 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中,可見 | 查詢字符串不會顯示在地址欄中,不可見 |
其他HTTP請求方式方式 | 描述 | HEAD | 與GET請求類似,不同在與服務(wù)器只返回HTTP頭部信息,沒有頁面內(nèi)容 | PUT | 上傳指定URL的描述 | DELETE | 刪除指定資源 | OPTIONS | 返回服務(wù)器支持的HTTP方法 | CONNECT | 轉(zhuǎn)換為透明TCP/IP隧道的連接請求 |
|