Accept 头部

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

HTTP Accept 请求响应头部表示发送方能够理解的MIME 类型所表达的内容类型。在请求中,服务器使用内容协商来选择其中一个提议,并通过Content-Type响应头部告知客户端所做的选择。在响应中,它提供有关服务器在发送给请求资源的消息中可以理解的内容类型的信息,以便该内容类型可以在后续的资源请求中使用。

浏览器根据请求的上下文设置此头部所需的数值。例如,当获取 CSS 样式表、图像、视频或脚本时,浏览器在请求中会使用不同的值。

头类型 请求标头, 响应标头
禁止请求头
CORS 安全列表请求头 是*

* 值不能包含CORS 不安全的请求头部字节,包括"():<>?@[\]{},、删除字符0x7F以及控制字符0x000x19,除了制表符0x09

语法

http
Accept: <media-type>/<MIME_subtype>
Accept: <media-type>/*
Accept: */*

// Multiple types, weighted with the quality value syntax
Accept: text/html, application/xhtml+xml, application/xml;q=0.9, image/webp, */*;q=0.8

指令

<媒体类型>/<子类型>

一个单一的、精确的媒体类型,例如 text/html

<媒体类型>/*

不带子类型的媒体类型。例如,image/* 对应于 image/pngimage/svgimage/gif 和其他图像类型。

*/*

任何媒体类型。

;q=(q-因子权重)

使用称为权重的相对质量值表示的优先级值。

示例

使用默认的 Accept 请求头部

使用命令行工具(如 curlwget)发出的 HTTP 请求使用 */* 作为默认的 Accept

http
GET / HTTP/1.1
Host: example.com
User-Agent: curl/8.7.1
Accept: */*

浏览器导航通常具有以下 Accept 请求头部值

http
GET /en-US/ HTTP/2
Host: developer.mozilla.org
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
…

在收到文档后,对 developer.mozilla.org 示例中图像请求的默认 Accept 值如下所示

http
Accept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5

为 JSON 响应配置 Accept 请求头部

涉及 API 交互的系统通常请求 application/json 响应。以下是一个 GET 请求的示例,其中客户端明确请求 JSON 响应

http
GET /users/123 HTTP/1.1
Host: example.com
Authorization: Bearer abcd123
Accept: application/json

规范

规范
HTTP 语义
# 字段.accept

浏览器兼容性

另见