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請求...