什么是资源?什么是资源的表述?

答:在HTTP协议和REST中,“resource”(资源)这个单词是有特定含义的,并不是我们通常所理解的那种广义的资源。“resource”的含义是:服务器端暴露给外界访问的某种能力。当然,服务器端拥有很多广义的资源,包括CPU、内存、存储等等。但是如果这些广义的资源并没有直接暴露给外界访问,那么对于外界来说,它们并不是(可以利用的)资源。

REST是一种分布式应用的架构风格。REST看待服务器的角度,与另外两种分布式应用架构风格DO(分布式对象)、RPC(远程过程调用)有很大差别。REST将服务器看作是由很多离散的资源组成,每一个资源都有一个命名,并且拥有一个URI作为访问地址(也可以拥有多个URI。资源的命名和其URI地址,在实战场合可以不加区分)。对某个资源感兴趣的客户端应用,可以通过该资源的URI与其交互。 和面向对象编程中的“对象”类似,资源也是以名词为核心来组织的。同样地,和“对象”类似,资源也是一个抽象的工具。任何可以命名的抽象概念,都可以通过将其定义为一个资源,暴露给外界访问。也就是说,资源不仅仅可以代表服务器上的一个文件、数据库中的一张表等等具体的东西。只要想象力允许,资源的定义可以要多抽象有多抽象。因为REST鼓励的是大粒度的网络交互,通常不应该设计粒度过细的资源,否则会因为网络调用太过频繁,对应用的性能造成致命影响。

客户端应用与资源的交互,是通过资源的“representation”(表述)来间接完成的。资源的表述是一段对于资源(在某个特定时刻的)状态的描述。客户端请求资源的表述,对表述加以修改,然后将修改过的表述发送给服务器端,请求服务器端对资源执行某种(局部的或者完全的)状态改变。在客户端-服务器端之间转移的,并不是资源本身,而是资源的表述。缩写词REST中的“state transfer”翻译为“状态转移”,在客户端-服务器端之间转移的资源表述,所代表的正是资源的当前状态。 资源的表述,可以有多种格式,例如json/xml/html/纯文本等等。服务器发送给客户端的资源表述的格式,可以通过定义在HTTP协议中的标准的内容协商(content negotiation)机制来确定。

转载: http://www.ituring.com.cn/article/939

什么是资源?什么是资源的表述?相关推荐

  1. Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组

    一. Android资源文件简介 1. Android应用资源的作用 (1) Android项目中文件分类 在Android工程中, 文件主要分为下面几类 : 界面布局文件, Java src源文件, ...

  2. 华为FusionSphere概述——计算资源、存储资源、网络资源的虚拟化,同时对这些虚拟资源进行集中调度和管理...

    华为FusionSphere概述 FusionSphere是华为自主知识产权的云操作系统,集虚拟化平台和云管理特性于一身,让云计算平台建设和使用更加简捷,专门满足企业和运营商客户云计算的需求.华为云操 ...

  3. 【Android 安装包优化】资源混淆 ( AAPT2 资源编译工具 | resources.arsc 资源映射表 工作机制 )

    文章目录 一.AAPT2 资源编译工具 二.resources.arsc 资源映射表 工作机制 三.参考资料 一.AAPT2 资源编译工具 资源的编译 , 生成 R.java 文件 , 都是通过 AA ...

  4. 【Android 安装包优化】移除无用资源 ( 自动移除无用资源 | 直接引用资源 | 动态获取资源 id | Lint 检查资源 )

    文章目录 一.自动移除无用资源 ( 不推荐使用 ) 二.直接引用资源与动态获取资源 1.直接引用资源 2.动态获取资源 id 三.Lint 检查资源 四.参考资料 一.自动移除无用资源 ( 不推荐使用 ...

  5. 【Android 应用开发】Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组

    . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/19913755 . 一. Android资源文件简介 1 ...

  6. 一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp)...

    一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp) 程序员的生活要一切自动化,更要幸福^_^. 转载请注明出处http: ...

  7. 《系统集成项目管理工程师》必背100个知识点-38资源平滑和资源平衡

    资源平滑和资源平衡的区别? (1)资源平衡往往改变关键路径,通常是延长. (2)资源平滑不改变关键路径,完工日期不会延迟. (3)资源平衡可以实现所有资源的优化,资源平滑可能无法实现所有资源的优化.

  8. 笔记-项目进度管理-资源平衡和资源平滑

    本题考查制定进度计划的技术和工具,参考<信息系统项目管理师教程>第三版教程P279. 1.进度网络图中可能有多条关键路径.在项目进展过程中,有的活动会提前完成,有的活动会推迟完成,有的活动 ...

  9. web中静态资源和动态资源的概念及区别

    1.静态资源和动态资源的概念 简单来说: 静态资源:一般客户端发送请求到web服务器,web服务器从内存在取到相应的文件,返回给客户端,客户端解析并渲染显示出来. 动态资源:一般客户端请求的动态资源, ...

  10. 容器资源需求、资源限制(二十二)

    官网:https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ 容器的资源需求,资源限 ...

最新文章

  1. php函数get和set,php中外部类调用_get函数和_set函数的方法
  2. nosql非关系型数据库_从Datomic出发,革命性的非NoSQL数据库
  3. bzoj4593: [Shoi2015]聚变反应炉
  4. linux代理过载命令_我们基于Linux的机器人的未来,数据过载和管理以及更多新闻
  5. windows系统使用bat命令文件启动redis
  6. 变频器的工作原理与结构介绍
  7. Unity3D开发游戏坦克大战
  8. Python Post提交简单案例,文本内容在线语音合成
  9. torch模块常用方法总结
  10. java语言使用栈和队列实现简易停车场管理系统
  11. Dev g++.exe g++.exe C:\Users\meng8\Desktop\g++.exe CreateProcess: No such file or directory.
  12. 数据库和MySQL的简单介绍
  13. zabbix监控配置(Grafana)
  14. 学习英语的最系统的方法是什么?
  15. 富士通论坛2014:人本创新,应用为王
  16. 四位行波进位加法器_【HDL系列】Sklansky加法器原理与设计
  17. BPMN 2.0 快速使用文档
  18. 嵌入式大牛详解:嵌入式linux开发流程总结
  19. 关于阿里云ECS服务器提示高危漏洞问题的处理
  20. 重庆理工大学计算机类分流,重庆理工大学2020级按类招生专业分流方案

热门文章

  1. 怎么用计算机玩超级玛丽,玩家在《超级马里奥制造2》里做出了计算器 计算过程太神奇...
  2. UPS FedEx DHL TNT
  3. 【深度学习】Mac + pycharm环境下 MASK-Rcnn 代码实现过程中的问题
  4. 用python爬虫下载视频_使用Python编写简单网络爬虫抓取视频下载资源
  5. 让程序后台运行的几种方法
  6. Oracle存储过程-增删改查与调用
  7. linux mount挂载设备(U盘,光盘,iso等)使用说明
  8. 怎么屏蔽还有照片_“朋友,别逼我屏蔽你”:乱象丛生的朋友圈,到此为止吧...
  9. 广告投放黑科技Cloak
  10. 【5分钟代码练习】01—导航栏鼠标悬停效果的实现