转-浅谈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和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
转-浅谈HTTP-GET 、 HTTP-POST 和SOAP的更多相关文章
- 浅谈 Fragment 生命周期
版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...
- 浅谈 LayoutInflater
浅谈 LayoutInflater 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/View 文中如有纰漏,欢迎大家留言指出. 在 Android 的 ...
- 浅谈Java的throw与throws
转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...
- 浅谈SQL注入风险 - 一个Login拿下Server
前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...
- 浅谈WebService的版本兼容性设计
在现在大型的项目或者软件开发中,一般都会有很多种终端, PC端比如Winform.WebForm,移动端,比如各种Native客户端(iOS, Android, WP),Html5等,我们要满足以上所 ...
- 浅谈angular2+ionic2
浅谈angular2+ionic2 前言: 不要用angular的语法去写angular2,有人说二者就像Java和JavaScript的区别. 1. 项目所用:angular2+ionic2 ...
- iOS开发之浅谈MVVM的架构设计与团队协作
今天写这篇博客是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇博客的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦 ...
- Linux特殊符号浅谈
Linux特殊字符浅谈 我们经常跟键盘上面那些特殊符号比如(?.!.~...)打交道,其实在Linux有其独特的含义,大致可以分为三类:Linux特殊符号.通配符.正则表达式. Linux特殊符号又可 ...
- 浅谈Angular的 $q, defer, promise
浅谈Angular的 $q, defer, promise 时间 2016-01-13 00:28:00 博客园-原创精华区 原文 http://www.cnblogs.com/big-snow/ ...
- 浅谈Hybrid技术的设计与实现第三弹——落地篇
前言 接上文:(阅读本文前,建议阅读前两篇文章先) 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 根据之前的介绍,大家对前端与Native的交互应该有一些简单的认识了,很多 ...
随机推荐
- ios - loadView与viewDidload
从打印结果可以看出,先调用loadView再调用viewDidload 代码: // // ViewController.m // test // // Created by 裴波波 on 16/4/ ...
- Leetcode: Nested List Weight Sum II
Given a nested list of integers, return the sum of all integers in the list weighted by their depth. ...
- JQ的基本架构
Jquery的基本架构 引入 以前学习原生JS然后切换到用JQ的时候总觉得很不习惯,甚至有点排斥用JQ.后来自己写项目一直到公司实习用JQ的这段时间,才深深感受到JQ的强大~JQ不仅做到兼容很多 ...
- 大数的乘法(C++)
题目:POJ 2398 Bull Math Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13410 Accepted: ...
- Scala正则和抽取器:解析方法参数
在<正则表达式基础知识>中概括了正则表达式的基础知识, 本文讲解如何使用正则表达式解析方法参数,从而可以根据 DAO 自动生成 Service. 在做 Java 项目时,常常要根据 DAO ...
- vs2013 类名颜色显示黑色,无法修改
vs2013 类名黑色,修改不起作用,最后找到解决办法. http://stackoverflow.com/questions/10970305/how-can-i-get-user-type-c-s ...
- android权限使用
1.拍照权限使用:
- Linux和Windows下ping命令详解(转:http://linux.chinaitlab.com/command/829332.html)
一.Linux下的ping参数 用途 发送一个回送信号请求给网络主机. 语法 ping [ -d] [ -D ] [ -n ] [ -q ] [ -r] [ -v] [ \ -R ] [ -a add ...
- 20160622001 GridView 删除列 用模板实现删除时提示确认框
GridView在使用CommandField删除时弹出提示框,在.net2005提供的GridView中我们可以直接添加一个 CommandField删除列:<asp:CommandField ...
- easylui datagrid 动态生成列
function load(sdate) { $.getJSON("workorder/statistics.do", { sdate : sdate+'-01' }, funct ...