1. 程式人生 > >HTTP的請求方法OPTIONS

HTTP的請求方法OPTIONS

size 20px name 允許 trace 一個 delet 資源 獲得

HTTP請求方法並不是只有GET和POST,只是最常用的。據RFC2616標準(現行的HTTP/1.1)得知,通常有以下8種方法:OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE和CONNECT。

官方定義

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