普及的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联合供稿的类。

转载于:https://www.cnblogs.com/danielWise/archive/2011/06/01/2065335.html

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

  1. WCF 第十三章 可编程站点 使用AJAX和JSON进行网页编程

    到目前为止我们已经看了如何使用WebHttpBinding绑定和WebHttpBehavior终结点行为来寄宿服务.这允许我们使用POX来暴露服务.很多网站开发人员想放弃使用XML而使用JSON,一个 ...

  2. WCF 第十三章 可编程站点 使用WebGet和WebInvoke

    服务可以使用WebHttpBinding以及WebGet或者WebInvoke属性来暴露.这些属性每一个都确定HTTP动作.消息格式以及需要暴露给一个操作的消息体形式.我们将检查这些属性的每一个并给出 ...

  3. 20190825 On Java8 第十三章 函数式编程

    第十三章 函数式编程 函数式编程语言操纵代码片段就像操作数据一样容易. 虽然 Java 不是函数式语言,但 Java 8 Lambda 表达式和方法引用 (Method References) 允许你 ...

  4. 史上最简单的spark教程第十三章-SparkSQL编程Java案例实践(终章)

    Spark-SQL的Java实践案例(五) 本章核心:JDBC 连接外部数据库,sparkSQL优化,故障监测 史上最简单的spark教程 所有代码示例地址:https://github.com/My ...

  5. WCF 第六章 序列化和编码之DataContractJsonSerializer

    DataContractJsonSerializer支持使用以JavaScript 对象标记作为序列化格式并添加到.NET 3.5 Framework 中.如果从一个使用JavaScript 的网络应 ...

  6. [转]Windows Shell 编程 第十三章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7988004】...

    第十三章 Windows脚本环境 现在的许多开发人员以前都是在MS-DOS环境下编程的.几乎所有人都接触过批处理文件--一种基于文本命令的文件.这种文件使你能够在一个可执行命令中组合多个指令.批处理文 ...

  7. 《Java编程思想》读书笔记 第十三章 字符串

    <Java编程思想>读书笔记 第十三章 字符串 不可变String String对象是不可变的,每一个看起来会修改String值的方法,实际上都是创建一个全新的String对象,以及包含修 ...

  8. 第十三章 Perl的面向对象编程

    第十三章 Perl的面向对象编程 by flamephoenix 一.模块简介 二.Perl中的类 三.创建类 四.构造函数 实例变量 五.方法 六.方法的输出 七.方法的调用 八.重载 九.析构函数 ...

  9. 【正点原子Linux连载】第二十三章 音频应用编程-摘自【正点原子】I.MX6U嵌入式Linux C应用编程指南V1.1

    第二十三章 音频应用编程 ALPHA I.MX6U开发板支持音频,板上搭载了音频编解码芯片WM8960,支持播放以及录音功能! 本章我们来学习Linux下的音频应用编程,音频应用编程相比于前面几个章节 ...

最新文章

  1. 不知道对象的传递那些参数
  2. Linux-Raid0、Raid1、Raid5、Raid10初探
  3. 在场景中加入第一人称视角运行后一直往下掉的解决方案
  4. mysql 运维 最佳实践_Mysql 开发最佳实践
  5. 十二、十三天总结笔记
  6. linux en_us支持什么格式的中文,更改Linux操作系统下的显示默认支持语言
  7. SQL Server2005创建新数据库时不允许创建新数据库的问题
  8. 《30天自制操作系统》03_day_学习笔记
  9. 1040 有几个PAT
  10. idea2017显示maven Project菜单
  11. newifi3 高恪魔改_新路由3高恪newifi3固件-支持512M
  12. 操作系统引导-----QEMU环境下制作boot引导程序
  13. MTK 平台屏蔽 factory mode
  14. 最常用的scrum工具、敏捷开发工具、看板工具
  15. 51单片机自学--PWM波占空比程序解释
  16. TFT-LCD与FSMC控制器
  17. 32个高效思维模型,快速提升你的思考力!
  18. 实现内网穿透的两种方式
  19. linux zip和gzip的区别
  20. OPPO手机怎么找到快应用入口

热门文章

  1. 【编译原理】关于LL(1)文法的探索
  2. Json数据发布到Tomcat本地服务器
  3. electron 两个窗口如何通信_关于 Electron 进程间通信的一个小小实践
  4. iar代码优化影响运行速度吗_IAR中优化等级对Kinetis FGPIO执行速度的影响
  5. 过期页面SEO该如何进行处理?
  6. 网站降低用户跳出率的常见技巧有哪些?
  7. android gradle 设置 output文件名,如何使用gradle在APK文件名中设置versionName?
  8. oracle同时更新多列数据,ORACLE 11G 表联合更新多列
  9. harmonyos上的程序用什么语言写,HarmonyOS应用开发 — HelloWorld应用开发E2E体验
  10. 两机五节点电力系统的潮流仿真计算_南科大杨再跃课题组在电力系统、机器学习等领域取得重要研究成果...