http协议支持的6种请求格式

来源:互联网 发布:英魂之刃开挂软件 编辑:程序博客网 时间:2024/06/06 00:31

标准Http协议支持六种请求方法,即:
  1,GET
  2,HEAD
  3,PUT
  4,DELETE
  5,POST
  6,OPTIONS
1, GET可以说是最常见的了,它本质就是发送一个请求来取得服务器上的某一资源。资源通过一组HTTP头和呈现数据(如HTML文本,或者图片或者视频等)返回给客户端。GET请求中,永远不会包含呈现数据。
GET的url格式: GET 文件名 http版本
如果有参数则格式为 GET 可执行程序名?参数1=a&参数2=b http版本

2POST:向服务器提交数据。这个方法用途广泛,几乎目前所有的提交操作都是靠这个完成。
尽管你可以通过GET方法将数据附加到url中传送给服务器,但在很多情况下使用POST发送数据给服务器更加合适。通过GET发送大量数据是不现实的,它有一定的局限性。

POST请求例子:
POST /abc.txt HTTP/1.1
//请求报头 这里删除了大部分信息,只显示有用的
Content-Length: 43//请求正文里的参数长度,很重要
//空行 接下来是请求正文
first_name=John&last_name=Doe&action=Submit

在解析http请求时,我们必须获得参数长度,这样才能解决粘包问题。

3,PUT:这个方法比较少见。HTML表单也不支持这个。本质上来讲, PUT和POST极为相似,都是向服务器发送数据,但它们之间有一个重要区别,PUT通常指定了资源的存放位置,而POST则没有,POST的数据存放位置由服务器自己决定。举个例子:如一个用于提交博文的URL,/addBlog。如果用PUT,则提交的URL会是像这样的/addBlog/abc123,其中abc123就是这个博文的地址。而如果用POST,则这个地址会在提交后由服务器告知客户端。目前大部分博客都是这样的。显然,PUT和POST用途是不一样的。具体用哪个还取决于当前的业务场景。

总而言之:PUT通常用于向服务器发送请求,如果URI不存在,则要求服务器根据请求创建资源,如果存在,服务器就接受请求内容,并修改URI资源的原始版本。

4,DELETE:删除某一个资源。基本上这个也很少见,不过还是有一些地方比如amazon的S3云服务里面就用的这个方法来删除资源。Delete请求一般会返回3种状态码:

200 (OK) - 删除成功,同时返回已经删除的资源
202 (Accepted) - 删除请求已经接受,但没有被立即执行(资源也许已经被转移到了待删除区域)
204 (No Content) - 删除请求已经被执行,但是没有返回资源(也许是请求删除不存在的资源造成的)

5,OPTIONS:它用于获取当前URL所支持的方法。若请求成功,则它会在HTTP头中包含一个名为Allow的头,值是所支持的方法,如GET, POST。这种方法很少使用。

6,HEAD:HEAD和GET本质是一样的,区别在于HEAD不含有呈现数据,而仅仅是HTTP头信息。有的人可能觉得这个方法没什么用,其实不是这样的。想象一个业务情景:欲判断某个资源是否存在,我们通常使用GET,但这里用HEAD则意义更加明确。

除了上面之外,还有一些其他方法,如trace,不过都很少使用。

参考文章:
http://blog.csdn.net/afeiluo/article/details/16807047
http://wenda.so.com/q/1479541417722475?src=140
http://www.jb51.net/article/52515.htm
http://blog.csdn.net/kthq/article/details/5157822
http://www.cnblogs.com/yezhenhan/archive/2011/12/28/2305192.html

0 0