代码改变世界

WCF 第十三章 可编程站点 所有都与URI相关

2011-06-01 07:29  DanielWise  阅读(639)  评论(0编辑  收藏  举报

普及的GET 方法

表13.1中所有URIs的一件共性的事情是它们都是用HTTP协议来访问资源。HTTP协议被认为是站点协议。HTTP协议的初衷是交换HTML页,但是它已经被用来访问所有类型的资源,包括图片,视频,应用以及更多。它实现这个的方式是通过确定一个资源定位器以及将要对这个资源执行的操作。URIs定位资源。这个动作时通过一系列确定将要在资源上执行动作的HTTP动词定义。表13.2显示了目前在站点上使用的通用HTTP动作。有很多方式使用HTTP协议与站点上的资源交互,但是没有哪个像GET这样普及。GET到目前为止是最广泛使用的动作。POST排第二,接下来是其他动作比如PUT和DELETE.

表13.2 常用HTTP动作

动作 描述
GET 收集由URI定义的资源。
POST 基于由URI定义的资源向服务端发送一个资源。
PUT 基于由URI定义的资源存储一个资源。
DELETE 基于由URI定义的资源删除一个资源。
HEAD 与GET行为基本一致除了不会返回消息。这用来收集由URI定义的资源元数据。

  HTTP动作组成了我们如何与站点资源交互的基础。GET是最广泛使用的HTTP动作因为它用来收集资源。HTTP动作帮助提供一个独一无二的接口来与资源交互,这是一个基于REST架构类型的约束。

格式问题

表13.1的URIs列表描述了目前站点中可以使用的最大数量的格式。从这些URIs返回的内容包括HTML, XML, JSON, RSS,CSV以及常用类型。这意味着开发人员没有找到一个单一的可以在站点中表示所有资源的格式。之前一段时间,看起来所有路都指向XML作为唯一的格式。XML是一个伟大的提供数据访问架构来共享信息的架构。例如,SOAP是一种交换基于XML消息的协议而且是传统网络服务的基础。WCF对SOAP协议提供支持。SOAP除了向数据提供架构还提供更多。SOAP添加头信息,允许高级能力比如传输独立,消息级别安全以及事务。网页开发人员不必要关心这些能力以及交换信息的方式。在这些情况下,通常使用比如普通旧XML(Plain-Old-XML, POX)以及JavaScript对象符号(JSON)。

  如果开发人员不需要提供WS-*能力也不希望有SOAP的额外开销,那么通常会使用POX。在这些情况下,使用POX是一个可以满足他们的要求的“非常好”的格式。JSON,在另一方面,当把数据返回给使用JavaScript浏览器客户端时是一个更高效的格式。JSON作为一个格式比SOAP更高效同时在你试着减少线上传输的字节数量时可以提供重要的性能以及扩展性方面的优势。归结起来就是格式问题,开发人员在使用站点时需要使用很多格式。

使用WCF进行网络编程

表13.3高亮显示一些当开发人员使用WCF和.NET Framework 3.5时可以使用的主要特性。这章的余下部分将聚焦WCF中的帮助开启”可编程站点“的特性。

表13.3 .NET Framework 3.5 中网络编程特性

动作 描述
Uri 和 UriTemplate 为了支持REST架构而对URIs的增强支持。
webHttpBinding 绑定 内建支持POX和JSON的新绑定,正式支持HTTP动作,包含GET以及基于URI的分发。
ASP.NET AJAX 集成 与ASP.NET AJAX 集成来支持客户端服务代理。
Content Syndication 发布并使用RSS以及ATOM联合供稿的类。