`
jbeduhai
  • 浏览: 504356 次
  • 性别: Icon_minigender_1
  • 来自: 山东
社区版块
存档分类
最新评论

REST与面向资源的Web开发-深刻理解Web的架构

阅读更多
1.什么是REST

◆Representational State Transfer(表述性状态转移)
◆来自Roy Fielding的博士论文:
  《Architectural Styles and the Design of
  Network-based Software    Architectures》
  (架构风格与基于网络的软件架构设计)
◆一种架构风格
  ▲比具体的架构更为抽象
  ▲类比:接口-实现 或 类-实例

◆Web之所以取得成功的技术架构因素总结
◆HTTP 1.1等Web标准设计的指导原理
  ▲新的Web标准的设计必须符合REST的要求,
   否则整个Web的架构会因为严重的内在矛盾而  崩溃
◆HTTP 1.1的设计是用来为实现REST风格的架构服务的

◆Web服务器上任何一个可命名的抽象概念
  ▲资源是抽象的概念
   -不只能代表服务器上的一个文件、数据库中的一张表等等很具体东西
   -要多抽象有多抽象,只要想象力允许
◆由一个唯一的URI来标识
◆以名词为核心来组织
◆类比:面向对象编程中的类

2.什么是表述

◆GET请求的响应中包含的是资源的表述
◆资源的表述反映了资源的当前状态
◆客户端可以修改资源的表述,并通过POST/PUT请求发送到服务器
  ▲客户端通过修改资源的表述,来间接修改资源的状态

◆资源的表述可以有多种格式
  html
  xml
  json
  ......

3.什么是面向资源
◆Web服务器由大量离散的资源组成
◆每个资源有自己的状态
◆针对每个资源只能执行一组有限的操作
  ▲通过HTTP 1.1的标准方法来对资源进行操作
   -GET/POST/PUT/DELETE/HEAD/OPTION/TRACE
  ▲HTTP 1.1定义了操作资源的统一接口
◆资源之间通过表述中的超链接相互关联

4.Struts2中的REST开发
◆首先定义资源,每个资源对应一个URI,开发一个Controller
◆每一个Controller有7个标准的action方法
◆可以实现额外的action方法,但是必须与操作此资源相关
◆发现有7个标准的action方法无法实现的功能,应再定义一个新的资源

◆URI的格式
  http://www.xxx.com/books
  http://www.xxx.com/books/123
  URI中最好用复数
◆客户端请求某种特殊的表述格式用URI+后缀表示
  http://www.xxx.com/books.xml
  http://www.xxx.com/books/123.json

◆7个标准的action方法与HTTP请求的对应关系:
  GET /books → index
  GET /books/123 → show
  POST /books → create
  PUT /books/123 → update
  DELETE /books/123 → destroy
  GET /books/new → editNew
  GET /books/123/edit → edit

◆如何在HTML表单中模拟PUT/DELETE请求
  <@s.hidden name="_method" value="put"/>

5.REST开发的优点
◆简单、规范
◆对搜索引擎更友好
◆对Ajax支持的更好
◆可以充分利用浏览器端的缓存

参考资料
《架构风格与基于网络的软件架构设计》
RFC 2616(HTTP/1.1)
RFC 2617(HTTP Authentication)
《RESTful Web Services》中文版
《Struts 2.1权威指南》第12章






分享到:
评论

相关推荐

    REST与面向资源的Web开发

    REST与面向资源的Web开发,介绍平台架构知识。

    REST服务构建的web应用的优势和不足

    基于 REST 服务(RESTful Service)的 Web 应用系统设计任务主要包括:识别并设计 REST 风格的服务,采用面向服务的思想进行 REST 服务集成。采用这种方法设计的 Web 应用系统能够结合 REST 风格和面向服务思想的...

    面向资源的架构:REST的另一面.doc

    面向资源的架构,通常以REST(Representational State Transfer)为核心,是一种设计分布式系统,特别是互联网应用的架构风格。REST强调以资源为中心,通过HTTP协议进行交互,利用URI(Uniform Resource Identifier...

    面向资源的架构

    面向资源的架构(Resource-Oriented Architecture,简称ROA)是一种重要的软件架构风格,尤其在Web服务领域展现出独特的价值和潜力。本文旨在深入探讨ROA的核心概念、关键属性及其设计步骤,帮助读者全面理解ROA的...

    面向服务架构(SOA)web系统架构设计-SOA原理与技术 04 REST基础(共44页).pptx

    面向服务架构(SOA)是...REST的无状态、资源导向和标准方法等特性使其成为构建Web服务的理想选择,推动了API经济的繁荣,改变了我们与互联网互动的方式。理解并掌握RESTful设计原则对于现代IT系统架构师来说至关重要。

    RESTFUL WEB SERVICES中文高清版

    本书向读者介绍了什么是REST、什么是面向资源...本书详实、易懂,实战性强,提供了大量RESTful Web服务开发的最佳实践和指导,适合广大的Web开发人员、Web架构师及对Web开发或Web架构感兴趣的广大技术人员与学生阅读。

    actix-web-rest-api-with-jwt:使用Actix-web,Diesel和JWT的简单CRUD后端应用程序

    它提供了简洁的API设计,允许开发者以面向actor的方式编写Web服务。在本项目中,Actix-web被用作服务器的基础,处理HTTP请求并提供响应。它支持路由、中间件、WebSocket以及多种数据格式的解析,使得构建RESTful API...

    SpringMVC精品资源--A lightweight and rest-oriented web framewo.zip

    这个压缩包“SpringMVC精品资源--A lightweight and rest-oriented web framework”很可能包含了关于SpringMVC的学习资料、示例代码、教程文档等,旨在帮助开发者深入理解和高效运用SpringMVC。 SpringMVC作为轻量...

    从零开始学JAVA-WEB开发.

    9. **RESTful API设计**:REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,常用于构建Web服务。了解如何设计RESTful API可以帮助你创建高效、可扩展的Web应用。 10. **版本控制...

    REST架构的网络服务

    - **资源导向与过程导向**:REST倾向于资源导向,而Big Web Services则更多地关注过程调用。 - **轻量级与重量级**:REST通常被认为是轻量级的,因为它使用简单的HTTP方法和URI来操作资源;而Big Web Services往往...

    面向服务架构(SOA)web系统架构设计-SOA原理与技术 08 期末复习(共11页).pptx

    面向服务架构(SOA)是一种软件设计方法,它提倡将应用程序构建为一组可重用的服务,这些服务可以独立地开发和部署,然后通过标准接口进行交互。这种架构风格旨在提高系统的灵活性、可重用性和互操作性。在本课程中...

    Web+Services:技术、架构和应用

    Web服务是一种基于互联网的软件应用程序接口(API)...综上所述,Web服务是构建分布式系统和实现跨组织集成的关键技术,它的核心技术、架构模式以及广泛的应用场景构成了一个复杂的生态系统,持续影响着现代软件开发。

    面向服务架构(SOA)web系统架构设计-SOA原理与技术 05 REST API设计(共55页).pptx

    面向服务架构(SOA)是一种设计原则,旨在构建松散耦合、可重用和模块化的应用程序,以提高系统的灵活性和可扩展性。在SOA中,服务是独立的、可发现的,并通过标准化的接口进行通信。REST(Representational State ...

    java web 开发软件

    使用REST(Representational State Transfer)原则设计API,使得Java Web应用能与其他系统以标准化的方式交换数据,提高可维护性和扩展性。 总之,Java Web开发涵盖了服务器端编程、数据库操作、前端交互、应用...

    Java Web Services - Up and Running, 2nd Edition

    作者提到了Web服务如何与面向服务的架构(Service-Oriented Architecture,简称SOA)相结合,SOA是一种设计原则,旨在通过定义好的接口来实现松耦合的应用程序和服务之间的互操作性。 书中还回顾了Web服务的简短...

    面向服务架构(SOA)中南大学SOA原理与技术 00 课程简介(共66页).ppt

    面向服务架构(SOA)中南大学SOA原理与技术 02 Web服务基础(共66页).ppt 面向服务架构(SOA)中南大学SOA原理与技术 03 Web服务实现(共55页).pptx 面向服务架构(SOA)中南大学SOA原理与技术 04 REST基础(共44...

    Java web开发技术大全

    9. **RESTful API**:理解REST(Representational State Transfer)架构风格和如何设计符合REST原则的API,对于构建现代Web服务至关重要。 10. **Web安全**:包括身份验证、授权、防止SQL注入、跨站脚本攻击(XSS)...

Global site tag (gtag.js) - Google Analytics