http筆記(四) http方法

2021-08-14 17:31:51 字數 2688 閱讀 4655

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學習筆記(四) HTTP報文

http報文是在 應用程式之間傳送的資料塊,這些資料塊以一些文字形式的元資訊。請求報文從客戶端流入伺服器,向伺服器請求資料,伺服器響應請求,響應報文從伺服器流出,回到客戶端。這就構成了乙個事務.報文總是向下流動,所有的報文的傳送者都在上游,所有的報文接受者都在下游。所以無論是瀏覽器還是伺服器,他們都...

HTTP請求 HTTP方法

http 1.1中可使用的方法 get 獲取資源 獲取伺服器的某個資源 get方法用來請求訪問已經被uri識別的資源。制定的資源經伺服器端解析後返回響應內容。也就是說,如果請求的資源是文字,那就保持原樣返回 如果是像cgi common gateway inte ce,通用閘道器介面 那樣的程式,就...

HTTP協議學習筆記四

http請求響應是一條一條順序執行的 並行連線 client一次向server請求建立多個http連線,每個http連線上發乙個請求,這樣就可以並行地發多個請求獲取響應資料。比如,訪問某個web頁面,它上面有4幅,這些儲存在不同的伺服器上。那可以同時向伺服器發4個http請求去獲取這四幅,而不是序列...