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”。.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