告知服務器意圖的HTTP方法

GET:獲取資源

GET方法用來請求訪問已被URI識別的資源。指定的資源經(jīng)過服務器端解析后返回響應內(nèi)容,也就是說,如果請求的資源是文本,那就保持原樣返回;如果是像CGI(Common Gateway interface,通用網(wǎng)關接口)那樣的程序,則返回經(jīng)過執(zhí)行后的輸出結果。


使用GET方法的請求~響應的例子
請求 GET /index.html HTTP/1.1 Host:www.dafada.jp
響應 返回index.heml的頁面資源
請求 GET /index.html HTTP/1.1 Host:www.dafada.jp If-Modified-Since: Thu ,12 Jul 2016 08:30:00 GMT
響應 僅返回2012年7月12日七點三十分以后更新過的index.html頁面資源。如果未有內(nèi)容更新,則以狀態(tài)嗎304 Not Modified作為響應返回

POST:傳輸實體主體

POST方法用來傳輸實體的主體
雖然用GET方法也可以傳輸實體的主體,但一般不用GET方法進行傳輸,而是用POST方法,雖說POST的功能與GET方法很相似,但是POST的主要目的并不是獲取響應的主體內(nèi)容。


使用POST方法的請求~響應的例子
請求 POST /submit.cgi HTTP/1.1 Host:www.dafada.jp Content-Length:1560(1560字節(jié)的數(shù)據(jù))
響應 返回submit.cgi接受數(shù)據(jù)的處理結果

PUT:傳輸文件

PUT方法用來傳輸文件,就像FTP協(xié)議的文件上傳一樣,要求在請求報文的主題中包含文件內(nèi)容,然后保存到請求的URI指定的位置。
但是鑒于HTTP/1.1的PUT方法自身不帶驗證機制,任何人都可以上傳文件,存在安全性問題,因此一般的Web網(wǎng)址不使用該方法。若配合Web應用程序的驗證機制,活架構設計采用REST(Representational State Transfer 表征狀態(tài)轉(zhuǎn)移)標準的同類的Web網(wǎng)址,就可能會開放使用PUT方法


使用PUT方法的請求~響應的例子
請求 PUT /index.html HTTP/1.1 Host:www.dafada.jp Content-Type:text/html Content-Length:1560(1560字節(jié)的數(shù)據(jù))
響應 響應返回狀態(tài)嗎204 Not Content(比如:該html已經(jīng)存在于服務器上)

HEAD:獲取報文首部

HEAD方法和GET方法一樣,只是不返回報文主體部分,用于確認URI的有效性及資源更新的日期時間等


使用HEAD方法的請求~響應的例子
請求 HEAD /index.html HTTP/1.1 Host:www.dafada.jp
響應 返回index.html有關的響應首部

DELETE:刪除文件

DELETE方法用來刪除文件,是與PUT相反的方法,DELETE方法按請求URI刪除指定的資源
但是,HTTP/1.1的DELETE方法本身和PUT方法一樣不帶有驗證機制,所以一般的Web網(wǎng)站也不使用DELETE方法,并配合Web應用緩存層序的驗證機制,或者遵守REST標準時還是有可能會開放使用的。


使用DELETE方法的請求~響應的例子
請求 DELETE /index.html HTTP/1.1 Host:www.dafada.jp
響應 響應返回狀態(tài)碼204 No Content(比如:該html已經(jīng)從該服務器上刪除)

OPTIONS:詢問支持的方法

OPTIONS方法用來查詢針對請求URI指定的資源支持的方法


使用OPTIONS方法的請求~響應的例子
請求 OPTIONS * HTTP/1.1 Host:www.dafada.jp
響應 HTTP/1.1 200OK Allow:GET/POST/HEAD/OPTIONS(返回服務器支持的方法)

TRACE:追中路徑

TRACE方法是讓Web服務器端將之前的請求通信環(huán)回給客戶端的方法
發(fā)送請求的時候,在Max-Frowards首部字段中填入數(shù)值,每經(jīng)過一個服務器端就講該數(shù)字減一,當數(shù)值剛好減為0的時候,就停止繼續(xù)傳輸,最后接受到請求的服務器端則返回狀態(tài)碼200 OK的響應
客戶端通過TRACE方法可以查詢發(fā)送出去的請求是怎樣被加工修改/篡改的,這是因為,請求想要鏈接到源目標服務器可能會通過代理中轉(zhuǎn),TRACE方法就是用來確認連接過程中發(fā)生的一系列操作。
但是TRACE方法本來就不怎么使用,而且加上它容易引發(fā)XST(Cross-Site Tracing 跨站追中)攻擊,通常就更不會用到了


使用TRACE方法的請求~響應的例子
請求 TRACE /HTTP/1.1 Host:www.dafada.jp Max-Forwards:2
響應 HTTP/1.1 200OK Content-Type:message/http Content-Length:1024 TRACE /HTTP/1.1 Host:www.dafada.jp Max-Forwards:2(返回響應包含請求內(nèi)容)

CONNECT:要求用隧道協(xié)議連接代理

CONNECT方法要求在于代理服務器通信時候建立隧道,實現(xiàn)用隧道協(xié)議進行TCP通信,主要使用SSL(Secure Sockets Layer,安全套接層)和TLS(Transport Layer Security 傳輸層安全)協(xié)議把通信內(nèi)容加密后經(jīng)網(wǎng)絡隧道傳輸


使用CONNECT方法的請求~響應的例子
請求 CONNECT proxy.hackr.jp:8080 /HTTP/1.1 Host:www.dafada.jp
響應 HTTP/1.1 200OK (之后進入網(wǎng)絡隧道)
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容