zoukankan      html  css  js  c++  java
  • HTTP POST和GET的区别

    1、HTTP 只有POST和GET 两种命令模式;

    2、POST是被设计用来向上放东西的,而GET是被设计用来从服务器取东西的,GET也能够向服务器传送较少的数据,而Get之所以也能传送数据,只是用来设计告诉服务器,你到底需要什么样的数据.POST的信息作为HTTP 请求的内容,而GET是在HTTP 头部传输的;

    3、POST与GET在HTTP 中传送的方式不同,GET的参数是在HTTP 的头部传送的,而Post的数据则是在HTTP 请求的内容里传送;

    4、POST传输数据时,不需要在URL中显示出来,而GET方法要在URL中显示;

    5、GET方法由于受到URL长度的限制,只能传递大约1024字节;POST传输的数据量大,可以达到2M,而根据微软方面的说法,微软对用 Request.Form() 可接收的最大数据有限制,IIS 4 中为 80 KB 字节,IIS 5 中为 100 KB 字节;

    6、SOAP是依赖于HTTP POST模式实现的;

    例子:

    HTTP GET

    发送

    GET /DEMOWebServices2.8/Service.asmx/CancelOrder?UserID=string&PWD=string&OrderConfirmation=string HTTP/1.1
    Host: api.efxnow.com

    回复

    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>

    HTTP 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

    回复

    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>

    SOAP 1.2

    发送

    POST /DEMOWebServices2.8/Service.asmx HTTP/1.1
    Host: api.efxnow.com
    Content-Type: application/soap+xml; charset=utf-8
    Content-Length: length

    <?xml version="1.0" encoding="utf-8"?>
    <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
      <soap12:Body>
        <CancelOrder xmlns="https://api.efxnow.com/webservices2.3">
          <UserID>string</UserID>
          <PWD>string</PWD>
          <OrderConfirmation>string</OrderConfirmation>
        </CancelOrder>
      </soap12:Body>
    </soap12:Envelope>

    回复

    HTTP/1.1 200 OK
    Content-Type: application/soap+xml; charset=utf-8
    Content-Length: length

    <?xml version="1.0" encoding="utf-8"?>
    <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
      <soap12:Body>
        <CancelOrderResponse xmlns="https://api.efxnow.com/webservices2.3">
          <CancelOrderResult>
            <Success>boolean</Success>
            <ErrorDescription>string</ErrorDescription>
            <ErrorNumber>int</ErrorNumber>
            <CustomerOrderReference>long</CustomerOrderReference>
            <OrderConfirmation>string</OrderConfirmation>
            <CustomerDealRef>string</CustomerDealRef>
          </CancelOrderResult>
        </CancelOrderResponse>
      </soap12:Body>
    </soap12:Envelope>

    POST的安全性要比GET的安全性高。注意:这里所说的安全性和上面GET提到的“安全”不是同个概念。上面“安全”的含义仅仅是不作数据修改,而这里安全的含义是真正的Security的含义,比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为

    (1)登录页面有可能被浏览器缓存,

    (2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site request forgery攻击。   

    总结一下,Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求,在FORM(表单)中,Method默认为"GET",实质上,GET和POST只是发送机制不同,并不是一个取一个发

  • 相关阅读:
    WPF中C#代码触发鼠标点击事件
    PHP代码实现强制换行
    C#中判断系统的架构(32位,还是64位)
    WPF的System.Windows.Threading.DispatcherTimer的使用(每隔一定的时间重复做某事)
    LINQ to Objects系列(2)两种查询语法介绍
    LINQ to Objects系列(1)相关技术准备
    常用技术社区和网站总结
    .net项目技术选型总结
    java与.net比较学习系列(7) 属性
    java与.net比较学习系列(6) 数组
  • 原文地址:https://www.cnblogs.com/linyawen/p/2224821.html
Copyright © 2011-2022 走看看