HTTP的OPTIONS請求方法


  HTTP請求方法並不是只有GET和POST,只是最常用的。據RFC2616標准(現行的HTTP/1.1)得知,通常有以下8種方法:OPTIONSGETHEAD、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請求頭,用以判斷實際發送的請求是否安全。

 

 

轉載來源:https://blog.csdn.net/leikezhu1981/article/details/7402272

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM