http之content-type与content-language区别

来源:互联网 发布:网络音乐盒 编辑:程序博客网 时间:2024/06/07 13:19

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可能就是用来标示语言的版本的,可以让客户端收到报文后以更精确、更人性化的方式展现出来。


个人理解,仅供参考。

0 0
原创粉丝点击