往期精选
●架构师高并发高性能分布式教程(G)
●39阶段精品云计算大数据实战视频教程
●互联网技术干货视频教程大全
●年8月 IntellijIDEA全套视频教程
●程序员如何制作高质量的简历
●两套大型电商实战项目
●本经典编程相关书籍下载
更多精彩查看历史记录.........
做WEB好几年了,各种语言和技术都稍有涉猎。今天心血来潮,突然想总结一下。其实不论什么技术,什么需求,通常WEB开发就是通过WEB前端管理一个或大或小或独立或分布式的关系型数据库,很多东西都是相通的。这里说的WEB架构,是指WEB应用开发中每种技术独有的资源组织形式(包括文件,数据库,HTTP请求处理等。注意并非OO的开发方式才有架构一说),也许说开发方式更容易让人理解一些。
以下想法主要以PHP实现为示例,但很多体会我想Java,.NET,Ruby开发者应该也很容易理解。 是我对于刚面世就引起无数人 REST的架构设计
REST(RepresentationalStateTransfer)是一种轻量级的WebService架构风格,其实现和操作明显比SOAP和XML-RPC更为简洁,可以完全通过HTTP协议实现,还可以利用缓存Cache来提高响应速度,性能、效率和易用性上都优于SOAP协议。
REST架构遵循了CRUD原则,CRUD原则对于资源只需要四种行为:Create(创建)、Read(读取)、Update(更新)和Delete(删除)就可以完成对其操作和处理。这四个操作是一种原子操作,即一种无法再分的操作,通过它们可以构造复杂的操作过程,正如数学上四则运算是数字的最基本的运算一样。
REST架构让人们真正理解我们的网络协议HTTP本来面貌,对资源的操作包括获取、创建、修改和删除资源的操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法,因此REST把HTTP对一个URL资源的操作限制在GET、POST、PUT和DELETE这四个之内。这种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。
REST的设计准则
REST架构是针对Web应用而设计的,其目的是为了降低开发的复杂性,提高系统的可伸缩性。REST提出了如下设计准则:
网络上的所有事物都被抽象为资源(resource);
每个资源对应一个 的资源标识符(resourceidentifier);
通过通用的连接器接口(genericconnectorinterface)对资源进行操作;
对资源的各种操作不会改变资源标识符;
所有的操作都是无状态的(stateless)。
使用REST架构
对于开发人员来说,关心的是如何使用REST架构,这里我们来简单谈谈这个问题。REST不仅仅是一种崭新的架构,它带来的更是一种全新的Web开发过程中的思维方式:通过URL来设计系统结构。REST是一套简单的设计原则、一种架构风格(或模式),不是一种具体的标准或架构。REST有很多成功的使用案例, 的Delicious和Flickr都提供基于REST风格的API使用,客户端调用也极其方便,下面是我用ASP写的一个很简单的REST举例,从中可以看出REST是多么的简单易用。
客户端代码:
PrivateFunction 服务端代码:
Response.WriteRequest.ServerVariables("REQUEST_METHOD")If(Request.ServerVariables("REQUEST_METHOD")="GET")ThenResponse.Write"DOGET"+Request("do")ElseIf(Request.ServerVariables("REQUEST_METHOD")="POST")ThenResponse.Write"DOPOST"+Request("do")ElseIf(Request.ServerVariables("REQUEST_METHOD")="PUT")ThenResponse.Write"DOPUT"+Request("do")ElseIf(Request.ServerVariables("REQUEST_METHOD")="DELETE")ThenResponse.Write"DODELETE"+Request("do")Endif
需要注意的是,IIS服务器默认是不支持ASP文件的PUT和DELETE操作,默认会返回“-Forbidden”错误,因此需要修改IIS的设置,修改方法是:管理根据-IIS信息服务器-网站-属性-主目录-应用程序配置-配置-映射,选择ASP-编辑-修改为全部动作。
java开发者交流群
赞赏