在 HTTP/1.1 中提供了一系列方法以便我們向服務(wù)器發(fā)送不同類(lèi)型的請(qǐng)求,需要注意的是這些方法名稱(chēng)都是區(qū)分大小寫(xiě)的,而且必需使用大寫(xiě)字母。具體的方法名稱(chēng)和說(shuō)明如下表所示:

下面來(lái)分別介紹一下這些方法。
一、GET
GET方法可以根據(jù)請(qǐng)求行中URL部分的參數(shù)從服務(wù)器中獲取數(shù)據(jù)。例如我們?cè)跒g覽器中打開(kāi)一個(gè)連接,然后就會(huì)在瀏覽器看到相應(yīng)的頁(yè)面,這一過(guò)程就是通過(guò) GET 方法實(shí)現(xiàn)的。另外,使用 GET方法還可以在 URL參數(shù)中攜帶一些字符串類(lèi)型的參數(shù)一同傳輸給服務(wù)器,由于是在 URL中攜帶的參數(shù),我們可以在瀏覽器的地址欄直觀的看到,所以安全性較低,一般只用來(lái)傳遞一些沒(méi)有風(fēng)險(xiǎn)的數(shù)據(jù)。而且GET 方法對(duì)于所傳輸數(shù)據(jù)的大小也有限制,一般不能超過(guò) 2kb。


針對(duì)上面的請(qǐng)求,服務(wù)器的響應(yīng)如下所示:

二、HEAD
HEAD 方法在功能上與 GET 方法相似,不同之處在于使用 HEAD 方法服務(wù)器只會(huì)返回響應(yīng)行和響應(yīng)頭,不會(huì)返回響應(yīng)體。客戶端使用 HEAD 方法發(fā)起的 HTTP 請(qǐng)求如下所示:
針對(duì) HEAD 方法發(fā)起的請(qǐng)求,服務(wù)器的響應(yīng)如下所示:
通過(guò)服務(wù)器的響應(yīng)結(jié)果可以看出,服務(wù)器在返回了響應(yīng)行和響應(yīng)頭之后,并沒(méi)有返回響應(yīng)體。
三、POST
當(dāng)我們需要將一些信息發(fā)送給服務(wù)器的時(shí)候就需要用到 POST 方法了,比如在提交表單或者上傳文件的時(shí)候。與 GET 方法不同,POST 方法會(huì)將返送給服務(wù)器的信息放到請(qǐng)求體中,所以比 GET 方法更加安全。而且,POST 方法對(duì)于傳輸數(shù)據(jù)的大小和類(lèi)型也沒(méi)有限制。以提交表單為例,使用 POST 方法向服務(wù)器發(fā)起的 HTTP 請(qǐng)求如下所示:

上面的請(qǐng)求發(fā)送成功后,服務(wù)器端的腳本 login.php 會(huì)根據(jù)傳遞的數(shù)據(jù)做出相應(yīng)的處理,并對(duì)客戶端做出響應(yīng),響應(yīng)結(jié)果如下所示:

四、PUT
使用 PUT 方法將數(shù)據(jù)傳輸?shù)椒?wù)器,并將其存儲(chǔ)在 URL 所指定的位置。假如我們要將 hello.html 文件的內(nèi)容存儲(chǔ)到服務(wù)器的根目錄下,那么客戶端發(fā)送的 HTTP 請(qǐng)求應(yīng)該是下面這樣的:

這時(shí)服務(wù)器會(huì)在根目錄下創(chuàng)建 hello.html 文件,并將請(qǐng)求中傳輸?shù)臄?shù)據(jù)保存到這個(gè)文件中,執(zhí)行成功后會(huì)向客戶端做出如下所示的響應(yīng):

五、DELETE
DELETE 方法可以請(qǐng)求服務(wù)器刪除 URL 所指定的文件。假如要?jiǎng)h除上面操作中在服務(wù)器根目錄創(chuàng)建的 hello.htnl 文件,那么客戶端的請(qǐng)求應(yīng)該是下面這樣的:

服務(wù)器在收到上面的請(qǐng)求后,會(huì)刪除根目錄下的 hello.html 文件,并對(duì)客戶端做出如下響應(yīng):

六、CONNECT
客戶端使用 CONNECT 方法可以與 URL 所指向的目標(biāo)服務(wù)器建立 HTTP 連接。假如要與域名(c.biancheng.net)所指向的服務(wù)器建立連接,客戶端的請(qǐng)求如下所示:
連接建立成功后,服務(wù)器會(huì)對(duì)客戶端做出如下響應(yīng):

七、OPTIONS
當(dāng)我們要使用本節(jié)中介紹的某個(gè)方法向服務(wù)器發(fā)送請(qǐng)求,但又不確定服務(wù)器是否支持此請(qǐng)求時(shí),可以使用 OPTIONS 方法來(lái)查看服務(wù)器所支持的 HTTP 方法。在使用 OPTIONS 方法發(fā)送 HTTP 請(qǐng)求時(shí),既可以指定具體的 URL,也可以使用星號(hào)(*)來(lái)代表整個(gè)服務(wù)器。假如要查看域名(c.biancheng.net)所指向服務(wù)器所支持的 HTTP 方法,客戶端的請(qǐng)求如下所示:

服務(wù)器的響應(yīng)如下所示:

在服務(wù)器返回的響應(yīng)頭中,Allow 一行就是該服務(wù)器支持的所有 HTTP 方法。
八、TRACE
服務(wù)器在收到客戶端使用 TRACE 方法發(fā)送的 HTTP 請(qǐng)求時(shí),會(huì)將收到的請(qǐng)求報(bào)文放到響應(yīng)體中返回給客戶端。TRACE 方法主要在程序的開(kāi)發(fā)測(cè)試階段使用,使用 TRACE 方法可以查看請(qǐng)求在傳遞到服務(wù)器的過(guò)程中是否被篡改或破壞等等。客戶端的請(qǐng)求示例如下所示:

服務(wù)器的響應(yīng)如下所示:

了解并掌握這些 HTTP 請(qǐng)求方法,有助于開(kāi)發(fā)者更精準(zhǔn)地與服務(wù)器交互,依據(jù)不同業(yè)務(wù)需求選擇合適方法,無(wú)論是數(shù)據(jù)獲取、提交,還是連接建立、功能測(cè)試等,都能構(gòu)建更穩(wěn)定、高效、安全的網(wǎng)絡(luò)應(yīng)用,充分發(fā)揮 HTTP 協(xié)議在網(wǎng)絡(luò)通信中的關(guān)鍵作用。
想了解更多相關(guān)技術(shù)小分享可以上藍(lán)隊(duì)云官網(wǎng)查閱,更多技術(shù)問(wèn)題,也可以直接咨詢。同時(shí),藍(lán)隊(duì)云整理了運(yùn)維必備的工具包免費(fèi)分享給大家使用,需要的朋友可以直接咨詢。