HTTP中GET和POST的区别

来源:互联网 发布:garageband软件下载 编辑:程序博客网 时间:2024/06/04 19:34

原文链接:http://blog.csdn.net/gideal_wang/article/details/4316691
1、一个URL地址,它用于描述一个网络上的资源,而HTTP定义了浏览器和服务器交互的4种基本方法:GET,POST,PUT,DELETE就对应着对这个资源的查 ,改 ,增 ,删 4个操作。GET一般用于获取/查询 资源信息,而POST一般用于更新资源信息

2、虽然4种基本的方法各自有着不同的用法,但是但在实际的做的时候,很多人却没有按照HTTP规范去做,导致这个问题的原因有很多,比如说:

  a.很多人贪方便,更新资源时用了GET,因为用POST必须要到FORM(表单),这样会麻烦一点。
  b.对资源的增,删,改,查操作,其实都可以通过GET/POST完成,不需要用到PUT和DELETE。
  c.另外一个是,早期的但是Web MVC框架设计者们并没有有意识地将URL当作抽象的资源来看待和设计。
    d.还有一个较为严重的问题是传统的Web MVC框架基本上都只支持GET和POST两种HTTP方法,而不支持PUT和DELETE方法。

3、HTTP请求的格式
   <request line>
   <headers>
   <blank line>
   <request-body>
   在HTTP请求中,第一行必须是一个请求行(request line),用来说明请求类型、要访问的资源以及使用的HTTP版本。
   紧接着是一个首部(header)小节,用来说明服务器要使用的附加信息。
   在首部之后是一个空行,再此之后可以添加任意的其他数据(称之为主体(body))。

示例:
   GET请求:
   GET /DEMOWebServices2.8/Service.asmx/CancelOrder?UserID=string&PWD=string&OrderConfirmation=string HTTP/1.1
   Host: api.efxnow.com
  
   POST请求:
   POST /DEMOWebServices2.8/Service.asmx/CancelOrder HTTP/1.1
   Host: api.efxnow.com
   Content-Type: application/x-www-form-urlencoded
   Content-Length: length
  
   UserID=string&PWD=string&OrderConfirmation=string
  

   GET提交,请求的数据会附在URL之后(就是把数据放置在请求行(request line)中),以?分割URL和传输数据,多个参数用&连接;
   POST提交:把提交的数据放置在是HTTP包的包体中。
  
4、HTTP返回的格式 
   status line>
   <headers>
   <blank line>
   [<response-body>]
两个请求的返回
   HTTP/1.1 200 OK
   Content-Type: text/xml; charset=utf-8
   Content-Length: length
  
示例:
   <?xml version="1.0" encoding="utf-8"?>
   <objPlaceOrderResponse xmlns="https://api.efxnow.com/webservices2.3">
   <Success>boolean</Success>
   <ErrorDescription>string</ErrorDescription>
   <ErrorNumber>int</ErrorNumber>
   <CustomerOrderReference>long</CustomerOrderReference>
   <OrderConfirmation>string</OrderConfirmation>
   <CustomerDealRef>string</CustomerDealRef>
   </objPlaceOrderResponse>
  
   在响应中唯一真正的区别在于第一行中用状态信息代替了请求信息。状态行(status line)通过提供一个状态码来说明所请求的资源情况。
 
   常见的返回码: 
    200 (OK): 找到了该资源,并且一切正常。
 304 (NOT MODIFIED): 该资源在上次请求之后没有任何修改。这通常用于浏览器的缓存机制。
 401 (UNAUTHORIZED): 客户端无权访问该资源。这通常会使得浏览器要求用户输入用户名和密码,以登录到服务器。
 403 (FORBIDDEN): 客户端未能获得授权。这通常是在401之后输入了不正确的用户名或密码。
 404 (NOT FOUND): 在指定的位置不存在所申请的资源。
  

0 0
原创粉丝点击