WebAPI和WebService的区别
webapi⽤的是http协议,webservice⽤的是soap协议
webapi⽆状态,相对webservice更轻量级。webapi⽀持如get,post等http操作
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⾥去的能⼒。
WCF和WEB API我该选择哪个?
1、当你想创建⼀个⽀持消息、消息队列、双⼯通信的服务时,你应该选择WCF
2、当你想创建⼀个服务,可以⽤更快速的传输通道时,像TCP、Named Pipes或者甚⾄是UDP(在WCF4.5中),在其他传输通道不可⽤的时候也可以⽀持HTTP。
3、当你想创建⼀个基于HTTP的⾯向资源的服务并且可以使⽤HTTP的全部特征时(⽐如URIs、request/response头,缓存,版本控制,多种内容格式),你应该选择Web API
4、当你想让你的服务⽤于浏览器、⼿机、iPhone和平板电脑时,你应该选择Web API
SOAP:Simple Object Access Protocol
简单对象访问协议(SOAP)是⼀种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特⽹协议和格式结合使⽤,包括超⽂本传输协议(HTTP),简单邮件传输协议(SMTP),多⽤途⽹际邮件扩充协议(MIME)。它还⽀持从消息系统到远程过程调⽤(RPC)等⼤量的应⽤程序。
HTTP协议:应⽤层
TCP协议:传输层
HTTP协议详解之响应篇
在接收和解释请求消息后,服务器返回⼀个HTTP响应消息。
HTTP响应也是由三个部分组成,分别是:状态⾏、消息报头、响应正⽂
1、状态⾏格式如下:
HTTP-Version Status-Code Reason-Phrase CRLF
其中,HTTP-Version表⽰服务器HTTP协议的版本;Status-Code表⽰服务器发回的响应状态代码;Reason-Phrase表⽰状态代码的⽂本描述。
状态代码有三位数字组成,第⼀个数字定义了响应的类别,且有五种可能取值:
调用webservice服务1xx:指⽰信息–表⽰请求已接收,继续处理
2xx:成功–表⽰请求已被成功接收、理解、接受
3xx:重定向–要完成请求必须进⾏更进⼀步的操作
4xx:客户端错误–请求有语法错误或请求⽆法实现
5xx:服务器端错误–服务器未能实现合法的请求
常见状态代码、状态描述、说明:
200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域⼀起使⽤
403 Forbidden //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在,eg:输⼊了错误的URL
500 Internal Server Error //服务器发⽣不可预期的错误
503 Server Unavailable //服务器当前不能处理客户端的请求,⼀段时间后可能恢复正常
eg:HTTP/1.1 200 OK (CRLF)
2、响应报头后述
3、响应正⽂就是服务器返回的资源的内容
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论