HTTP的请求方法OPTIONS

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请求头,用以判断实际发送的请求是否安全。

 

 

 

 

 

The DELETE Method

HTTP提供了一个与PUT方法对应的DELETE方法。一个DELETE请求将需要从Web服务器删除的内容指定为请求行中的资源部分。

DELETE方法唯一有趣的地方在于当你接收了一个标识为200 OK的响应的时候,那并不意味着指定的资源已经被删除了。那仅仅说明服务器接收到了删除资源的命令。这一例外允许了出于安全考虑的人为的干预

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113673.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • centos7 socks5代理_ssh代理上网

    centos7 socks5代理_ssh代理上网关于SOCKS5  SOCKS5是一个代理协议,它在使用TCP/IP协议通讯的前端机器和服务器机器之间扮演一个中介角色,使得内部网中的前端机器变得能够访问Internet网中的服务器,或者使通讯更加安全。   正常情况下客户端和服务端的通信:客户端服务端   使用了SOCKS5代理后的通讯:客户端代理服务器服务端#安装ss5依赖yuminstallgcc

    2022年9月29日
    2
  • Tomcat闪退解决方案[通俗易懂]

    Tomcat闪退解决方案[通俗易懂]问题Tomcat启动后闪退,tomcat可以通过命令行startup或直接双击startup.bat执行通常发生闪退时,我们可以尝试在命令行中执行一下startup命令出现图片上的情况请点击这里↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑如果执行命令行没有明确信息提示,如下图这种情况请继续往下看~o.0!!!解决方案上图情况显示一切正常,就是说所有的tomcat,jdk,jre的配置都没有问题!注意这里的没有问题指的是你并没有少配置什么东西,仅仅是不缺少基础的配置接下来我们

    2022年5月30日
    31
  • 正确的-配置Tomcat环境变量

    正确的-配置Tomcat环境变量跟着配就完事,超级正确

    2022年5月27日
    42
  • redis实现订单支付(延时队列)

    redis实现订单支付(延时队列)在电商网站中,我们经常会遇到订单支付,退货时间问题,那么怎么去处理那?设置定时任务,使用liunx中的at定时就可以轻松搞定,这里不在过多的研究使用redis延时队列:redis有一个数据类型,Sset叫做可以排序的集合(有序集合),为什么会是有序的那,是因为它与set相比有个属性叫score,sset就是这个属性(字段)来排序的,那如何实现延时队列那?实现方法:利用zset保存队列信息,score按照时间戳存放,再启动一个任务(线程),一直扫这个zset,判断当前时间和队列中的时间大小信息,如

    2022年6月5日
    160
  • Ubuntu安装Source Insight导入Android源码并设置仿IDEA主题Darcula「建议收藏」

    Ubuntu安装Source Insight导入Android源码并设置仿IDEA主题Darcula「建议收藏」预览先来张图给大家感受下效果,然后我再慢慢道来过程,保证你避免每一步的坑。我们要做什么1、由于SourceInsight(以下简称SI)是Windows应用,所以不能直接安装在Linux上,于是我们要借助wine,所以第一步会介绍wine的安装过程和坑;2、介绍SI在Linux(以Ubuntu16.04为例)上的安装,并介绍如何导入免费证书(个人建议大家有条件还是付费支持一下SI这个…

    2022年6月27日
    56
  • 在ubuntu系统下安装python

    在ubuntu系统下安装python

    2021年10月6日
    72

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号