HTTP請求方法詳解

2021-09-26 05:22:42 字數 2704 閱讀 3226

http請求方法詳解

請求方法:指定了客戶端想對指定的資源/伺服器作何種操作

下面我們介紹http/1.1中可用的請求方法:

【get:獲取資源】

get方法用來請求已被uri識別的資源。指定的資源經伺服器端解析後返回響應內容(也就是說,如果請求的資源是文字,那就保持原樣返回;如果是cgi[通用閘道器介面]那樣的程式,則返回經過執行後的輸出結果)。

最常用於向伺服器查詢某些資訊。必要時,可以將查詢字串引數追加到url末尾,以便將資訊傳送給伺服器。

使用get請求時經常會發生的乙個錯誤,就是查詢字串的格式有問題。查詢字串中每個引數的名稱和值都必須使用encodeurlcomponent()進行編碼,然後才能放到url的末尾;而且所有的名-值對都必須由(&)分離,如下面的例子:

xhr.open("get","01.php?name=foodoir&age=21",true);

下面這個函式可以輔助現有url的末尾新增查詢字串引數:

function addurlparam(url,name,value)

這個addurlparam函式接受三個引數:要新增引數的url、引數的名稱和引數的值。

下面是使用這個函式來構建url的示例

var url = "

example.php";

//新增引數

url = addurlparam(url,"

name

","foodoir");

url = addurlparam(url,"

age","21"

);

//初始化請求

xhr.open("

get",url,false);

【post:傳輸實體文字】

post方法用來傳輸實體的主體。

雖然用get方法也可以傳輸實體的主體,但一般不用get方法進行傳輸,而是用post方法;雖然get方法和post方法很相似,但是post的主要目的並不是獲取響應的主體內容。

post請求的主體可以包含非常多的資料,而且格式不限。下面舉乙個例子:

xhr.open("post","01.php",true);

傳送post請求的第二步就是向send方法中傳入某些資料,由於xhr最初的設計是為了處理xml,因此也可以在此處理xml dom文件,傳入的文件經過序列化之後將作為請求主體被提交到伺服器。

預設情況下,伺服器對於post請求和提交web表單的請求並不會一視同仁,我們來看下面一段**:

function()

else}};

xhr.open(

"post

","post.php

",true

); xhr.setrequestheader(

"content-type

",""

);

var form = document.getelementbyid("id"

); xhr.send(serialize(form));

}

1、get方法用於資訊獲取,它是安全的(安全:指非修改資訊,如資料庫方面的資訊),而post方法是用於修改伺服器上資源的請求;

2、get請求的資料會附在url之後,而post方法提交的資料則放置在http報文實體的主體裡,所以post方法的安全性比get方法要高;

3、get方法傳輸的資料量一般限制在2kb,其原因在於:get是通過url提交資料,而url本身對於資料沒有限制,但是不同的瀏覽器對於url是有限制的,比如ie瀏覽器對於url的限制為2kb,而chrome,firefox瀏覽器理論上對於url是沒有限制的,它真正的限制取決於作業系統本身;post方法對於資料大小是無限制的,真正影響到資料大小的是伺服器處理程式的能力。

【head:獲得報文首部】

head方法和get方法一樣,知識不返回豹紋的主體部分,用於確認uri的有效性及資源更新的日期時間等。

具體來說:1、判斷型別; 2、檢視響應中的狀態碼,看物件是否存在(響應:請求執行成功了,但無資料返回); 3、測試資源是否被修改過

head方法和get方法的區別: get方法有實體,head方法無實體。

【put:傳輸檔案】

put方法用來傳輸檔案,就像ftp協議的檔案上傳一樣,要求在請求報文的主體中包含檔案內容,然後儲存在請求uri指定的位置。但是http/1.1的put方法自身不帶驗證機制,任何人都可以上傳檔案,存在安全問題,故一般不用。

【delete:刪除檔案】

指明客戶端想讓伺服器刪除某個資源,與put方法相反,按uri刪除指定資源

【options:詢問支援的方法】

options方法用來查詢針對請求uri指定資源支援的方法(客戶端詢問伺服器可以提交哪些請求方法)

【trace:追蹤路徑】

客戶端可以對請求訊息的傳輸路徑進行追蹤,trace方法是讓web伺服器端將之前的請求通訊還給客戶端的方法

【connect:要求用隧道協議連線**】

connect方法要求在與**伺服器通訊時建立隧道,實現用隧道協議進行tcp通訊。主要使用ssl(安全套接層)和tls(傳輸層安全)協議把通訊內容加密後經網路隧道傳輸。

HTTP請求方法詳解

get get方法意思是獲取被請求uri request uri 指定的資訊 以實體的格式 如果請求 uri涉及到乙個資料生成過程,那麼這個過程生成的資料應該被作為實體在響應中返回而不是 過程的源文字,除非源文字恰好是過程的輸出。如果請求訊息包含 if modified since,if unmod...

HTTP請求方法詳解

1 get獲取資源 用來請求已經被 uri所標識的資源 要查詢的內容需要用encodeurlcomponent 進行編碼 2 post傳輸實體文字在 uri所標識的資源後附加新的資料 3 head獲取報文首部 用來請求已經被 uri所標識的資源的響應訊息報頭 4 put傳輸檔案 傳輸檔案,要求在請求...

詳解 HTTP協議 (三) HTTP 請求方法

http 請求方法 根據http標準,http請求可以使用多種請求方法 方法 描述get 請求指定頁面資訊,返回實體主體 head 類似於get請求,只不過返回的響應中沒有具體的內容,用於獲取報頭 post 向指定資源提交資料進行處理請求 例如提交表單或者上傳檔案 資料被包含在請求體中。post請求...