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
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协议的请求和响应格式
- http协议,请求报文,响应报文格式思维导图
- HTTP协议请求信息和响应信息的格式(一)
- HTTP协议支持的6种请求方式
- HTTP协议——请求格式及方法
- HTTP协议请求与响应格式内容详解
- Unity3D 网络通信_HTTP协议、处理Json格式返回值、请求加Oauth
- 扩展SpringMVC以支持绑定JSON格式的请求参数
- 解决HttpClient交付json格式请求的中文支持
- 解决layui中table异步数据请求不支持自定义返回数据格式的问题
- 前端缓存支持的文件格式及请求方式
- 扩展SpringMVC以支持绑定JSON格式的请求参数
- 扩展SpringMVC以支持绑定JSON格式的请求参数
- photography图片资源支持json格式,Ajax请求
- rtsp 客户端请求视频的时候支持输入用户名和密码的格式
- http协议通信过程和请求格式
- HTTP协议请求和响应格式——基于文本行的协议
- 扩展SpringMVC以支持绑定JSON格式的请求参数
- HTTP协议请求与回应报文格式总结
- Unity3D 网络通信_HTTP协议、处理Json格式返回值、请求加Oauth