【转载】HTTP和SOAP完全就是两个不同的协议

【转载】HTTP和SOAP完全就是两个不同的协议

http:是一个客户端和服务器端请求和应答的标准(TCP)。

http协议其目的是为了提供一种发布和接收htttp页面的方法

http协议的客户端与服务器的交互:由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如”HTTP/1.1 200 OK”,和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。

soap 协议:它描述了一种在分散或分布式的环境中如何交换信息的轻量级协议。soap在http协议的基础上,一个基于XML的协议。

不同:都是底层的通信协议,请求包的格式不同而已,soap包是XML格式,http纯文本格式。

关系:SOAP是个通信协议, SOAP在HTTP协议的基础上,把编写成XML的REQUEST参数, 放在HTTP BODY上提交个WEB SERVICE服务器(SERVLET,ASP什么的) 处理完成后,结果也写成XML作为RESPONSE送回用户端, 为了使用户端和WEB SERVICE可以相互对应,可以使用WSDL作为这种通信方式的描述文件,利用WSDL工具可以自动生成WS和用户端的框架文件,SOAP具备把复杂对象序列化捆绑到XML里去的能力。

 

【转自】http://www.cnblogs.com/Ilin631/archive/2011/05/25/2056820.html

 

下面这个解释的很透彻

HTTP只负责把数据传送过去,不会管这个数据是XML、HTML、图片、文本文件或者别的什么。而SOAP协议则定义了怎么把一个对象变成XML文本,在远程如何调用等,怎么能够混为一谈。 

这样说两种协议: 
HTTP就是邮局的协议,他们规定了你的信封要怎么写,要贴多少邮票等。。。。 
SOAP就是你们之间交流的协议,负责把你所需要表达的意思写在信纸上,同时也负责让对方能够看得懂你的信。

Web service一般就是用SOAP协议通过HTTP来调用它,其实他就是一个WSDL文档,客户都可以阅读WSDL文档来用这个Web service。客户根据WSDL描述文档,会生成一个SOAP请求消息。Web service都是放在Web服务器 (如IIS) 后面的,客户生成的SOAP请求会被嵌入在一个HTTP POST请求中,发送到Web服务器来。Web服务器再把这些请求转发给Web service请求处理器。请求处理器的作用在于,解析收到的SOAP请求,调用Web service,然后再生成相应的SOAP应答。Web服务器得到SOAP应答后,会再通过HTTP应答的方式把它送回到客户端。

webService协议主要包括两个方面:传输协议和数据表示,关于传输协议可以是http或其他,数据表示也可以是键值对、xml或其他,只不过现在通用的是http+soap,当然其他的也可以,不知道这样理解对不对?

SOAP简单的理解,就是这样的一个开放协议SOAP=RPC+HTTP+XML:采用HTTP作为底层通讯协议;RPC作为一致性的调用途径,XML作为数据传送的格式,允许服务提供者和服务客户经过防火墙在INTERNET进行通讯交互。

 

【转自】http://blog.csdn.net/21aspnet/article/details/1536824

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119419.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • NIO Reactor模型

    NIO Reactor模型NIOReactor模型Reactor三种模型单线程模型多线程模型主从多线程模型Netty线程模型1线程组2ChannelPipeline3异步非阻塞Reactor模式是基于事件驱动开发的,服务端程序处理传入多路请求,并将它们同步分派给请求对应的处理线程,Reactor模式也叫Dispatcher模式,即I/O多路复用统一监听事件,收到事件后分发(Dispatch给某进程),这是编写高性能网络服务器的必备技术之一。Reactor模式以NIO为底层支持,核心组成部分包括Reactor和Ha

    2025年6月6日
    0
  • go语言环境搭建_ui设计和web前端哪个好就业

    go语言环境搭建_ui设计和web前端哪个好就业下载安装下载地址Go官网下载地址:https://golang.org/dl/Go官方镜像站(推荐):https://golang.google.cn/dl/验证安装打开命令行输入goversion命令,查看安装的Go版本。(如没有显示版本则需配置环境变量)配置环境变量变量名GOPATH:变量值go的安装目录变量名Path:变量值go\bin的安装目录安装开发工具vscode官方下载地址设置代理,安装go扩展查看代理GOPROXYgoenv官方操作说明设置

    2022年10月12日
    0
  • Struts2框架–学习笔记(上):搭建struts2工程、struts2基本概念、struts2对页面数据的操作

    Struts2框架–学习笔记(上):搭建struts2工程、struts2基本概念、struts2对页面数据的操作

    2021年9月26日
    40
  • deviceiocontrol true什么意思_device driver service

    deviceiocontrol true什么意思_device driver service与驱动程序通信的函数,除了ReadFile和WriteFile函数还有DeviceIoControl函数,而且DeviceIoControl函数那是相当的彪悍。因为它可以自定义控制码,你只要在IRP_MJ_DEVICE_CONTROL对应的派遣函数中读取控制码,然后针对控制码,你就可以实现自定义的功能了。 函数原型:BOOLWINAPIDeviceIoControl( __

    2022年9月7日
    0
  • 控件anchor和dock属性_控件的常用属性

    控件anchor和dock属性_控件的常用属性在设计窗体时,这两个属性特别有用,如果用户认为改变窗口的大小并不容易,应确保窗口看起来显示的不是那么乱,并编写很多代码来实现这个效果,许多程序解决这个问题都是禁止给窗口重新设置大小这显然是解决问题的最简单的方法,但不是最好的方法,因此引入了Anchor和Dock属性。1、Anchor属性用于指定在用户重新设置窗口的大小时控件应该如何响应,可以指定如果控件重新设置了大小,就根据控件的边界去锁

    2022年9月11日
    0
  • python常用库安装

    python常用库安装python常用库安装

    2022年4月24日
    154

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号