• 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表示状态代码的文本描述。 
    状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值: 
    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、响应正文就是服务器返回的资源的内容

    转载 http://blog.csdn.net/cysong168/article/details/51433986

  • 相关阅读:
    aptget 的使用
    NetScaler
    This Android SDK requires Android Developer Toolkit version 10.0.0 or above
    创建menu的时候为什么要用Menu.FIRST常量?
    SQLServer中char、varchar、nchar、nvarchar的区别
    HTTP响应头信息和请求头信息详解
    第十一章 常见字词误用的情形 《英语科技写作(文法与修辞原则)》by 方克涛
    Random类不能产生随机数的情况测试
    将Web Services封装到一个dll
    在DataTable中查找
  • 原文地址:https://www.cnblogs.com/liufengs/p/7698303.html
Copyright © 2020-2023  润新知