您的位置:首页 > 理论基础 > 计算机网络

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

2017-04-19 11:17 281 查看
标准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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  http协议