標籤:head name 沒有 地方 測試 刪除 部分 緩衝 自己
HTTP要求方法並不是只有GET和POST,只是最常用的。據RFC2616標準(現行的HTTP/1.1)得知,通常有以下8種方法:OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE和CONNECT。總結:
OPTIONS:請求旨在發送一種“探測”請求以確定針對某個目標地址的請求必須具有怎樣的約束(比如應該採用怎樣的HTTP方法以及自訂的請求前序),然後根據其約束髮送真正的請求。比如針對“跨域資源”的預檢(Preflight)請求採用的HTTP方法就是OPTIONS。
官方定義
OPTIONS方法是用於請求獲得由Request-URI標識的資源在請求/響應的通訊過程中可以使用的功能選項。通過這個方法,用戶端可以在採取具體資源請求之前,決定對該資源採取何種必要措施,或者瞭解伺服器的效能。
該要求方法的響應不能緩衝。
如果這個OPTIONS請求包含一個本文(有Content-Length或Transfer-Encoding存在),則必須有Content-Type來指定媒體類型。雖然規範裡沒有定義這種本文的用法,但是HTTP將來的擴充可能會用它來查詢服務器上更詳細的資訊。不支援該擴充的伺服器可以忽略該請求本文。
如果該URI是一個星號(“*”),OPTIONS請求將試圖應用於伺服器,而不是某個指定資源。由於伺服器的通訊選項通常依賴於資源,所以此“*”請求只能作為“ping”或者“no-op”方法;或者用來測試伺服器的效能。例如,用來測試HTTP/1.1代理。
如果該URI不是星號,則只能用來擷取該資源通訊中可用的選項。
得到的200響應應該包含一個頭域,指明伺服器實現的和適用於該資源的可選特徵(如:Allow),可能還包括該規範尚未定義的擴充。如果有響應本文,則應包含關於通訊選項的資訊。本規範沒有定義該本文格式,但可能在HTTO將來的擴充中定義。可以利用內容協商來選擇合適的響應格式。如果沒有響應本文,響應必須包含Content-Length,並且值為“0”。
要求標頭的Max-Forwards用來請求特定代理。當代理收到一個允許URI轉寄的OPTIONS請求,則檢查Max-Forwards。如果Max-Forwards值為0,則不能轉寄該訊息;相反,代理會將自己的通訊選項去響應。如果Max-Forwards是正整數,代理轉寄請求的時候會將該值減1。如果請求中沒有Max-Forwards,轉寄的請求也不會有。
簡而言之
OPTIONS要求方法的主要用途有兩個:
1、擷取伺服器支援的HTTP要求方法;也是駭客經常使用的方法。
2、用來檢查伺服器的效能。例如:AJAX進行跨域請求時的預檢,需要向另外一個網域名稱的資源發送一個HTTP OPTIONS要求標頭,用以判斷實際發送的請求是否安全。
The DELETE Method
HTTP提供了一個與PUT方法對應的DELETE方法。一個DELETE請求將需要從Web伺服器刪除的內容指定為請求行中的資源部分。
DELETE方法唯一有趣的地方在於當你接收了一個標識為200 OK的響應的時候,那並不意味著指定的資源已經被刪除了。那僅僅說明伺服器接收到了刪除資源的命令。這一例外允許了出於安全考慮的人為的幹預
(轉)HTTP的要求方法OPTIONS