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」。.net

  請求頭的Max-Forwards用來請求特定代理。當代理收到一個容許URI轉發的OPTIONS請求,則檢查Max-Forwards。若是Max-Forwards值爲0,則不能轉發該消息;相反,代理會將本身的通訊選項去響應。若是Max-Forwards是正整數,代理轉發請求的時候會將該值減1。若是請求中沒有Max-Forwards,轉發的請求也不會有。代理

簡而言之

  OPTIONS請求方法的主要用途有兩個:blog

  一、獲取服務器支持的HTTP請求方法;也是黑客常常使用的方法。token

  二、用來檢查服務器的性能。例如:AJAX進行跨域請求時的預檢,須要向另一個域名的資源發送一個HTTP OPTIONS請求頭,用以判斷實際發送的請求是否安全。

 

 

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

相關文章
相關標籤/搜索