- 浏览: 2675887 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
80后的童年2:
深入浅出MongoDB应用实战开发网盘地址:https://p ...
MongoDB入门教程 -
shliujing:
楼主在不是精通java和php的前提下,请不要妄下结论。
PHP、CakePHP哪凉快哪呆着去 -
安静听歌:
希望可以一给一点点注释
MySQL存储过程之代码块、条件控制、迭代 -
qq287767957:
PHP是全宇宙最强的语言!
PHP、CakePHP哪凉快哪呆着去 -
rryymmoK:
深入浅出MongoDB应用实战开发百度网盘下载:链接:http ...
MongoDB入门教程
最近在看PM老张的《RESTful Web Services》,重新理解了一遍REST,以前的一些迷雾都变清晰了。
1,什么是REST?
"Representational State Transfer (REST) is a style of software architecture for distributed hypermedia systems
such as the World Wide Web. "
现实社会中的分布式超媒体系统的例子主要为www,但是我们不使用http、不与www交互也能构建遵循REST风格的软件系统。
REST是针对分布式超媒体系统的软件架构风格,这个前提很重要。
一般来说谈到REST风格时都是针对www应用的。
REST strictly refers to a collection of network architecture principles that outline how resources are defined
and addressed.
资源是REST的Central Principle。
"Representational State Transfer is intended to evoke an image of how a well-designed Web application behaves:
a network of web pages (a virtual state-machine), where the user progresses through an application by selecting
links (state transitions), resulting in the next page (representing the next state of the application) being
transferred to the user and rendered for their use."
当浏览器浏览访问一个url资源时,返回的页面即为该url资源的representation,这个representation给浏览器一个state,当
浏览器访问下一个url资源时,浏览器的state就transfer了。
2,REST的特性:
Client-Server: a pull-based interaction style: consuming components pull representations. (Comet不遵守REST)
Stateless: each request from client to server must contain all the information necessary to understand the request,
and cannot take advantage of any stored context on the server. (HTTP cookies不遵守REST)
Cache: to improve network efficiency responses must be capable of being labeled as cacheable or non-cacheable.
Uniform interface: all resources are accessed with a generic interface (例如HTTP GET/POST/PUT/DELETE).
Named resources: the system is comprised of resources which are named using a URL.
Interconnected resource representations: the representations of the resources are interconnected using URLs, thereby
enabling a client to progress from one state to another.
Layered components: intermediaries, such as proxy servers, cache servers, gateways, etc, can be inserted between clients
and resources to support performance, security, etc.
3,,什么是RESTful?
Systems that follow Fielding's REST principles are often referred to as RESTful.
www就是一个RESTful的系统,因为www符合REST架构风格。
我们常说RESTful Rails,指的就是使用REST架构风格来做Rails开发,即使用HTTP动词GET/POST/PUT/DELETE和map.resources来开发
resources.rb是RESTful Rails的实现,参考Rails源码研究之ActionController:八,resources
4,什么是RESTful Web Services?
RESTful Web Services即符合REST架构风格的轻量级Web Services。
RESTful Web Services以及ROA(REST oriented architecture)正是《RESTful Web Services》一书要讲的。
Rails的RESTful Web Services实现
参考资源:
http://en.wikipedia.org/wiki/Representational_State_Transfer
http://rest.blueoxen.net/cgi-bin/wiki.pl?FrontPage
http://www.xfront.com/REST-Web-Services.html
《RESTful Web Services》
此处理解有误,Cookie违反的并不是服务器端无状态的架构约束,因为它是保存在客户端的。Cookie的主要问题有两个:
1. 它并不能准确代表每一次请求的状态,因为它是与一个浏览器实例绑定在一起的,而不是与一次请求绑定在一起的。
2. 它违反了REST在语义可见性方面的架构约束。
详情可以仔细看看Fileding论文中文版的“6.3.4.2 Cookie”小节,里面有很详细的解释。
1,什么是REST?
"Representational State Transfer (REST) is a style of software architecture for distributed hypermedia systems
such as the World Wide Web. "
现实社会中的分布式超媒体系统的例子主要为www,但是我们不使用http、不与www交互也能构建遵循REST风格的软件系统。
REST是针对分布式超媒体系统的软件架构风格,这个前提很重要。
一般来说谈到REST风格时都是针对www应用的。
REST strictly refers to a collection of network architecture principles that outline how resources are defined
and addressed.
资源是REST的Central Principle。
"Representational State Transfer is intended to evoke an image of how a well-designed Web application behaves:
a network of web pages (a virtual state-machine), where the user progresses through an application by selecting
links (state transitions), resulting in the next page (representing the next state of the application) being
transferred to the user and rendered for their use."
当浏览器浏览访问一个url资源时,返回的页面即为该url资源的representation,这个representation给浏览器一个state,当
浏览器访问下一个url资源时,浏览器的state就transfer了。
2,REST的特性:
Client-Server: a pull-based interaction style: consuming components pull representations. (Comet不遵守REST)
Stateless: each request from client to server must contain all the information necessary to understand the request,
and cannot take advantage of any stored context on the server. (HTTP cookies不遵守REST)
Cache: to improve network efficiency responses must be capable of being labeled as cacheable or non-cacheable.
Uniform interface: all resources are accessed with a generic interface (例如HTTP GET/POST/PUT/DELETE).
Named resources: the system is comprised of resources which are named using a URL.
Interconnected resource representations: the representations of the resources are interconnected using URLs, thereby
enabling a client to progress from one state to another.
Layered components: intermediaries, such as proxy servers, cache servers, gateways, etc, can be inserted between clients
and resources to support performance, security, etc.
3,,什么是RESTful?
Systems that follow Fielding's REST principles are often referred to as RESTful.
www就是一个RESTful的系统,因为www符合REST架构风格。
我们常说RESTful Rails,指的就是使用REST架构风格来做Rails开发,即使用HTTP动词GET/POST/PUT/DELETE和map.resources来开发
resources.rb是RESTful Rails的实现,参考Rails源码研究之ActionController:八,resources
4,什么是RESTful Web Services?
RESTful Web Services即符合REST架构风格的轻量级Web Services。
RESTful Web Services以及ROA(REST oriented architecture)正是《RESTful Web Services》一书要讲的。
Rails的RESTful Web Services实现
参考资源:
http://en.wikipedia.org/wiki/Representational_State_Transfer
http://rest.blueoxen.net/cgi-bin/wiki.pl?FrontPage
http://www.xfront.com/REST-Web-Services.html
《RESTful Web Services》
评论
3 楼
walkandsing
2007-08-14
semantic web是现在学术上很火的一个概念,描绘了一幅美好的未来,但到现在仍然没有一个完整的原型系统。有很多人并不看好这项技术的未来,实际上web 2.0带给我们的semantic我们还没有很好的利用
2 楼
hideto
2007-08-09
嗯,谢谢老大
另外我也看了些semantic web的东西,web3.0很可能就是semantic web?
另外我也看了些semantic web的东西,web3.0很可能就是semantic web?
1 楼
dlee
2007-08-09
hideto 写道
Stateless: each request from client to server must contain all the information necessary to understand the request,
and cannot take advantage of any stored context on the server. (HTTP cookies不遵守REST)
and cannot take advantage of any stored context on the server. (HTTP cookies不遵守REST)
此处理解有误,Cookie违反的并不是服务器端无状态的架构约束,因为它是保存在客户端的。Cookie的主要问题有两个:
1. 它并不能准确代表每一次请求的状态,因为它是与一个浏览器实例绑定在一起的,而不是与一次请求绑定在一起的。
2. 它违反了REST在语义可见性方面的架构约束。
详情可以仔细看看Fileding论文中文版的“6.3.4.2 Cookie”小节,里面有很详细的解释。
发表评论
-
用了TextMate才知道什么叫神级Editor
2011-03-09 04:51 57950一直用Eclipse作为开发Ruby和Java项目的IDE,但 ... -
Ruby使用OAuth登录新浪微博和豆瓣
2011-01-09 12:49 4422首先需要安装oauth这个gem包 gem install ... -
使用Passenger+nginx部署Rails
2010-12-28 15:12 50071. Install Passender gem instal ... -
markItUp+rdiscount搭建Rails下可视化Markdown编辑器
2010-12-21 17:48 5442markItUp是基于jQuery的可视化编辑器,支持Html ... -
Rails3 and MongoDB Quick Guide
2010-12-10 14:13 2751Install MongoDB Download: http: ... -
基于ruby-protobuf的rpc示例
2009-08-11 11:51 41471, 安装ruby-protobuf gem instal ... -
Ruby导出xls和csv的utf-8问题的解决
2009-02-04 15:05 6829数据库数据为utf-8格式,包括中文和拉丁文等等 导出文件xl ... -
URL/HTML/JavaScript的encode/escape
2009-01-04 13:03 9317最近经常被URL、HTML、JavaScript的encode ... -
各种排序的Ruby实现
2008-11-27 14:51 3994Θ(n^2) 1, Bubble sort def bu ... -
12月5日北京RoR活动!
2008-11-26 18:38 3013又是一年过去了,Rails在国内的发展势态良好,很多使用RoR ... -
Rails程序开发的最大问题是代码规范
2008-08-28 11:56 5489使用Rails开发大型复杂B2B应用一年了,这个项目目前开发人 ... -
Web开发大全:ROR版——推荐序
2008-07-09 00:39 2414来自http://www.beyondrails.com/bl ... -
深入ActionMailer,使用Sendmail发邮件
2008-07-03 11:41 3395来自: http://www.beyondrails.com/ ... -
Rails里如何结合ExceptionNotification配置gmail账户发邮件
2008-06-19 19:56 30771,安装ExceptionNotification rub ... -
使用coderay和railscasts样式进行代码高亮
2008-06-17 00:16 2392CodeRay是一个语法高亮的Ruby库,效率很不错。 Cod ... -
Capistrano试用
2008-06-16 19:05 19541,客户端机器安装Capistrano gem insta ... -
lighttpd真垃圾啊
2008-06-04 18:38 2520使用lighttpd+fcgi跑Rails程序,文件上传会si ... -
将gem变成plugin
2008-06-04 11:27 1799有什么样的需求就有什么样的对策 当vhost上的帐号没有ge ... -
在Rails里使用ReCaptcha添加验证码
2008-06-03 15:51 42611,去http://recaptcha.net/sign up ... -
Rails里给文件上传添加progress_bar
2008-05-27 17:00 2083文件上传很慢时,UI没有什么用户提示,这样让人很费解,所以我们 ...
相关推荐
- **Colin Jack**(高级软件开发者):指出尽管REST可能看起来令人困惑且难以接近,但本书成功地将复杂的部分描述得既简单又明显,并展示了如何基于REST和Web来解决实际问题。 #### 五、书籍结构与内容概览 - **...
REST(Representational State Transfer),即“表征状态转移”,是由Roy Fielding博士在其2000年的博士论文中提出的一种软件架构风格。REST强调基于网络的分布式系统的松耦合设计,并推崇无状态通信机制。在理解...
该平台能实现基于ws的聊天室,可以将聊天的信息调用rest api存储到数据库,可以通过网页访问该平台提供的rest api后再进行ws的相关操作,也就是说把ws的聊天服务端与rest的调用以及rest的网站发布整合到了一起。...
1. 安装Advanced REST Client插件:首先,你需要在Chrome浏览器的Web Store中搜索“Advanced REST Client”并安装它。安装完成后,你可以在浏览器的扩展程序栏找到ARC的图标。 2. 创建新的HTTP请求:打开ARC,点击...
### REST Server 在 Delphi XE 中使用 DataSnap 的关键技术点 #### 1. REST 架构简介 - **背景**: REST(Representational State Transfer)是 Web 服务领域的一个重要概念,尤其在过去十年中,随着 Web 2.0 的...
本示例探讨的主题是“REST地图与天地图叠加”,这涉及到两种不同的地图服务技术的融合,即SuperMap iClient的REST地图服务和天地图服务。我们将详细解释这两种技术及其在Flex客户端下的叠加应用。 首先,REST...
cpprest库,全称是Casablanca,是由微软开发的一个C++ REST(Representational State Transfer)编程库,主要用于构建云应用和服务之间的通信。cpprest库提供了轻量级、高效且易于使用的API,使得开发者可以方便地...
REST 服务构建的 Web 应用优势和不足 REST(REpresentational State Transfer)是一种混合架构风格,当前互联网的核心架构风格。基于 REST 服务(RESTful Service)的 Web 应用系统设计任务主要包括:识别并设计 ...
在Delphi XE中利用DataSnap构建REST服务器是一项强大的技术,可以帮助开发者创建高效、可扩展的Web服务。本文将深入探讨这一主题,介绍REST(Representational State Transfer)架构原理,以及如何在Delphi环境中...
在Kettle中,REST接口提供了一种灵活的方式与外部系统进行通信,例如,发送和接收JSON数据,执行各种操作。本教程将深入探讨如何使用Kettle与RESTful服务进行交互。 首先,我们要理解REST(Representational State ...
然而,二者却站在不同的层次看架构,SOA的角度偏向于战略;而REST的角度则偏向于战术。SOA给出了一组架构原则实现其战略目标,而REST则通过一系列约束实现其战术目标。 《SOA与REST:用REST构建企业级SOA解决方案...
1. 修改了web.xml的段,使工程既可以访问rest服务,又可以访问普通的页面资源,不用再像原作者那样再单独部署一个页面工程。 2. 由于【1】的改动,使得只有以/rest开头的URL才能映射到某资源,使用rest服务时,必须...
REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,...
**JIRA REST Java Client**是Atlassian官方提供的一款用于与JIRA进行交互的Java库,它使得开发人员能够轻松地通过RESTful API访问和操作JIRA系统。这个库提供了丰富的功能,包括创建、更新、查询问题(issues)、...
本项目“C# 实现Rest服务接口,含实现文档”将详细介绍如何使用C#和ASP.NET框架来构建RESTful服务。 1. **C#语言基础**:C#是Microsoft开发的一种面向对象的编程语言,常用于Windows平台的应用程序开发,尤其在.NET...
REST是设计分布式网络服务或API时遵循的架构原则以及设计风格, 前后端分离最佳实践的开发标准或规范。本文为资料收藏的.md笔记,选取比较重要的资料,收集了以下内容: 重要概念介绍,如前述的第2-第4个关键词。 ...
Django-REST-framework教程中文版是一份关于如何使用Django-REST-framework来快速创建REST风格API的中文教程。Django-REST-framework是一个建立在Django框架之上的强大的REST API工具包,它允许开发者利用Django的...
**WCF REST服务测试** Windows Communication Foundation (WCF) 是微软.NET Framework中用于构建分布式应用程序的服务框架。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于...