http协议

请求报文

HTTP 报文分为​​请求报文​​(客户端发送)和​​响应报文​​(服务器返回),两者都包含三个部分:

<起始行>\r\n
<头部字段>\r\n
<头部字段>\r\n
...\r\n
\r\n
<消息正文>

请求行 - Request Line

METHOD Request-URI HTTP-Version
  • ​METHOD​​: 请求方法(GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH)

  • ​Request-URI​​: 请求的资源路径

  • ​HTTP-Version​​: 协议版本(HTTP/1.1 或 HTTP/2)

GET /api/users HTTP/1.1
POST /upload/image HTTP/1.1

请求头 - Request Headers

常用请求头字段及设置:

头部字段 (Field)
类别
重要性
字段说明 (Description)
字段语法 (Syntax)
字段示例 (Example with Parameters)
参数说明 (Parameters)
类型
常用场景 (Common Use Cases)

Host

核心

★★★

指定请求将要发送到的服务器域名和端口号。HTTP/1.1 ​​必须​​包含的头部。

Host: <domain>:<port>

Host: example.com Host: localhost:8080

​domain:​​ 服务器域名。 ​​port:​​ 可选,服务器监听的端口号(默认80/443则省略)。

字符串

虚拟主机托管(一台服务器托管多个网站)。

User-Agent

信息

★★☆

包含一个特征字符串,用来让服务器识别客户端使用的应用程序、操作系统、厂商和版本。

User-Agent: <product> / <product-version> <comment>

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36

​product:​​ 产品名称(如 Mozilla)。 ​​version:​​ 产品版本。 ​​comment:​​ 零个或多个注释,包含子产品信息。

字符串

服务器据此进行统计、提供不同设备(桌面/移动)的页面版本、识别爬虫。

Accept

内容协商

★★☆

告知服务器客户端能够处理哪些类型的媒体(MIME types),以及优先级。

Accept: <MIME-type>/<MIME-subtype>; q=<q-value>[, <type>; q=<q-value>]*

Accept: text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8

​MIME-type:​​ 媒体类型。 ​​q=:​​ 相对质量价值(权重),范围 0-1,默认 1。值越高,优先级越高。

列表

浏览器告知服务器希望接收 HTML、XML 还是 JSON 等。

Accept-Language

内容协商

★★☆

告知服务器客户端偏好哪种自然语言。

Accept-Language: <language>; q=<q-value>[, <language>; q=<q-value>]*

Accept-Language: en-US, en;q=0.9, zh-CN;q=0.8, zh;q=0.7

​language:​​ 语言标签(如 en, zh-CN)。 ​​q=:​​ 权重值。

列表

国际化和本地化,服务器据此返回对应语言的网页版本。

Accept-Encoding

内容协商

★★☆

告知服务器客户端支持哪些内容编码(通常是压缩算法)。

Accept-Encoding: <encoding>; q=<q-value>[, <encoding>; q=<q-value>]*

Accept-Encoding: gzip, deflate, br

​encoding:​​ 编码类型,如 gzip, deflate, br (Brotli), identity (不压缩)。 ​​q=:​​ 权重值。

列表

客户端声明支持的压缩格式,服务器据此选择一种进行压缩响应,节省带宽。

Accept-Charset

内容协商

★☆☆

告知服务器客户端偏好哪种字符集。​​现代已基本废弃​​,因为字符集通常在 Content-Type 中指定。

Accept-Charset: <charset>; q=<q-value>

Accept-Charset: utf-8, iso-8859-1;q=0.5

​charset:​​ 字符集名称。

列表

旧式浏览器使用,现在字符集协商通过 Content-Type 头的 charset 参数完成。

Content-Type

实体

★★★

在 ​​POST​​ 或 ​​PUT​​ 等请求中,指明请求体的媒体类型。

Content-Type: <media-type>; charset=<encoding>

Content-Type: application/json; charset=utf-8 Content-Type: application/x-www-form-urlencoded Content-Type: multipart/form-data; boundary=something

​media-type:​​ 媒体类型。 ​​charset:​​ 字符编码。 ​​boundary:​​ 用于 multipart 类型的分隔符。

媒体类型

提交 JSON 数据给 API (application/json)。提交 HTML 表单 (application/x-www-form-urlencoded)。文件上传 (multipart/form-data)。

Content-Length

实体

★★☆

请求体的字节大小(十进制数字)。

Content-Length: <length>

Content-Length: 348

​length:​​ 请求体的确切字节数。

数字

对于有请求体的方法(如 POST)是必需的,以便服务器知道要读取多少数据。

Authorization

认证

★★★

包含用于向服务器认证用户代理的凭证。

Authorization: <type> <credentials>

Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

​type:​​ 认证方案,如 Basic, Bearer, Digest。 ​​credentials:​​ 对应方案的凭证(如 base64 编码的用户:密码 或 JWT Token)。

字符串

HTTP 认证(Basic)。JWT Token 认证(Bearer)。API 访问控制。

Cookie

状态

★★★

包含先前由服务器通过 Set-Cookie 响应头发送并存储的 HTTP Cookies。

Cookie: <name>=<value>; <name>=<value>

Cookie: sessionId=abc123; userId=john_doe

​name=value:​​ 键值对,多个 cookie 用分号和空格分隔。

列表

携带用户会话标识、身份认证令牌、用户偏好设置等。

Referer

信息

★★☆

表示当前请求页面的来源页面的地址。

Referer: <url>

Referer: https://example.com/previous-page.html

​url:​​ 来源页面的绝对或相对 URL。

URL

服务器用于日志记录、分析来源、防盗链、优化缓存。​​注意拼写错误(应是 Referrer)​​。

Origin

CORS

★★★

表示跨域请求或 POST 请求的来源。​​不包含路径信息​​,只有协议、域名和端口。

Origin: <scheme>://<hostname>[:<port>]

Origin: https://www.example.com Origin: http://localhost:3000

​scheme:​​ 协议(如 http, https)。 ​​hostname:​​ 域名。 ​​port:​​ 端口号(可选,非默认端口时出现)。

来源

​CORS 跨域请求​​的核心头部。服务器根据此头决定是否允许跨域访问。

If-Modified-Since

条件

★★☆

允许服务器在资源​​自指定日期以来未被修改​​的情况下返回 304 Not Modified

If-Modified-Since: <http-date>

If-Modified-Since: Tue, 15 Nov 1994 08:12:31 GMT

​:​​ 遵循 RFC 7231 的日期时间格式。

日期时间戳

​条件性 GET 请求​​。与服务器的 Last-Modified 响应头配合使用,节省带宽。

If-None-Match

条件

★★★

允许服务器在资源的 ETag ​​与列表中任何一个都不匹配​​的情况下返回 304 Not Modified。比 If-Modified-Since 更精确。

If-None-Match: <etag>[, <etag>]* If-None-Match: *

If-None-Match: "737060cd8c284d8af7ad3082f209582d" If-None-Match: "strong-tag", W/"weak-tag"

​etag:​​ 实体标签,来自服务器的 ETag 响应头。 ​​​​*: 特殊值,匹配任何当前存在的资源。

列表

​条件性 GET 请求​​。与服务器的 ETag 响应头配合使用,实现高效的缓存验证。

Cache-Control

缓存

★★☆

客户端使用该头来指定缓存机制在本次请求/响应链中应如何操作。

Cache-Control: <directive>

Cache-Control: no-cache Cache-Control: max-age=0 Cache-Control: no-store

​no-cache:​​ 在使用缓存副本前强制向服务器验证。 ​​max-age=0:​​ 含义类似于 no-cache。 ​​no-store:​​ 请求和响应都禁止被缓存。

指令

强制浏览器或代理服务器向源服务器重新验证缓存 (no-cache)。确保获取最新内容。

Connection

连接

★☆☆

控制当前网络连接在当前请求完成后是否保持打开。

Connection: keep-alive | close

Connection: keep-alive

​keep-alive:​​ 保持连接打开(HTTP/1.1 默认)。 ​​close:​​ 本次传输后关闭连接。

字符串

客户端希望管理 TCP 连接的寿命以减少开销。

HTTP Authorization 提供了多种认证机制来保护接口安全,不同方案各有其适用场景和安全性考量。以下是主要的认证类型:

认证类型
核心机制
典型场景
安全性

Basic Authentication

用户名和密码经过Base64编码后放入请求头

内部系统、路由器管理界面

低(必须配合HTTPS)

API Key

服务端生成的唯一字符串,通过请求头或URL参数传递

第三方公开API、服务器间通信

中(必须配合HTTPS)

Cookie-Session

服务端创建Session并将会话ID通过Cookie返回给客户端

传统有状态的Web应用

中(需防御CSRF)

Bearer Token

持有令牌即可访问资源,令牌通常由授权服务器颁发

前后端分离应用、移动端

高(需配合HTTPS)

JWT

一种无状态的Bearer Token,令牌本身包含用户信息和签名

微服务架构、单点登录

高(需保护密钥)

OAuth 2.0

授权框架,通过授权码等模式让用户授权第三方应用访问其资源

第三方登录、开放平台授权

极高

Digest Authentication

挑战-响应模式,使用随机数和非明文方式传输验证信息

需要比Basic认证更高安全性的场景

中高

请求体 - Request Body

主要用于 POST、PUT 等方法携带数据

响应报文

状态行

响应头 - Response Headers

常用响应头字段及设置:

头部字段 (Field)
类别
重要性
字段说明 (Description)
字段语法 (Syntax)
字段示例 (Example with Parameters)
参数说明 (Parameters)
类型
常用场景 (Common Use Cases)

​Content-Type​

实体

★★★

响应体的媒体类型(MIME类型),告知客户端如何解释响应体。

Content-Type: <media-type>; charset=<encoding>

Content-Type: text/html; charset=UTF-8 Content-Type: application/json; charset=utf-8 Content-Type: image/png

​media-type:​​ 资源的 MIME 类型(如 text/html, application/json)。 ​​charset:​​ 字符编码(如 UTF-8)。

媒体类型

浏览器渲染页面,API 返回数据格式。

​Content-Length​

实体

★★☆

响应体的确切字节大小。

Content-Length: <length>

Content-Length: 348

​length:​​ 十进制数字,表示字节数。

数字

客户端判断响应是否接收完整,特别是在持久连接中。

​Content-Encoding​

实体

★★☆

表明对响应体使用了何种压缩算法。

Content-Encoding: <encoding>

Content-Encoding: gzip Content-Encoding: br

​encoding:​​ 压缩算法,如 gzip, deflate, br (Brotli)。

字符串

服务器对文本资源进行压缩,节省带宽,提高加载速度。

​Content-Disposition​

实体

★★☆

指示响应内容是否应在浏览器内联显示,还是作为附件下载。

Content-Disposition: inline | attachment; filename="<file.name>"

Content-Disposition: attachment; filename="report.pdf" Content-Disposition: inline

​inline:​​ 尝试在浏览器中显示(默认)。 ​​attachment:​​ 提示浏览器下载文件。 ​​filename:​​ 建议下载的文件名。

字符串

触发文件下载并指定文件名。防止用户上传的内容在浏览器中直接执行。

​Cache-Control​

缓存

★★★

缓存控制的核心指令。指导缓存机制如何工作。

Cache-Control: <directive>[, <directive>]*

Cache-Control: public, max-age=31536000, immutable Cache-Control: no-cache, must-revalidate Cache-Control: no-store

​public/private:​​ 响应可被谁缓存。 ​​no-cache:​​ 使用前必须验证。 ​​no-store:​​ 禁止任何缓存。 ​​max-age=:​​ 资源新鲜时间(秒)。 ​​must-revalidate:​​ 过期后必须验证。 ​​immutable:​​ 资源永不变,无需验证。

指令列表

静态资源长期缓存。动态数据实时验证。敏感信息禁止缓存。

​ETag​

缓存

★★☆

资源的实体标签,是特定版本的唯一标识符,用于条件请求。

ETag: ["W/"]<etag-value>

ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4" ETag: W/"0815"

​强验证器:​​ 字节必须完全一致(无W/)。 ​​弱验证器:​​ 内容语义一致即可(有W/)。

字符串

If-None-Match 配合,实现高效缓存验证(304 Not Modified)。

​Last-Modified​

缓存

★★☆

资源最后被修改的日期和时间。用于条件请求。

Last-Modified: <http-date>

Last-Modified: Tue, 15 Nov 1994 08:12:31 GMT

​:​​ 遵循 RFC 7231 的日期时间格式。

日期时间戳

If-Modified-Since 配合,进行缓存验证。作为 ETag 的备用方案。

​Vary​

缓存

★★☆

告知缓存服务器根据哪些请求头来区分不同版本的资源。

Vary: <header-name>[, <header-name>]*

Vary: Accept-Encoding Vary: User-Agent, Origin

​header-name:​​ 请求头的名称,如 Accept-Encoding, User-Agent, Origin

字符串

确保为不同设备、语言或编码的客户端提供正确的缓存版本。

​Set-Cookie​

状态

★★★

由服务器发送,用于在客户端创建或更新 Cookie。

Set-Cookie: <name>=<value>; [Expires=<date>]; [Max-Age=<seconds>]; [Domain]; [Path]; [Secure]; [HttpOnly]; [SameSite=Strict|Lax|None]

Set-Cookie: sessionid=abc123; Expires=Wed, 21 Oct 2025 07:28:00 GMT; Max-Age=3600; Domain=.example.com; Path=/; Secure; HttpOnly; SameSite=Lax

​Expires/Max-Age:​​ 过期时间。 Max-Age优先级更高,如果两者都未设置的话则在浏览器关闭之前有效 ​​Domain/Path:​​ 作用域。Domain这指定了 Cookie 的作用域。设置 Domain=.example.com后,此 Cookie 不仅在被设置的原始域名下有效,也会被发送给所有 example.com子域名(如 www.example.com, api.example.com)。PATH这指定了 URL 路径前缀。Path=/意味着只要请求的路径是 /或其下的任何子路径(如 /home, /users/profile),浏览器都会携带这个 Cookie。如果设置为 Path=/admin,则只有访问 /admin下的资源时才会发送。 ​​Secure:​​ 仅 HTTPS 发送。 ​​HttpOnly:​​ 禁止 JS 访问。 ​​SameSite:​​ 控制跨站请求是否发送(Strict, Lax, None)。

列表

用户会话管理(Session)、身份认证、追踪、个性化设置。

​Location​

重定向

★★☆

在重定向响应或创建资源响应中,指定重定向的目标 URL 或新资源的 URL。

Location: <url>

Location: https://example.com/new-page Location: /login.html

​url:​​ 一个绝对或相对 URL。

URL

3xx 重定向响应(如 302 Found)。201 Created 响应指示新资源的位置。

​Access-Control-Allow-Origin​

CORS

★★★

指定允许访问该资源的外域。CORS 的核心头部。

Access-Control-Allow-Origin: <origin> | *

Access-Control-Allow-Origin: https://example.com Access-Control-Allow-Origin: *

​*:​​ 允许任何域访问(不能与 credentialed 请求同用)。 ​​:​​ 允许的特定源。

来源

允许前端 SPA(部署在不同域名下)访问后端 API。

​Access-Control-Allow-Credentials​

CORS

★★☆

指示当请求的凭证模式为 include 时,响应是否可以被暴露。

Access-Control-Allow-Credentials: true

Access-Control-Allow-Credentials: true

​true:​​ 唯一有效值。如果使用,则 Access-Control-Allow-Origin 不能为 *

布尔值

允许跨域请求携带 Cookie 或 HTTP 认证信息。

​Access-Control-Allow-Methods​

CORS

★★☆

用于预检请求的响应,指明实际请求所允许使用的 HTTP 方法。

Access-Control-Allow-Methods: <method>[, <method>]*

Access-Control-Allow-Methods: GET, POST, PUT, OPTIONS

​method:​​ HTTP 方法,如 GET, POST, PUT, DELETE, OPTIONS

列表

响应 OPTIONS 预检请求,告知客户端允许的方法。

​Access-Control-Allow-Headers​

CORS

★★☆

用于预检请求的响应,指明实际请求中允许携带的首部字段。

Access-Control-Allow-Headers: <header-name>[, <header-name>]*

Access-Control-Allow-Headers: Content-Type, Authorization, X-Custom-Header

​header-name:​​ 请求头的名称。

列表

响应 OPTIONS 预检请求,告知客户端允许的自定义或非简单头。

Access-Control-Expose-Headers

CORS

★★☆

指示服务器允许浏览器在跨域响应中暴露哪些非简单响应头给前端 JavaScript

Access-Control-Expose-Headers: <header-name>[, <header-name>]*

Access-Control-Expose-Headers: Content-Length, X-Custom-Header

字符串

浏览器默认仅暴露 CORS 安全列表响应头(或称简单响应头),例如 Cache-Control, Content-Language, Content-Type, Expires, Last-Modified, Pragma。其他自定义或特殊头需要显式暴露。

​Strict-Transport-Security​

安全

★★★

强制浏览器在未来一段时间内通过 HTTPS 访问该域名。

Strict-Transport-Security: max-age=<expire-time>; [includeSubDomains]; [preload]

Strict-Transport-Security: max-age=63072000; includeSubDomains; preload

​max-age:​​ 秒数。 ​​includeSubDomains:​​ 规则适用于所有子域名。 ​​preload:​​ 申请加入浏览器预加载列表。

指令列表

防御 SSL 剥离攻击,提升网站安全性。

​Content-Security-Policy​

安全

★★★

通过白名单机制,控制允许加载资源的来源,有效缓解 XSS、数据注入等攻击。

Content-Security-Policy: <policy-directive>; <policy-directive>

Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted.cdn.com; object-src 'none'; upgrade-insecure-requests;

​default-src 'self':​​ 默认策略。 ​​script-src:​​ 控制JS来源。 ​​style-src:​​ 控制CSS来源。 ​​img-src:​​ 控制图像来源。 ​​object-src 'none':​​ 禁止插件。 ​​upgrade-insecure-requests:​​ 将 HTTP 升级为 HTTPS。

指令列表

防御跨站脚本 (XSS) 攻击,是现代 Web 应用的关键安全头。

​X-Frame-Options​

安全

★★☆

指示浏览器是否允许页面在 <frame>, <iframe> 中渲染。

X-Frame-Options: DENY | SAMEORIGIN | ALLOW-FROM <uri>

X-Frame-Options: SAMEORIGIN

​DENY:​​ 完全禁止。 ​​SAMEORIGIN:​​ 只允许同源页面嵌入。 ​​ALLOW-FROM uri:​​ 允许指定源嵌入(已逐渐被 CSP 的 frame-ancestors 取代)。

字符串

防御点击劫持 (Clickjacking) 攻击。

​X-Content-Type-Options​

安全

★★☆

指示浏览器不要嗅探响应类型,必须遵循 Content-Type 头中声明的类型。

X-Content-Type-Options: nosniff

X-Content-Type-Options: nosniff

​nosniff:​​ 唯一有效值。

字符串

防止 MIME 类型混淆攻击,例如将文本文件当作 HTML 执行。

​Referrer-Policy​

安全

★★☆

控制请求中 Referer 头携带的信息量,保护用户隐私。

Referrer-Policy: no-referrer | no-referrer-when-downgrade | origin | origin-when-cross-origin | same-origin | strict-origin | strict-origin-when-cross-origin | unsafe-url

Referrer-Policy: strict-origin-when-cross-origin

​no-referrer:​​ 不发送。 ​​strict-origin-when-cross-origin:​​ (推荐)同源发送完整URL,跨域时只发送源。 ​​unsafe-url:​​ 始终发送完整URL。

字符串

防止将敏感的 URL 参数泄露给第三方网站。

​Permissions-Policy​

安全

★★☆

控制浏览器特性和 API 在页面中的使用。

Permissions-Policy: <feature>=<allowlist>

Permissions-Policy: geolocation=(), microphone=(), camera=(), payment=*

​geolocation=():​​ 禁用地理定位。 ​​camera=('self'):​​ 仅同源可用摄像头。 ​​payment=*:​​ 允许支付功能。

指令列表

限制页面或第三方 iframe 使用敏感功能,增强隐私和安全。

​Server​

信息

★☆☆

包含处理请求的服务器软件的名称和版本。

Server: <software>/<version>

Server: nginx Server: Apache/2.4.41 (Unix)

​software/version:​​ 服务器软件信息。

字符串

标识服务器环境。​​生产环境应移除或混淆此信息​​。

​Date​

信息

★★☆

消息发出的日期和时间。

Date: <http-date>

Date: Tue, 15 Nov 1994 08:12:31 GMT

​:​​ 遵循 RFC 7231 的日期时间格式。

日期时间戳

所有响应都应包含,用于辅助计算缓存新鲜度。

​Connection​

连接

★☆☆

决定当前事务完成后,是否会关闭网络连接。

Connection: keep-alive | close

Connection: keep-alive

​keep-alive:​​ 保持连接打开(HTTP/1.1 默认)。 ​​close:​​ 本次传输后关闭连接。

字符串

减少 TCP 连接建立的开销,提升性能。

响应体 - Response Body

包含服务器返回的实际数据

MIME类型

MIME(多用途互联网邮件扩展)类型是一种标准,用来表示文档、文件或字节流的性质和格式,确保内容能被正确处理和显示。

MIME 类型
类别
说明
常见扩展名
使用场景与备注

text/html

文本

​超文本标记语言​​,Web 的基石。

.html, .htm

所有网页。必须指定字符集,如 charset=UTF-8

text/css

文本

​层叠样式表​​,用于定义网页样式。

.css

网页样式文件。常被压缩传输。

text/javascript​ ​application/javascript

文本/应用

​JavaScript​​ 代码。

.js, .mjs

为网页添加交互性。建议使用 application/javascript

application/json

应用

​JavaScript 对象表示法​​,轻量级数据交换格式。

.json

​现代 API 通信的标准​​。用于 RESTful API 的数据传输。

application/xml​ ​text/xml

应用/文本

​可扩展标记语言​​,用于存储和传输数据。

.xml

配置文件和旧式 Web 服务(如 SOAP)。

application/ld+json

应用

​JSON-LD​​,基于 JSON 的链接数据格式。

.jsonld

结构化数据(Schema.org),用于 SEO 和搜索引擎理解页面内容。

application/pdf

应用

​Adobe Portable Document Format​​。

.pdf

跨平台固定布局文档。浏览器通常内联显示。

application/zip

应用

​ZIP 归档文件​​。

.zip

压缩文件集合。浏览器会触发下载。

application/msword

应用

​Microsoft Word​​ 文档(较老版本)。

.doc

微软 Word 97-2003 文档。

application/vnd.openxmlformats-officedocument.wordprocessingml.document

应用

​Microsoft Word​​ 文档(新版 .docx)。

.docx

微软 Word 2007 及以后版本的文档(基于 ZIP+XML)。

application/vnd.ms-excel​ ​application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

应用

​Microsoft Excel​​ 电子表格。

.xls, .xlsx

Excel 文件。

application/vnd.ms-powerpoint​ ​application/vnd.openxmlformats-officedocument.presentationml.presentation

应用

​Microsoft PowerPoint​​ 演示文稿。

.ppt, .pptx

PowerPoint 文件。

application/x-httpd-php

应用

​PHP​​ 源代码。

.php

PHP 脚本文件的常见 MIME 类型(但输出通常是 text/html)。

application/octet-stream

应用

通用的​​二进制数据流​​。

任意 (如 .bin, .exe)

​强制文件下载​​。表示“未知的二进制文件,请保存”。

image/jpeg

图像

​JPEG​​ 图像,有损压缩格式。

.jpg, .jpeg

​照片和颜色丰富的图像​​。不支持透明度。

image/png

图像

​PNG​​ 图像,无损压缩格式。

.png

​需要透明度或更高清晰度的图像​​(如图标、徽标、截图)。

image/gif

图像

​GIF​​ 图像,支持动画和简单透明度。

.gif

​简单动画​​。颜色支持有限(256色)。

image/svg+xml

图像

​SVG​​,基于 XML 的矢量图像格式。

.svg, .svgz

​可缩放矢量图形​​(徽标、图标)。无限缩放不失真,文件小。

image/webp

图像

​WebP​​,现代图像格式,提供优异的压缩。

.webp

​JPEG 和 PNG 的现代替代品​​。在相同质量下体积更小。

image/apng

图像

​动态 PNG​​,支持动画的 PNG 格式。

.apng

类似于 GIF,但支持更多颜色和更好的透明度。

image/avif

图像

​AVIF​​,基于 AV1 视频编码的下一代图像格式。

.avif

​压缩率极高​​的新格式,支持 HDR、动画和透明度。

image/x-icon``<br>**image/vnd.microsoft.icon`​

图像

​ICO​​,图标格式。

.ico

​网站 Favicon​​。通常包含多个尺寸。

audio/mpeg

音频

​MP3​​ 音频。

.mp3

通用的音频压缩格式。

audio/wav

音频

​WAV​​ 音频,通常未压缩。

.wav

无损音频格式,文件体积大。

audio/webm

音频

​WebM​​ 音频。

.weba

开放、免版税的音频格式,常用于网页。

audio/aac

音频

​AAC​​ 音频。

.aac

MP4 容器中常用的音频编码格式。

video/mp4

视频

​MPEG-4​​ 视频。

.mp4

​网络视频的主流格式​​。通常包含 H.264 视频和 AAC 音频。

video/mpeg

视频

​MPEG​​ 视频。

.mpeg, .mpg

较老的视频格式。

video/webm

视频

​WebM​​ 视频。

.webm

开放、免版税的视频格式,常用于 HTML5 视频。

video/quicktime

视频

​QuickTime​​ 视频(Apple)。

.mov

Apple QuickTime 格式。

font/woff

字体

​WOFF​​,Web 开放字体格式。

.woff

第一代 Web 字体格式,是压缩的 OpenType/TrueType。

font/woff2

字体

​WOFF 2.0​​,Web 开放字体格式。

.woff2

​WOFF 的下一代​​,提供更好的压缩。​​现代浏览器的首选​​。

font/ttf

字体

​TrueType​​ 字体。

.ttf

常见的系统字体格式,但直接在 Web 上使用不如 WOFF2 高效。

font/otf

字体

​OpenType​​ 字体。

.otf

TrueType 的扩展,功能更丰富。

multipart/form-data

多部分

用于将表单数据作为多个部分发送。

​HTML 表单中包含文件上传时使用​​ (<form enctype="...">)。

multipart/byteranges

多部分

用于支持​​断点续传​​,响应部分内容(206 Partial Content)。

下载管理器和大文件下载。

最后更新于