一、前言
前两天去面试的时候和面试官交流的时候,他说他们用到的技术是WCF REST,小编当时没有接触过,仅仅接触过WCF,但是当小编仔细研究后,做了一个demo后,发现他们大体还是一样的,下面就分析一下REST是什么。
二、什么是REST?
要说REST是什么,就必须先说说提出他的人——Roy Thomas Fielding,Fielding博士是HTTP和URI等Web架构标准的主要设计者,也是Apache HTTP服务器的主要设计者,深入理解REST等Web架构背后的工作原理。
REST(Representational State Transfer)强调概念和层次的划分、无状态和存储这类的东西,这类东西以他们提供的优势,在许多分布式的体系结构中十分常见。优势包括交互性、独立的改进、拦截、改进的拓展性、效率以及总体上的性能。
三、和WCF其他类型的区别
实际上,区别仅仅是客户端访问我们的服务的方式,通常,一个WCF服务支持SOAP、REST和POX。
- WCF SOAP Service
SOAP的核心是一个基于xml的消息结构,由于遵循SOAP协议,所以返回的内容以xml方式组织。并且客户端需要添加服务端引用才能使用,所以给开发和部署带来了不小的麻烦。并且服务过多的时候,生成引用文件会很大,不方便,维护困难。
- WCF RESTful Service
WCF通过WebGetAttribute、WebInvokeAttribute(Get、put、post、delete)、UriTemplate定义的服务的调用方式,通过WebMessageFormat(xml、json)定义传输格式。WCF RESTful Srevice完全使用Http协议来进行,并且无需添加客户端引用,所以方便很多。
实际上区别仅仅是客户端访问我们的服务的方式。通常的,一个WCF服务会使用SOAP,但是如果你构建了一个REST服务,客户端会使用一个不同的结构样式来访问你的服务(调用,如JSON一般的序列化,等等)。
REST使用一些常见的HTTP方法来插入、删除、更新、返回信息,这些方法如下:
GET - 请求针对资源的特定表达式
PUT - 根据提供的表达式创建或者更新一个资源
DELETE - 删除指定的资源
POST - 提交数据来让指定的资源处理
名词解释:
WCF :Windows Communication Foundation,Windows通讯接口,分布式的面向服务编程的架构。
SOAP:Simple Object Access Protocol简单对象访问协议,用来描述传递信息的格式。
WSDL:Web Services Description Language,用来描述如何访问具体的接口。
UDDI:Universal Description Discovery and Integration,用来管理,分发,查询webService 。
四、为什么使用REST?
服务,它能够支持多种语言、平台或系统的访问。它可以被iPhone、Android、Windows Phone、.Net Web应用、Java或者PHP所使用。使用Web服务,使用统一的系统来将它展现给每个人。
1.更少的开销(对于每次调用不需要包裹SOAP外壳)
2.更少的重复(HTTP已经提供了诸如DELETE、PUT、GET等等的方法,否则将表现在一个SOAP外壳当中)。
3.更标准化 - HTTP方法很容易理解并且操作一致。一些SOAP实现可能变得过分挑剔。
4.对于人类有更强的可读性和可测试性(很难仅仅用一个浏览器来测试SOAP)。
5.不需要使用XML(好吧,对于SOAP貌似也不需要使用,不过这很难成立,因为你已经开始解析外壳了)
6.使得SOAP(有点)容易。但正如我提到的,你正在抽出大量的底层冗余。确实,在理论上,在避免装载功能相同的顶层这一项上,SOAP能够超过其他的转换;但是在现实中你可能做的几乎所有SOAP工作,都是通过HTTP的。
四、小结
总有自己不太知道的地方,所以还是要多多的学习,不断的理解新的知识,接触了才会有新的见解。
下一篇博客带大家搭建一个WCF RESTful的服务。