# HTTP Link Header RFC 8288 解析器与分页爬虫预览

按 RFC 8288 附录 B 算法解析 Link 响应头，相对 URL 按 RFC 3986 解析为绝对地址，rel 对照 IANA 注册表分类，校验 preload/prefetch 提示，并模拟 rel="next" 分页爬虫的逐页行走（含环检测）。

> 标准页面: https://elysiatools.com/zh/tools/http-link-header-rfc8288-parser-and-pagination-crawler-preview

- **分类:** Network

- **关键词:** link 头解析, rfc 8288, web linking, rel next 分页, preload 预取提示, 相对 url 解析, 爬虫预览

## 概述

解析器逐字实现 RFC 8288 附录 B：逗号分隔的 link-value、token 或带反斜杠转义的引号字符串参数、RFC 8187 title* 解码、星号参数覆盖、rel 首次出现优先、注册 rel 统一小写。目标与 anchor 用 RFC 3986 §5.2 算法（即 URL()，绝不使用响应体内的 base）。附加检查：未加引号却含空格的值、需要百分号编码的 IRI、扩展 rel 必须是绝对 URI、已废弃的 rev、缺少 as 的 preload/prefetch、非法 as 目标、同一响应出现多个 rel="next"。每行粘贴一个响应即可观察爬虫从 base URL 沿 rel="next" 逐页跳转——每行基于上一页解析，带已访问集合环检测与深度上限。

## 输入项

- **Link 请求头** (textarea): ; rel="next", ; rel="last" Paste one response per line to simulate a pagination crawl.
- **基础 URL** (text): https://api.example.com/api/items?page=1 — required to resolve relative targets
- **最大爬取深度** (number): 10

## 适用场景

- 调试与验证 REST API 分页响应头（如 first、prev、next、last）的 RFC 8288 语法合规性时。
- 排查 CDN 或服务端下发的 preload/prefetch 资源预加载提示头及其 as 属性配置时。
- 模拟与测试分页爬虫在多页 API 响应中的逐页跳转逻辑与环路检测机制时。

## 工作原理

- 解析 Link 头部字符串，依据 RFC 8288 附录 B 提取 link-value、参数键值对并解码 RFC 8187 扩展参数。
- 结合 Base URL 按照 RFC 3986 算法将相对目标 URI 与 anchor 解析为规范的绝对 URL。
- 对照 IANA 注册表分类关系类型，并检查缺少 as 的 preload 提示、非法字符及重复 rel 等语法异常。
- 按行读取多响应数据，沿 rel="next" 模拟爬虫逐页跳转，记录访问轨迹并在检测到环路或达到深度上限时终止。

## 使用案例

- API 开发者验证 Web 接口返回的分页 Link 头是否符合 RFC 8288 标准与客户端解析要求。
- 数据爬虫工程师在抓取 API 前预览分页路径，检查 rel="next" 链条是否存在断链或循环引用。
- 前端与运维工程师审查反向代理注入的资源预加载提示（Resource Hints）属性是否完整合规。

## 常见问题

### 如何将 Link 头中的相对路径解析为绝对 URL？

在基础 URL 输入框中提供当前请求的完整地址，解析器会自动依据 RFC 3986 规则补全相对路径。

### 如何模拟多页连续抓取流程？

在 Link 请求头输入框中按行粘贴各页响应头，工具会从第一行起始并沿每一页的 rel="next" 依次向下模拟遍历。

### 工具如何处理同一链接中的多个 rel 参数？

遵循 RFC 8288 规范，系统采用首次出现的 rel 属性值，并自动将其转换为小写后匹配 IANA 注册表。

### 环检测（Cycle Detection）是如何工作的？

工具维护已访问 URL 集合，当 rel="next" 指向已访问过的页面时立即标记死循环并终止爬虫模拟。

### 为什么 preload 链接会触发格式警告？

当 rel 包含 preload 或 prefetch 时，若缺少 as 属性或指定了无效的目标类型，解析器将提示校验警告。

## 相关工具

- [NB-IoT / LTE-M / Cat-M1 CoAP LwM2M 蜂窝物联网分包分析器](https://elysiatools.com/zh/tools/nb-iot-lte-m-cat-m1-coap-lwm2m-cellular-iot-packet-analyzer): 逐字节解析蜂窝 IoT 设备的十六进制抓包:CoAP 头与选项(块传输/Observe)、LwM2M TLV 对象树(带标准资源名)、SMS-DELIVER UDH 应用端口寻址(自动解开 CoAP-over-SMS)、注册 link-format 与 DTLS 记录层说明。
- [Webhook 调试与中继工具](https://elysiatools.com/zh/tools/webhook-debugger-relay): 生成唯一的 Webhook 接收地址，查看请求详情、校验签名，并把捕获的请求回放到目标端点
- [DNSSEC 信任链与 RDAP 审计器](https://elysiatools.com/zh/tools/whois-rdap-dnssec-chain-validator-and-iana-bootstrap-trust-auditor): 端到端审计域名：IANA RDAP bootstrap 引荐、注册局/注册商 WHOIS 数据，以及从根 KSK 经 TLD DS 到域名 DNSKEY 的 DNSSEC 信任链——带 DS 摘要验证与 RRSIG 过期标记。
- [Cron 表达式可视化器](https://elysiatools.com/zh/tools/cron-expression-visualizer): 解析 cron 调度，校验标准 cron 或 Quartz 语法，并用时间轴和分组日历展示未来执行时间
- [CSV 畸形行外科医生](https://elysiatools.com/zh/tools/csv-malformed-row-surgeon): 逐行外科手术式修复畸形 CSV 行：未转义（游离）引号、混合分隔符（同一文件中制表符/分号/逗号混用）、带 BOM 的表头、CRLF/CR 换行符与多余空行。外科医生采用容错解析，以红绿逐行 diff 显示每一处改动（前 → 后，并标注修复原因），列出未改动的行，并输出清洗后的 CSV。可选 AI 修复会在确定性修复后复查可疑行。它补足 CSV 校验器（仅报告问题）——真正修复受损行。
- [HTTP/3 QUIC 握手解剖](https://elysiatools.com/zh/tools/http-3-quic-handshake-anatomy): 逐字节解剖 HTTP/3 over QUIC 握手。可视化 1-RTT 全新握手、基于会话票据的恢复，以及 0-RTT 早期数据三种场景，配以时序图、每个数据包的字段布局、Retry 报文，以及与 TCP + TLS 1.3 的逐项对比。适合面试备考、协议学习与性能工程。
- [ISO 8601 时长解析与算术工作台](https://elysiatools.com/zh/tools/iso-8601-duration-parser-arithmetic-workbench): 解析 ISO 8601 时长、校验 8601-2 扩展、执行日历真实算术、按锚点真实时长排序并计算时刻之差。
- [MVT Mapbox 矢量瓦片 PMTiles 谷歌投影与 Tilelive 编码审计器](https://elysiatools.com/zh/tools/mvt-mapbox-vector-tile-pmtiles-google-mvt-projection-and-tilelive-encoding-auditor): 按 Mapbox Vector Tile Specification 2.x 审计 .mvt/.pbf 矢量瓦片与 PMTiles v3 归档：解码 protobuf Layer/Feature/Value 表，校验 MoveTo/LineTo/ClosePath 几何命令流、环绕向与标签索引，检查 Web Mercator 谷歌瓦片 XYZ 边界，解码 PMTiles v3 目录，并标记瓦片大小与要素数预算。

## 示例

- [Nginx 日志解析示例](https://elysiatools.com/zh/samples/nginx-log-samples): 用于测试 log-parser 工具的综合 Nginx 日志样本，包括访问日志和错误日志的各种格式和场景
- [Markdown 链接提取示例](https://elysiatools.com/zh/samples/markdown-with-links): 包含各种链接类型的 Markdown 示例文档，用于测试 Markdown 链接提取工具
- [Web Python 图像处理示例](https://elysiatools.com/zh/samples/web-image-processing-python): Web Python 图像处理示例，使用 PIL/Pillow 包括读取、保存、缩放和格式转换
- [Web Rust 图像处理示例](https://elysiatools.com/zh/samples/web-image-processing-rust): Web Rust 图像处理示例，包括图像读取保存、缩放和格式转换
