• 转-浅谈HTTP-GET 、 HTTP-POST 和SOAP


    HTTP-GET 和 HTTP-POST

    HTTP-GET和HTTP-POST是标准协议,他们使用HTTP(超文本传输协议)谓词(谓词是指条件表达式的求值返回真或假的过程。)对参数金星编码并将参数作为名称/值对传递,还使用关联的请求语义。每个协议都包含一系列HTTP请求标头,HTTP请求标头及其他一些信息定义客户端向服务器请求哪些内容,哪个服务器用一系列HTTP响应标头和所请求的数据进行响应。

    HTTP-GET 使用 MIME 类型 application/x-www-form-urlencoded(将追加到处理请求的服务器的 URL 中)以 URL 编码文本的形式传递其参数。 URL 编码是一种字符编码形式,可确保传递的参数中包含一致性文本,例如将空格编码为 %20,其它符号转换为%XX,其中XX为该符号以16进制表示的ASCII(或ISO Latin-1)值。 追加的参数也称为查询字符串。

    与 HTTP-GET 类似,HTTP-POST 参数也是 URL 编码的。 但是,名称/值对是在实际的 HTTP 请求消息内部传递的,而不是作为 URL 的一部分进行传递。

    Get 和 Post 的区别两点:

    get方式:以URL字串本身传递数据参数,在服务器端可以从'QUERY_STRING'这个变量中直接读取,效率较高,但缺乏安全性,也无法来处理复杂的数据。
    post方式:就传输方式讲参数会被打包在数据包中传输,从CONTENT_LENGTH这个环境变量中读取,便于传送较大一些的数据,同时因为不暴露数据在浏览器的地址栏中,安全性相对较高,但这样的处理效率会受到影响。
     

    表单提交中get和post方式的区别归纳如下几点:

    1.get是从服务器上查询/获取数据,post是向服务器传输数据。

    2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

    3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。

    4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。

    5. get安全性非常低,post安全性较高。

    6. get是Form的默认方法。

    7.一般静态的文件不允许执行POST动作的,如果是动态语言,如aspx文件,一般都是允许post和get的,则应该是都可以返回正确的值

    SOAP

    SOAP是一种简单基于xml的轻量协议,用户web上交换结构化信息和类型信息。SOAP 的总体设计目标是使其尽量简单,并提供最低限度的功能。 该协议定义一个不包含应用程序或传输语义的消息传递框架。 因此,该协议是模块化的且高度可扩展。

    通过在标准传输协议之上传输,SOAP 可以使用 Internet 的现有开放式体系结构,并且容易被能够支持最基本的 Internet 标准的任意系统所接受。 可以将支持符合 SOAP 的 XML Web services 所必需的基础结构看作是一种非常简单且强大的基础结构,因为它向 Internet 的现有基础结构添加相对较少的内容,但仍然有助于对用 SOAP 生成的服务进行通用访问。

    SOAP 协议规范包括四个主要部分。

    第一部分定义用于封装数据的必需的可扩展信封。 SOAP 信封定义 SOAP 消息,是 SOAP 消息处理程序之间的基本交换单位。 这是该规范中唯一的一个必需部分。

    SOAP 协议规范的第二部分定义了可选的数据编码规则和一个统一模型,数据编码规则用来表示应用程序定义的数据和有向图,统一模型用来序列化非语法数据模型。

    第三部分定义 RPC 样式(请求/响应)消息交换模式。 每个 SOAP 消息都是单向传输。 虽然 SOAP 的根位于 RPC 中,但它并不局限于成为一种请求/响应机制。 XML Web services 通常组合 SOAP 消息以实现这类模式,但对于 SOAP 而言消息交换模式并不是必需的,并且这一部分规范也是可选的。

    规范的第四部分定义 SOAP 与 HTTP 之间的绑定。 但是,这部分也是可选的。 可以将 SOAP 与任何可以传输 SOAP 信封的传输协议或机制结合使用,其中包括 SMTP、FTP,甚至还包括软盘。

    有关 SOAP 规范,请参见 W3C 网站 (http://www.w3.org/TR/ soap)。

    SOAP实例

    SOAP 请求:

    
    
    复制代码
    POST /InStock HTTP/1.1
    Host: www.example.org
    Content-Type: application/soap+xml; charset=utf-8
    Content-Length: nnn

    <?xml version="1.0"?>
    <soap:Envelope
    xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
    soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

    <soap:Body xmlns:m="http://www.example.org/stock">
    <m:GetStockPrice>
    <m:StockName>IBM</m:StockName>
    </m:GetStockPrice>
    </soap:Body>

    </soap:Envelope>
    复制代码

    SOAP 响应:

    
    
    复制代码
    HTTP/1.1 200 OK
    Content-Type: application/soap+xml; charset=utf-8
    Content-Length: nnn

    <?xml version="1.0"?>
    <soap:Envelope
    xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
    soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

    <soap:Body xmlns:m="http://www.example.org/stock">
    <m:GetStockPriceResponse>
    <m:Price>34.5</m:Price>
    </m:GetStockPriceResponse>
    </soap:Body>

    </soap:Envelope>
    复制代码
    转自http://www.cnblogs.com/lema/archive/2012/02/23/2364365.html
  • 相关阅读:
    [App Store Connect帮助]七、在 App Store 上发行(3.2)提交至“App 审核”:查看 App 状态历史记录
    [App Store Connect帮助]七、在 App Store 上发行(3.1)提交至“App 审核”:提交 App 以供审核
    (1.2)DML增强功能-4大排名函数与top ties/tablesample
    (1.1)DML增强功能-CTE
    CTE的妙用
    sql server 统计信息
    oracle高水位问题
    查看慢查询语句
    关于uuid与自增列的选择
    sql server学习路径地址
  • 原文地址:https://www.cnblogs.com/JuneZhang/p/4643155.html
Copyright © 2020-2023  润新知