Node.js 面试题
目录

请解释 HTTP 协议中的 Accept、Accept-Encoding、Accept-Language 等请求头部的作用和用法

· 约 3 分钟读完 · 第 158 / 377 章

推荐答案

Accept

Accept 请求头用于指定客户端能够处理的 MIME 类型。服务器可以根据这个头部返回最适合客户端的内容类型。例如:

在这个例子中,客户端优先接收 text/html 和 application/xhtml+xml,其次是 application/xml,最后是其他类型。

Accept-Encoding

Accept-Encoding 请求头用于指定客户端支持的压缩算法。服务器可以根据这个头部选择适当的压缩方式返回响应内容。例如:

在这个例子中,客户端支持 gzip、deflate 和 br 压缩算法。

Accept-Language

Accept-Language 请求头用于指定客户端偏好的自然语言。服务器可以根据这个头部返回最适合客户端的语言版本。例如:

在这个例子中,客户端优先接收 en-US 和 en,其次是 zh-CN,最后是 zh。

本题详细解读

Accept

Accept 头部的主要作用是告诉服务器客户端能够处理的 MIME 类型。服务器可以根据这个头部返回最适合的内容类型。MIME 类型可以包含权重(q 值),权重越高表示优先级越高。例如:

在这个例子中,text/html 和 application/xhtml+xml 的优先级最高,application/xml 的优先级为 0.9,image/webp 和 image/apng 的优先级为 1,*/* 的优先级为 0.8。

Accept-Encoding

Accept-Encoding 头部的主要作用是告诉服务器客户端支持的压缩算法。服务器可以根据这个头部选择适当的压缩方式返回响应内容。常见的压缩算法包括 gzip、deflate 和 br。例如:

在这个例子中,客户端支持 gzip、deflate 和 br 压缩算法。服务器可以选择其中一种算法来压缩响应内容。

Accept-Language

Accept-Language 头部的主要作用是告诉服务器客户端偏好的自然语言。服务器可以根据这个头部返回最适合的语言版本。语言可以包含权重(q 值),权重越高表示优先级越高。例如:

在这个例子中,en-US 和 en 的优先级最高,zh-CN 的优先级为 0.8,zh 的优先级为 0.7。服务器可以根据这些优先级返回最适合的语言版本。