http 中定义的八种请求的介绍


在http1.1协议中,共定义了8种可以向服务器发起的请求(这些请求也叫做方法或动作),本文对这八种请求做出简要的介绍:

1、PUT:put的本义是推送

这个请求的含义就是推送某个资源到服务器,相当于是上传。

2、POST:post可以理解为提交

这个请求会将客户端的资源提交到服务器上,通过URI 标识,告诉服务器要提交什么资源,如果资源不存在,那么就会新增,如果已经存在了,那么就会覆盖。

3、DELETE:

这个请求会删除服务端的某个资源。

4、GET:

这是一个向服务端资源的一个请求,他通过将所要资源的标识,如用户名、关键字(admin、keyword)放在url中(所以这个请求不安全),一并传送给服务器,然后服务器会根据传入参数返回具体的结果(如请求错误、请求的具体资源)

5、HEAD:

这个请求与GET请求是一样的,都是通过传入参数,要求返回指定的结果。不同之处在于,HEAD只要返回报文的头部就可以,不需要返回全部信息.这个方法主要用于查看资源是否存在,同时是并不关心资源的具体内容。

6、TRACE:trace可以理解为跟踪

这是一个将服务器所收到请求回显给客户端的请求,主要用于测试或诊断。

 

7、OPTIONS:option的本义是选择、选项。

这个请求的意义是:返回对于指定资源,我们可以使用的请求类型。

这个方法在正常工作中使用的比较少,它一般用途是,我们在正式请求资源之前,先看看对于资源都可以使用那些请求,然后再做出具体的请求。利用这个特性我们也可以查看服务器的性能。

对于我们具体请求哪个资源是通过URI来标识的。

发起请求后,服务器会返回一个带有"Allow"的头,在正文中会找到该资源对应可以使用的方法。

当这个URI我们用'*',此时我们请求的就是整个服务器,而并非某一个具体的资源。

此时对服务器发起OPTIONS请求,相当于是ping,根据对服务器收发包的情况就可以分析出服务器的性能了。

8、CONNECT请求

HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接(经由非加密的HTTP代理服务器)。 


注意:这些请求都是区分大小写的,当我们针对某种资源发起的请求,并不被该资源所支持时,服务器会返回一个 405(该请求不被允许)的错误。

当我们发起的请求,服务器不支持,或不认识时,会返回一个501的错误码(该请求未被实现)