uri

WCF实现REST服务

醉酒当歌 提交于 2020-01-02 02:12:53
REST 表述性状态转移( Representational State Transfer,REST ),不是一种标准,而是一种软件架构风格。 基于 REST 的服务与基于 SOAP 的服务相比,性能、效率和易用性上都更高,而 SOAP 协议非常的复杂和不透明。 REST 受到越来越多的 Web 服务供应商欢迎。目前大部分供应商,如 yahoo 、 google 、 Amazon 等都提供 REST 风格的服务。 REST 的主要原则是: 1.网络上的所有事物都可被抽象为资源; 2.每个资源都有一个唯一的资源标识符 URI; 3.使用标准方法操作资源; 4.所有的操作都是无状态的; 5.通过缓存来提高性能。 REST 是基于 Http 协议的,任何对资源的操作行为都是通过 Http 协议来实现。 Http 把对一个资源的操作限制在 4 个方法以内: GET、POST、PUT 和 DELETE ,这正是对资源 CRUD 操作的实现。 REST 的资源表述形式可以是 XML 、 HTML 、 JSON ,或者其他任意的形式,这取决于服务提供商和消费服务的用户。 但是 REST 不是万能的。操作无状态也会带来巨大的安全问题,如何授权和验证用户?如果要求每次请求都包含完整的身份和验证信息,又如何避免信息泄漏?复杂的功能挑战架构的易用性,这就需要在性能与功能间权衡

WCF实现REST服务

守給你的承諾、 提交于 2020-01-02 02:12:03
REST 表述性状态转移(Representational State Transfer,REST),不是一种标准,而是一种软件架构风格。 基于REST的服务与基于SOAP的服务相比,性能、效率和易用性上都更高,而SOAP协议非常的复杂和不透明。REST受到越来越多的Web服务供应商欢迎。 REST的主要原则是: 1.网络上的所有事物都可被抽象为资源; 2.每个资源都有一个唯一的资源标识符URI; 3.使用标准方法操作资源; 4.所有的操作都是无状态的; 5.通过缓存来提高性能。 REST是基于Http协议的,任何对资源的操作行为都是通过Http协议来实现。Http把对一个资源的操作限制在4个方法以内:GET、POST、PUT和DELETE,这正是对资源CRUD操作的实现。 REST的资源表述形式可以是XML、HTML、JSON,或者其他任意的形式,这取决于服务提供商和消费服务的用户。 但是REST 不是万能的。操作无状态也会带来巨大的安全问题,如何授权和验证用户?如果要求每次请求都包含完整的身份和验证信息,又如何避免信息泄漏?复杂的功能挑战架构的易用性,这就需要在性能与功能间权衡,究竟该用 REST还是SOAP。 WebHttpBinding WebHttpBinding允许开发人员通过 HTTP请求(这些请求使用“Plain old XML”(POX) 样式消息,而不是使用基于

Regular expression for W3C compliant URLs?

余生长醉 提交于 2020-01-02 02:03:09
问题 I'm trying to find a regular expression for a URL that will be compliant with the W3C standard for the HTML5 "url" input type (to be used in JavaScript). See the W3C specification of the requirements. Two possibilities: I found this other StackOverflow question about URL regexes which looks quite promising: There exists an HTML5 form validation jQuery plugin - which is supposed to emulate HTML5 form validation functionality. This script uses the following regular expression: /(https?|ftp):\/\

理解RESTful架构

偶尔善良 提交于 2020-01-02 01:56:58
越来越多的人开始意识到, 网站即软件 ,而且是一种新型的软件。 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。 网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合, 现在我们必须考虑,如何开发在互联网环境中使用的软件。 RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。 但是,到底什么是RESTful架构,并不是一个容易说清楚的问题。下面,我就谈谈我理解的RESTful架构。 一、起源 REST这个词,是 Roy Thomas Fielding 在他2000年的 博士论文 中提出的。 Fielding是一个非常重要的人,他是HTTP协议(1.0版和1.1版)的主要设计者、Apache服务器软件的作者之一、Apache基金会的第一任主席。所以,他的这篇论文一经发表,就引起了关注,并且立即对互联网开发产生了深远的影响。 他这样介绍论文的写作目的: "本文研究计算机科学两大前沿----软件和网络----的交叉点。长期以来,软件研究主要关注软件设计的分类、设计方法的演化

理解RESTful架构

蓝咒 提交于 2020-01-02 01:56:33
注:原文出处http://www.ruanyifeng.com/blog/2011/09/restful.html 越来越多的人开始意识到,网站即软件,而且是一种新型的软件。 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。 网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,现在我们必须考虑,如何开发在互联网环境中使用的软件。 RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。 但是,到底什么是RESTful架构,并不是一个容易说清楚的问题。下面,我就谈谈我理解的RESTful架构。 一、起源 REST这个词,是 Roy Thomas Fielding 在他2000年的 博士论文 中提出的。 Fielding是一个非常重要的人,他是HTTP协议(1.0版和1.1版)的主要设计者、Apache服务器软件的作者之一、Apache基金会的第一任主席。所以,他的这篇论文一经发表,就引起了关注,并且立即对互联网开发产生了深远的影响。 他这样介绍论文的写作目的: "本文研究计算机科学两大前沿---

SOAP与restful webservice

南楼画角 提交于 2020-01-02 01:42:47
SOAP   什么是SOAP,我想不用多说,google一把满眼都是。其实SOAP最早是针对RPC的一种解决方案,简单对象访问协议,很轻量,同时作为应用协议可以基于多种传输协议来传递消息(Http,SMTP等)。但是随着SOAP作为WebService的广泛应用,不断地增加附加的内容,使得现在开发人员觉得SOAP很重,使用门槛很高。在SOAP后续的发展过程中,WS-*一系列协议的制定,增加了SOAP的成熟度,也给SOAP增加了负担。   REST   REST其实并不是什么协议也不是什么标准,而是将Http协议的设计初衷作了诠释,在Http协议被广泛利用的今天,越来越多的是将其作为传输协议,而非原先设计者所考虑的应用协议。SOAP类型的WebService就是最好的例子,SOAP消息完全就是将Http协议作为消息承载,以至于对于Http协议中的各种参数(例如编码,错误码等)都置之不顾。其实,最轻量级的应用协议就是Http协议。Http协议所抽象的get,post,put,delete就好比数据库中最基本的增删改查,而互联网上的各种资源就好比数据库中的记录,对于各种资源的操作最后总是能抽象成为这四种基本操作,在定义了定位资源的规则以后,对于资源的操作通过标准的Http协议就可以实现,开发者也会受益于这种轻量级的协议。   REST专门针对网络应用设计和开发方式,以降低开发的复杂性

Web开发之RSET API

扶醉桌前 提交于 2020-01-02 01:35:08
REST介绍   如果要说什么是REST的话,那最好先从Web(万维网)说起。   什么是Web呢?读者可以查看维基百科的词条( http://zh.wikipedia.org/zh-cn/Web ),具体的我就不多说了。总之,Web是我们在互联网上最常用的服务,甚至在某些人的心中,互联网就是Web。当然,Web只是互联网的一部分而已,只是大家用的最多而已,我们访问的所有网站都是基于Web。   那么,Web和REST之间究竟有什么关系呢?我们接下来将聊聊组成Web的几大基础技术, URI (统一资源标识符,用来标识资源)、 HTTP (超文本传输/转移协议,用来操作资源)、 Hypertext (超文本,用来描述资源的内容与状态,我们可以用HTML、XML、JSON或者自定义格式的文本来描述任何一个资源)。   那我们再来看看什么是REST呢?其实REST并不是一种新兴的技术语言,也不是什么新的技术框架。准确来说说REST只是一种概念、风格或者约束,是回归HTTP本身的建议。   REST是由Roy Thomas Fieding在他的博士论文《Architectural Styles and the Design of Network-based Software Architectures》(《架构风格与基于网络的软件架构设计》)中提出的一种架构思想。Roy

REST服务开发实战

可紊 提交于 2020-01-02 01:34:39
   转自: http://kb.cnblogs.com/page/91827/ REST介绍   如果要说什么是REST的话,那最好先从Web(万维网)说起。   什么是Web呢?读者可以查看维基百科的词条( http://zh.wikipedia.org/zh-cn/Web ),具体的我就不多说了。总之,Web是我们在互联网上最常用的服务,甚至在某些人的心中,互联网就是Web。当然,Web只是互联网的一部分而已,只是大家用的最多而已,我们访问的所有网站都是基于Web。   那么,Web和REST之间究竟有什么关系呢?我们接下来将聊聊组成Web的几大基础技术, URI (统一资源标识符,用来标识资源)、 HTTP (超文本传输/转移协议,用来操作资源)、 Hypertext (超文本,用来描述资源的内容与状态,我们可以用HTML、XML、JSON或者自定义格式的文本来描述任何一个资源)。   那我们再来看看什么是REST呢?其实REST并不是一种新兴的技术语言,也不是什么新的技术框架。准确来说说REST只是一种概念、风格或者约束,是回归HTTP本身的建议。   REST是由Roy Thomas Fieding在他的博士论文《Architectural Styles and the Design of Network-based Software Architectures》(

REST In WCF4.0

雨燕双飞 提交于 2020-01-02 01:34:30
REST软件架构是由Roy Thomas Fielding博士2000年在他的论文《Architectural Styles and the Design of Network- based Software Architectures》首次提出的。他提出的理论对后来的Web技术的发展产生了巨大的影响,他是许多重要Web架构标准的设计者,这些标准就是HTTP、URI等。 1.1) Rest的英文全称是“Representational State Transfer”。中文翻译为“表述性状态转移”。REST本身只是为分布式超媒体系统设计的一种架构风格,而不是标准。 1.2)那么如何理解“Representational State Transfer”这句话呢?下面我们来解释一下: Representational :中文直译:代表的,表像的。如果把WEB 服务器端中所有的东西(数据)都看作是资源(Resource),那么呈现在用户面前(客户端)的就是资源的表像(Representation)。每一个资源都有自己的唯一标识(URI)。 State :中文直译:状态。首先这个状态是客户端的状态,而不是服务器端的状态(在REST 中,服务器端应该是无状态的)。那么,把State和Representation联系在一起(Representational State),可以理解成:每一个资源

Codeigniter routing issues

拟墨画扇 提交于 2020-01-01 19:19:29
问题 I am customizing my routes in codeigniter, here is a sample of my routes.php: $route['default_controller'] = 'maincontroller/main'; $route['404_override'] = ''; $route['test'] = 'maincontroller/test'; here is the maincontroller class: class Maincontroller extends CI_Controller { public function __construct( ) { parent::__construct( ); $this->load->library('session'); $this->init( ); } public function main( ) { echo "in main"; } public function test( ) { echo "test"; } } but when i access this