不喜欢广告? 无广告 今天

模拟HTTP响应构建器

数据开发人员联网
广告 移除?
状态码后的理由文本的可选覆盖。

Custom Headers

或添加自定义

添加的头信息

尚未添加自定义头信息。常见的头信息(Content-Type、Content-Length、Date)将根据上述选项自动添加。

广告 移除?

指导

HTTP 响应模拟构建器

模拟HTTP响应构建器

在几秒钟内构建一个结构正确的 HTTP 响应消息。选择一个状态码,选择消息体类型,添加头信息,工具将生成一个可直接粘贴的响应字符串,包含状态行、头信息和消息体,以 CRLF 分隔——非常适合用于测试用例、集成模拟、API 文档以及对客户端进行响应回放。

如何使用

  1. 选择 HTTP 版本 (默认为 HTTP/1.1) 和一个 状态码 来自分组选择器——例如 200 OK, 404 Not Found, 或者 503 Service Unavailable.
  2. (可选) 覆盖 原因短语 如果需要在状态码后使用非标准文本。
  3. 选择一个 消息体类型 (纯文本、JSON、XML、HTML、表单或无) 并输入或粘贴消息体内容。
  4. 切换 自动设置 Content-Type, 自动设置 Content-Length,并且 日期 使头信息与服务器实际响应保持一致。
  5. 添加任何额外的头信息——从常见头信息(Cache-Control、ETag、Set-Cookie、CORS、速率限制头)中选择,或输入自定义的名称/值对。
  6. 复制完整的响应、仅复制头信息,或将其下载为 .http 文件,用于在 REST 客户端、测试用例或回放工具中使用。

特征

  • 分组状态码选择器 – 将常见的 1xx 至 5xx 状态码按类别组织,每个类别都有其标准的原因短语。
  • 消息体类型选择器 – 自动填充匹配的 Content-Type(application/json、text/html、application/xml、application/x-www-form-urlencoded、text/plain),以确保头信息和消息体内容保持同步。
  • 自动 Content-Length – 使用 UTF-8 编码计算字节(而非字符),与真实服务器计算值的方式一致。
  • IMF-fixdate Date 头 – 生成符合标准的时间戳(例如 Sun, 06 Nov 1994 08:49:37 GMT)以表示当前时刻。
  • 常见响应头信息 – 提供一键预设,用于 Cache-Control、ETag、Expires、Last-Modified、Location、Server、Set-Cookie、Vary、WWW-Authenticate、Access-Control-Allow-Origin、X-RateLimit 和 X-Powered-By。
  • 自定义标题 – 可添加任意名称/值对,并实时预览组装后的响应。
  • 两种输出视图 – 完整响应(状态行 + 头信息 + 空行 + 消息体)和仅头信息视图——可复制任一种,或下载完整的响应作为 response.http.
  • 符合规范的行结束符 – 使用 CRLF(\r\n)在行之间分隔,这是 RFC 9112 规定的行终止符。
  • 实时更新 – 每次更改都会立即重新计算输出,无需提交按钮。
  • 完全在浏览器中运行 – 无数据离开您的设备,也无需后端服务。

常见用例

  • 单元和集成测试用例 – 将输出粘贴到字符串测试用例中,用于 requests-mock, nock、MSW、WireMock 或任何 HTTP 记录器。
  • API文档 – 在 OpenAPI 示例或开发者文档中展示精确的响应结构(含头信息)。
  • 客户端调试 – 在无需搭建真实后端的情况下,重现罕见的服务器响应(如限流、部分内容、重定向)。
  • 教学 HTTP – 可视化响应消息的线上传输格式:状态行、头信息、空行、消息体。
  • 手动回放 – 将响应通过 nc -l 或类似监听器传递,以测试客户端的反应。

常问问题

  1. HTTP/1.1 响应消息的结构是什么?

    一个 HTTP/1.1 响应由状态行、零个或多个头字段、一个空行以及可选的消息体组成。状态行由 HTTP 版本、三位数的状态码和一个原因短语组成,各部分之间以单个空格分隔。每一行以 CRLF(回车+换行)结束。位于最后头字段之后的空 CRLF 标记了消息体的开始。此格式定义在 RFC 9112(RFC 7230 的继任者)中。

  2. Content-Length 实际上测量的是字节还是字符?

    Content-Length 是消息体的字节数(octets),而不是字符数。对于 ASCII 文本,两者数值相同,但对于包含非 ASCII 字符的 UTF-8 字符串,数值会不同——一个表情符号或带重音的字母通常占用 2 到 4 个字节。从字符串的字符数量计算 Content-Length 是最常见的 HTTP 错误之一,会导致客户端截断消息体或无限等待缺失的字节。

  3. 301 和 302 重定向有什么区别?

    这两种响应都包含一个指向新 URL 的 Location 头,但语义不同。301 Moved Permanently 告诉客户端和搜索引擎资源已永久移动,因此缓存和链接重写器可能会替换原始 URL。302 Found(最初称为 'Moved Temporarily')表示临时重定向——未来应继续使用原始 URL。对于现代方法保留的重定向,308(永久)和 307(临时)通常比 301 和 302 更推荐。

  4. HTTP/2 仍然使用状态行和原因短语吗?

    HTTP/2 保留了相同的数字状态码,但完全移除了文本原因短语。状态通过伪头字段 (:status: 200) 传递,协议以二进制帧而非文本行形式传输。原因短语仅存在于 HTTP/1.x 中,始终是信息性的——客户端必须根据状态码采取行动,而不是文本内容。

  5. 为什么 HTTP 要求使用 CRLF 而不是仅使用换行符?

    HTTP 继承了早期互联网文本协议(SMTP、NNTP、FTP)在 1980 年代定义的行终止约定,这些协议都使用 CRLF (\r\n) 作为标准的行结束符。RFC 9112 中的语法要求 CRLF 用于状态行、头字段之间以及位于消息体前的空行。大多数服务器可以容忍仅使用 LF,但严格解析器和代理可能会拒绝缺少回车符的响应。

想要享受无广告的体验吗? 立即无广告

安装我们的扩展

将 IO 工具添加到您最喜欢的浏览器,以便即时访问和更快地搜索

添加 Chrome 扩展程序 添加 边缘延伸 添加 Firefox 扩展 添加 Opera 扩展

记分板已到达!

记分板 是一种有趣的跟踪您游戏的方式,所有数据都存储在您的浏览器中。更多功能即将推出!

广告 移除?
广告 移除?
广告 移除?

新闻角 包含技术亮点

参与其中

帮助我们继续提供有价值的免费工具

给我买杯咖啡
广告 移除?