3.1 Web的起源

沿 URI 创建、目标解析、HTTP 请求、表示返回和超文本跟随追踪 Web 的起源,用 URI/URL/服务器路径边界实验建立开放协议心智模型。

学习目标

  • 能沿创建URI、解析目标、HTTP请求、返回表示和跟随链接追踪一次超文本访问
  • 能区分 URI、URL、服务器文件路径、资源和表示,解释开放协议如何让客户端与服务器分别实现
  • 能在正常、相对链接和非法目标场景中定位首个偏离,并从清空解析状态重放访问

为什么需要这一机制

Web 的起源不只是把文档放到网络上,而是把“资源是什么”“如何找到它”“如何交换它”拆成开放合同。URI 标识资源,HTTP 交换表示,超文本链接连接资源;客户端不需要知道服务器内部文件布局,服务器也不需要绑定某个客户端实现。

核心合同

resourceURIrequestHTTPrepresentationresource\xrightarrow{URI}request\xrightarrow{HTTP}representation

资源不是表示,URI 也不是服务器文件路径。一个 URI 可以映射到动态生成的表示、不同媒体类型或重定向目标;客户端要依据 HTTP 状态和表示合同继续行动。

Web 起源链:标识资源,交换表示URI 不是文件路径,链接不是复制文件,HTTP 表示也不是资源本身1创建URI资源标识协议起点2解析目标基准 + 链接访问证据3HTTP请求方法 + 消息访问证据4返回表示状态 + 内容表示边界5跟随链接下一资源访问证据开放协议让客户端、服务器和资源提供者可以分别实现
专属图示:把 URI 标识、HTTP 交换和超文本关系放入一条可重放路径。

五个节点到机制证据

创建URI

记录 scheme、authority、path、query、fragment 和基准 URI。标识应描述资源关系,内部部署路径不应成为隐含依赖。

解析目标

相对链接必须和当前文档基准一起解释;解析后的目标还要经过协议、主机、端口和安全策略检查。

HTTP请求

记录方法、目标、Accept、认证、缓存条件和请求体。请求发送成功不等于资源存在,也不等于返回表示满足客户端需求。

返回表示

分别保存状态码、媒体类型、长度、缓存语义和表示摘要。404、重定向和内容协商失败都应在协议层明确区分。

跟随链接

跟随不是无条件跳转:检查 scheme、来源、权限和重定向次数,记录每次链接解析和目标请求,防止循环和越权。

最小可重放实现

base = "https://example.test/docs/index.html"
target = resolve(base, "../api/item?id=7")
response = request(target, accept="application/json")
assertTrace(base, target, response.status, response.representation)
assertTrue(resetAndFollow(base, "../api/item?id=7") == baselineTrace)

这段草图只表达 URI、HTTP 和表示合同,不复制书中叙事或代码。实际复核应保存基准 URI、解析目标、请求消息、状态码、媒体类型、表示和复位结果。

五步复核一次超文本访问

分步1 / 5

1. 创建稳定 URI

固定资源关系、scheme、authority、path、query 和 fragment,区分公开标识与服务器内部文件路径。

Lab

URI 解析与表示实验

一次只改变基准、链接或目标策略,观察解析结果和下一次请求。

绝对 URI 直接解析到允许的资源表示

base=— → https://example.test/a → GET → 200 text/html → follow

判定

通过:资源标识与表示语义一致,跟随次数可重放

当前场景:绝对 URI;记录基准 URI、解析目标、请求、状态码、媒体类型、跟随次数和复位。

正常、边界与故障证据

URI 与超文本证据矩阵资源标识、目标解析、表示语义和链接历史需要分别记录观察项正常边界故障标识稳定相对内路径目标可解析重定向非法表示兼容多媒体404链接下一步有限循环URL 是 URI 的一种定位形式,但资源与服务器文件路径仍然分离
专属图示:分别验收标识、解析、表示和链接跟随的协议边界。
场景只改变的变量预期判定必存证据
正常绝对 URI、可达资源、兼容表示请求与链接关系可重放基准、目标、请求、状态、表示
边界相对 URI、重定向或媒体类型变化解析和协议语义明确,目标在策略内基准、解析、状态、媒体类型
故障内部路径泄漏、非法 scheme 或链接循环在首个标识/安全边界拒绝原 URI、解析链、拒绝原因、复位

专属因果实验

先预测创建、解析、请求、表示和跟随五个节点,再运行绝对 URI 基线;然后一次只切换基准 URI、相对路径或目标 scheme。实验显示解析链、请求方法、状态码、媒体类型和跟随次数,避免把“看起来像地址”当成合法资源标识。

Lab

URI 解析与表示实验

一次只改变基准、链接或目标策略,观察解析结果和下一次请求。

绝对 URI 直接解析到允许的资源表示

base=— → https://example.test/a → GET → 200 text/html → follow

判定

通过:资源标识与表示语义一致,跟随次数可重放

当前场景:绝对 URI;记录基准 URI、解析目标、请求、状态码、媒体类型、跟随次数和复位。

故障诊断:从基准 URI 找首个解析偏离

  1. 核对标识语义:区分资源、URI、URL 和服务器文件路径,确认公开合同没有泄漏内部实现。
  2. 核对基准解析:比较文档基准、相对链接、规范化结果和安全策略,定位第一处目标变化。
  3. 核对 HTTP 表示:检查方法、状态、媒体类型和重定向,区分 URI 存在与表示可用。
  4. 核对链接历史:限制循环、权限和重定向次数,清除解析缓存后从基线重放。

术语表

名词解释

本章出现的专业名词,用大白话再讲一遍。

3.1 Web的起源

用 URI、HTTP、表示和超文本链接连接分布式资源的开放协议模型。

创建URI

为资源或资源关系创建稳定统一标识的阶段。

解析目标

结合基准 URI 和相对链接得到下一次请求目标的阶段。

HTTP请求

用方法、请求目标和消息字段请求资源表示的阶段。

返回表示

以状态码、头部和内容返回资源处理结果的阶段。

跟随链接

从当前表示解析超文本关系并发起下一次目标请求的阶段。

练习

练习

问题 1: 为什么服务器文件路径不能直接替代 URI?

问题 2: 相对链接解析时为什么必须保存基准 URI?

问题 3: HTTP 返回 404、重定向和媒体类型不匹配为什么要分开处理?

资料与写作方式声明

本章以码农翻身权威目录界定学习范围,并结合正文列出的技术资料独立重写;不宣称复现原书正文,也不沿用原作表述。

原作版权归作者与出版社所有;本站原创教学结构与表述仅供学习交流。

本页小结

3.1 Web的起源的关键不是记住一个地址格式,而是沿创建URI、解析目标、HTTP请求、返回表示和跟随链接保存资源与表示的边界证据。完成标准是区分 URI、URL 与内部路径,在首个解析、状态或媒体类型偏离处修复,并用清空状态后的重放证明超文本关系可复现。

讨论

评论区加载中…