HTTP请求方法

来源:互联网 发布:unity3d教程百度云 编辑:程序博客网 时间:2024/05/18 03:23

TTP请求方法并不是只有GET和POST,只是最常用的。通常有以下8种方法:OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE和CONNECT。

GET

   主要用于向指定的URL请求资源,可以带参数也可以不带参数。带参数时,参数是明文传递,在浏览器的地址栏中可以看到参数名及参数值。   get安全性不高,所以常应用于安全性要求低的场合,比如登录后请求数据。

经常使用GET提交方法,因为通过GET来提交表单没有任何负面影响并且是幂等的。(HTTP GET方法用于获取资源,不应有副作用,所以是幂等的。它不会改变资源的状态,不论调用一次还是N次都没有副作用,虽然获得的结果是不同的)
Http Get方法提交的数据大小长度并没有限制,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。最小的是IE浏览器,它对URL的最大限制为2083个字符。

POST

主要是向指定的URL(URI)提交数据, 通常用于表单发送,psot所传递的数据或参数不是已明文形式存在的,而是封装后的。因此相对安全系数高,像注册、登录、提交表单都是用该方法实现的。

理论上讲,POST是没有大小限制的。HTTP协议规范也没有进行大小限制,起限制作用的是服务器的处理程序的处理能力。
Tomcat下默认POST大小的限制为2M。

PUT

put功能跟post相似,主要区别在于put方法是幂等方法, post非幂等方法。如果让一个不是幂等的服务可以用幂等的方法访问,那么服务器的状态可能就会被该幂等的服务所修改。

DELETE

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

返回的状态
1. 200:表示删除请求被成功执行,返回被删除的资源
2. 202:表示删除请求被接受,但还没有被执行
3. 204:表示删除请求被执行,但没有返回被删除的资源

HEAD方法允许客户端仅向服务器请求某个资源的响应头,而不要真正的下载该资源本身。服务器返回的响应头应该和客户端使用GET方法请求该资源时返回的请求头相同。比起GET方法,只是省略了响应体。这种方法可以用来获取请求中隐含的元信息,而不用传输实体本身。

因为一个HEAD请求的响应可被缓存,响应中的信息可能用来更新之前缓存的实体。如果当前实体跟缓存实体的阈值不同(可通过Content-Length、Content-MD5、ETag或Last-Modified的变化来表明),那么这个缓存就被视为过期了。所以head方法的主要作用:
1、只请求资源的首部;
2、检查超链接的有效性;
3、检查网页是否被修改;
4、多用于自动搜索机器人获取网页的标志信息,获取rss种子信息,或者传递安全认证信息等。

OPTIONS

options方法是用于请求获得由Request-URI标识的资源在请求/响应的通信过程中可以使用的功能选项。

主要用于
1. 获取服务器支持的HTTP请求方法;也是黑客经常使用的方法。
2. 用来检查服务器的性能。例如:AJAX进行跨域请求时的预检,需要向另外一个域名的资源发送一个HTTP OPTIONS请求头,用以判断实际发送的请求是否安全。
3. 也可以利用向web服务器发送‘*’的请求来测试服务器的功能性。

TRACE

trace是让我们的web服务器端将客户端的所有请求信息返回给客户端的方法,该方法多见于debug的需求

CONNECT

CONNECT这个方法的作用就是把服务器作为跳板,让服务器代替用户去访问其它网页,之后把数据原原本本的返回给用户。这样用户就可以访问到一些只有服务器上才能访问到的网站了,这就是HTTP代理。

要是使用CONNECT方法,首先要让服务器监听一个端口来接收CONNECT方法的请求。在服务器监听了端口以后就是客户端的请求,我们必须告诉代理服务器我们想要访问哪个Internet服务器。假如我想通过代理某个ip,我就需要建立一个TCP连接,连接到服务器监听的那个端口,然后给服务器发送一个HTTP头。

0 0