http之content-type与content-language区别

content-type中首部用来指定报文体的类型,譬如是文本还是多媒体,其中可以通过charset来指定内容所使用的字符集。content-language用来表示报文体使用的语言,譬如ch,fr,en,ja等等。

随之我的疑问也来了,既然content-type都指定了字符集,即已指定了报文体中的一个二进制值0x30表示一个英文字母a,而不是中文中的‘啊’或者日文中的某个字符。在解码的时候直接按字符集转换,如果解码后是中文字符,则语言就是中文。如果解码后是英文字符,则语言就是英文。为什么还要使用一个content-language首部再制定下语言呢?我觉得这两个首部功能有些重复。

查看了content-language的描述,content-language的值形式为:主标记-子标记1-子标记2,其中主标记主要用于标示语言分类譬如以上的ch,fr,ja等,子标记1用于标示标准化的国家代码BR,CA,CN等,子标记2就没有什么标准要求了,只要长度不超过8个字符,都是可以的,应该是用于私有定制的。例如zh-cn表示中国大陆的中文,en-GB标示英国的英语。

看到这应该就差不多能猜出来为什么会增加content-language首部了:通过content-type的charset是可以知道是中文还是英文,但是你不能确定是哪的中文(中国大陆的还是台湾的?),哪的英文(美式还是英式?),虽然都是同一个中文字符,但是在不同的中文版本里面长的样子是不一样的,比如简体跟繁体的区别(这个比喻可能不准确)。而content-language可能就是用来标示语言的版本的,可以让客户端收到报文后以更精确、更人性化的方式展现出来。


个人理解,仅供参考。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值