首页/网络/协议速查/Content-Language 内容语言
HTTP 头与缓存70 条

Content-Language 内容语言

描述响应表示的自然语言(可多个),与 Content-Type 的 charset 无关。

协议速查网络更新于 2026-10-13

Content-Language 是什么

Content-Language 描述响应实体的自然语言,可以列出多个值表示内容面向多种语言受众(RFC 9110 §8.5)。它与 Content-Type 里的 charset 完全是两件事:charset 说明字符编码,Content-Language 说明语言。搜索引擎与无障碍工具会读取它来判断页面语言,因此多语言站点不能随便填。

基本信息

名称Content-Language
方向响应头
规范RFC 9110 §8.5
取值BCP 47 语言标签,如 zh-CN、zh-Hans、en-US
配套页面 html 元素的 lang 属性、hreflang 标注
常见误区与 Content-Type 的 charset 混为一谈

典型使用场景

  • 多语言站点:让搜索引擎与读屏软件准确识别页面语言
  • SEO 优化:与 hreflang、html 的 lang 属性保持一致
  • 内容分发:按 Accept-Language 返回对应版本时标注真实语言
  • 排障:定位服务端返回语言与实际内容不符的问题
  • 质量巡检:在流水线中校验语言标注与内容语言是否一致
  • 无障碍合规:辅助技术依赖语言信息选择朗读与断词规则

查看与验证

查看与验证
# 查看响应里的语言标注
curl -sI https://www.example.com/ | grep -i content-language
# content-language: zh-CN

# 按语言请求,同时观察协商结果与缓存键
curl -sI -H 'Accept-Language: en-US,en;q=0.9' https://www.example.com/ | grep -iE 'content-language|vary'

语言相关的四个位置

位置作用注意事项
Content-Language响应头标注实体语言应与实际内容语言一致
html 的 lang 属性页面内声明语言SEO 与无障碍工具常用
hreflang标注多语言对应页面用于国际 SEO,需成对互指
Accept-Language请求头声明语言偏好服务端据此协商返回版本
只写语言不写地区时(如 zh)语义更宽;中文站点多写 zh-CN 或 zh-Hans,并注意与页面 lang 属性保持一致。
响应头与实际语言不符会被搜索引擎判为低质量页面,可在发布流水线里加一条一致性检查,成本很低但能拦住批量错误。
多语言协商响应必须带 Vary: Accept-Language,否则缓存与 CDN 会把不同语言版本互相覆盖。
区域化变体(zh-CN 与 zh-TW)差异不仅是字形,还涉及用词与日期格式;标注语言时按实际内容选择,不要为了统一而模糊化。
响应体是机器可读数据(如 JSON 接口)时,Content-Language 可以省略;它主要服务于面向人的可读内容与搜索索引。

易错点

  • 声明 Content-Language 为 zh-CN 却返回英文内容,会被判为语言标注不实,影响收录
  • 与 Vary 配合不当会让缓存把不同语言版本互相覆盖:协商响应必须带 Vary: Accept-Language
  • 只改页面内的 lang 属性而忽略响应头,多语言站点的语言信号会互相矛盾
  • 把 Content-Language 当成字符编码声明:编码要写在 Content-Type 的 charset 里

数据来源与参考

  • RFC 9110 §8.5 Content-Language

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌