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 = "【post:傳輸實體文字】example.php";
//新增引數
url = addurlparam(url,"
name
","foodoir");
url = addurlparam(url,"
age","21"
);
//初始化請求
xhr.open("
get",url,false);
post方法用來傳輸實體的主體。
雖然用get方法也可以傳輸實體的主體,但一般不用get方法進行傳輸,而是用post方法;雖然get方法和post方法很相似,但是post的主要目的並不是獲取響應的主體內容。
post請求的主體可以包含非常多的資料,而且格式不限。下面舉乙個例子:
xhr.open("post","01.php",true);
傳送post請求的第二步就是向send方法中傳入某些資料,由於xhr最初的設計是為了處理xml,因此也可以在此處理xml dom文件,傳入的文件經過序列化之後將作為請求主體被提交到伺服器。
預設情況下,伺服器對於post請求和提交web表單的請求並不會一視同仁,我們來看下面一段**:
function()1、get方法用於資訊獲取,它是安全的(安全:指非修改資訊,如資料庫方面的資訊),而post方法是用於修改伺服器上資源的請求;else}};
xhr.open(
"post
","post.php
",true
); xhr.setrequestheader(
"content-type
",""
);
var form = document.getelementbyid("id"
); xhr.send(serialize(form));
}
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請求去獲取這四幅,而不是序列...