REST Web应用,ZF框架 Rest CS服务实现
来源:互联网 发布:下载软件的软件哪个好 编辑:程序博客网 时间:2024/06/16 16:34
REST 架构风格是一种全新的针对 Web 应用的开发风格,与 RPC 风格的 Web 服务一样,是企业信息化的一个重要架构实践领域。REST(Representational State Transfer)是 Roy Fielding 提出的一个描述互联系统架构风格的名词。
二、应用场景介绍
需求描述
这是一个在线的用户管理模块,负责用户信息的创建,修改,删除,查询。用户的信息主要包括:
1.用户名(唯一标志在系统中的用户)
2.头衔
3.公司
4.EMAIL
5.描述
图1. 需求用例图
如图1 所示,客户端1(Client1)与客户端2(Client2)对于信息的存取具有不同的权限,客户端1 可以执行所有的操作,而客户端2 只被允许执行用户查询(Query User) 与用户列表查询(Query User List)。所以做服务安全控制非常重要。
三、使用 REST 实现 Web 服务
基于 Zend_Rest框架来实现该应用。Zend_Rest 为那些要采用 REST 结构体系来构建应用程序的 PHP开发者提供了一个具体的解决方案。
服务器端实现
客户器端实现
安全控制
所有从客户端 Client2 发出的 HTTP 请求都经过代理服务器 (Proxy Server)。代理服务器制定安全策略:所有经过该代理的访问 User 和 User List 资源的请求只具有读取权限,即:允许 GET/HEAD 操作,而像具有写权限的 PUT/DELTE 是不被允许的。
图2. REST 与代理服务器 (Proxy Servers)
一般代理服务器的实现根据 (URI, HTTP Method)两元组来决定 HTTP请求的安全合法性。当发现类似于(http://open.xxx.com/rest/userinfo/{username},DELETE)这样的请求时,予以拒绝。
关于缓存设置
对于基于网络的分布式应用,网络传输是一个影响应用性能的重要因素。如何使用缓存来节省网络传输带来的开销,这是每一个构建分布式网络应用的开发人员必须考虑的问题。
HTTP 协议带条件的 HTTPGET请求 (Conditional GET)被设计用来节省客户端与服务器之间网络传输带来的开销,这也给客户端实现 Cache机制 (包括在客户端与服务器之间的任何代理 )提供了可能。HTTP协议通过 HTTPHEADER域:If-Modified-Since/Last- Modified,If-None-Match/ETag实现带条件的 GET请求。
图3. REST 与缓存服务器 (Cache Server)
REST 的应用可以充分地挖掘HTTP协议对缓存支持的能力。当客户端第一次发送 HTTP GET请求给服务器获得内容后,该内容可能被缓存服务器 (Cache Server)缓存。当下一次客户端请求同样的资源时,缓存可以直接给出响应,而不需要请求远程的服务器获得。而这一切对客户端来说都是透明的。下面修改服务器Zend_Rest代码实现一个简单的Cache设置。
- REST Web应用,ZF框架 Rest CS服务实现
- REST,Web 服务,REST-ful 服务
- REST,Web 服务,REST-ful 服务
- REST,Web 服务,REST-ful 服务
- C# 实现Rest 风格的web服务
- RESTEasy-Rest服务框架
- REST Web 服务介绍
- REST风格Web服务
- REST Web 服务介绍
- rest基于web服务
- REST及REST风格的Web服务
- WCF实现REST服务
- Django REST框架实现
- Jersey框架搭建Rest服务
- 基于REST的Web服务
- 基于 REST 的 Web 服务
- Jersey搭建Rest web服务
- 基于REST的Web服务
- 小米开源文件管理器MiCodeFileExplorer-源码研究(3)-使用最多的工具类Util
- Virtualbox WDDM之DxgkDdiInterruptRoutine
- 编译和链接
- 坏的解释器: 没有那个文件或目录/bin/sh
- C语言C++语言中静态变量和静态函数
- REST Web应用,ZF框架 Rest CS服务实现
- Spring MVC前台属性数据的传递和后台属性数据的接收
- 增删改操作
- latex 论文致谢
- Java中创建线程的两种方式及线程的状态复习
- 在WMWare 安装Redhat Linux 6.4 basic server版本(没有图形界面)网络连接
- 获取最大值
- LeetCode——Product of Array Except Self
- java ee web开发学习笔记