存档在 2012年10月21日

REST架构与http协议方法

2012年10月21日

好吧,对REST这个概念依然很是模糊。
表述性状态转移(REpresentational State Transfer)的简称,用阮一峰翻译的名字是”表现层状态转化”。(作者原文地址:http://www.ruanyifeng.com/blog/2011/09/restful.html)

个人理解REST的关键是使用唯一URI来代表唯一“资源”。比如一段文本,一段数据,图片或是其他文件。

URI:统一资源标识符(Uniform Resource Identifier,或URI)是一个用于标识某一互联网资源名称的字符串。

阮一峰这么总结REST:

综合上面的解释,我们总结一下什么是RESTful架构:
(1)每一个URI代表一种资源;
(2)客户端和服务器之间,传递这种资源的某种表现层;
(3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现”表现层状态转化”。

这里涉及到HTTP的方法。
常用的HTTP方法有两种既是Get与Post,此外顶多再用个head。上边提到四种HTTP动作分别是GET/POST/PUT/DELETE。
事实上HTTP协议包括八种方法如下:

OPTIONS
返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送’*'的请求来测试服务器的功能性。
HEAD
向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。
GET
向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中。
POST
向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
PUT
向指定资源位置上传其最新内容。
DELETE
请求服务器删除Request-URI所标识的资源。
TRACE
回显服务器收到的请求,主要用于测试或诊断。
CONNECT
HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

明显的,大部分的方法服务器端都没有实现,即使实现了也是关闭的。我的理解是put、delete方法事实上现在都是使用get与post方法实现的。REST依然要使用参数传入数据的吧,比如申请到的资源key等。

那么怎么更形象的解释REST呢? -。-!!!

其他相关文章地址:

http://www.infoq.com/cn/articles/rest-architecure

http://www.infoq.com/cn/articles/rest-introduction

ps:啊啊啊啊啊,对不起电脑啊,开这么多页面,卡卡卡卡卡卡死了啊

js阻止冒泡

2012年10月21日

阻止冒泡:event.stopPropagation()

ie6~ie8使用event.cancelBubble = true;

阻止浏览器默认事件:event.preventDefault()

ie event.returnValue = false;

有时候可以使用return false;
但是…为什么…我用return false怎么不阻止冒泡呢?!