Web体系=资源+URI+表示

时间:2023-11-24 23:42:32

概述

Web有三个核心概念:资源(Resource)、URI(UniformResource Identifer,统一资源标识符)、表示(Representation).一个资源由一个URI进行标识。表示是从资源返回的数据,其格式被称为媒体类型。

资源

任何带有URI标识的东西都是资源。

资源并不只限于文件,还包括服务,系统,流媒体等。

URI

每个资源都可以通过唯一的URI访问,可以把URI看作一个资源的主键。

一个URI只能对应一个资源,但多个URI可以指向同一个资源。

URI 的格式为:scheme:hierarchicalpart[?query][#fragment],其中scheme表示通信协 议,hierarchical part 表示通信地址、安全证书颁发机构(authority)和分层路径(hierarchical path)等,查询字符串query和fragment是可选的。

URI分为两种类型:URL(UniversalResource Locator,统一资源定位符)和URN(Universal Resource Name,统一资源名)。URL既标识一个资源,又指定了访问该资源的方法。URN是一个资源的唯一标识符。在实际应用中,大多数URI都是URL,因此 URI和URL常常同义替换使用。

表示

表示是资源在某个时刻状态的快照。

当HTTP客户端请求一个资源时,返回的是这个资源的表示,而不是资源本身。

从一个请求到下一个请求发生时,资源的状态可能会发生很大的变化,因而返回的表示也会大不相同。

一个资源可以有一个或多个表示。

媒体类型

每个表示都有特定的表示,即媒体类型。

媒体类型是在Internet上客户端和服务器之间传递信息的格式。

媒体类型由两部分标识组成。第一部分是*媒体类型,描述了通用的类型信息以及常用处理规则。常见的*类型有:application、image、text、video和multipart。第二部分是子类型,描述一个非常具体的数据格式,如json、html等。

常用媒体类型列表

媒体类型

描述

Text/html

HTML文档

Application/xhtml+xml

使用格式良好的XML的HTML文档

Application/xml

XML文档和模式

Application/json

JSON文档

Application/x-www-form-urlencoded

表单键/值数据

Multipart/mixed

多个数据集合而成的单个正文

Multipart/form-data

文件

Image/jpeg

JPEG文档

Image/gif

GIF文档

Image/png

PNG文档

Image/svg+xml

SVG文档

Application/atom+xml

Atom源

Application/vnd.hal+json

包含相关资源链接的数据

Application/vnd.collection+json

数据集合

更多

各种媒体类型的特点:

HTML 类型展示Web页面效果极佳,但不适合传输数据;JSON传输数据很好用,但在重现图像上效率却十分低下;PNG是极好的图像格式,但不适合存储可扩展的 矢量图形,对此SVG才是优选。ATOM,HAL和Collection+JSON能表达更为丰富的应用程序主义,不过受到的限制也较多。