HTTP中Body传输的数据类型与格式

2022-05-28  本文已影响0人  dashingqi
Android_Banner.jpg

数据类型与编码

对于HTTP(TCP/IP)协议中,传输的数据基本上都是【header+body】;

对于TCP/IP来说,它是属于传输层协议只管传输数据到对方,不关心数据是什么;

但是对于HTTP来说,它是属于应用层协议,保证数据传输到大对方只是完成了一半,它还要告知上层应用传递的body数据是什么类型的;

类型与编码
MIME type

【MIME type】就是用于标记body数据类型的

早在HTTP协议诞生之前,就已经有了针对上述问题的解决方案,就是【MIME】

HTTP中常用的MIME type 有如下几类

Encoding type

在数据传输时,为了节约带宽,有时候还会压缩数据,为了让Client能认出数据,需要Encoding type,用于告知数据是用什么编码格式的;

常用的Encoding type有如下几类

头字段中类型与编码的体现

有了上述MIME type 和Encoding type,client或者server就能识别出body数据的类型了;

在hTTP协议中在头字段中 定定义了两个Accept请求头字段和两个Content实体头字段,用于Client和Server进行【内容协商】;

下图就是MIME type 和 Encoding type 在头字段中的体现

Accept和Accept-Encoding用于请求头中,分别对应MIME type 和Encoding type

Content-Type和Content-Encoding用于响应头中,分别对应MIME type和Encoding type

数据类型和编码在头字段中的表现.png

语言类型与编码

语言类型与字符集
语言类型

语言类型就是人类使用的自然语言【英语】、【汉语】;

在明确区分的时候需要使用【type-subtype】形式

en:任意英语、en-US:表示美式英语、en-GB:英式英语

zh-CN 我们的汉语

字符集

早期各个国家都有自己的字符编码处理文字

英语:ASCII

汉语:GBK

后来出现的Unicode和UTF-8把世界上所有的语言容纳到一种编码方案中;

UTF-8也成为互联网上的标准字符集;

语言类型和字符集在头字段中的体现

语言类型:HTTP协议中在请求头中使用Accpet-Language;在响应头中使用Content-Language

字符集:HTTP协议中在请求头中使用Accept-Charset;在响应头中没有Content-Charset;是在Content-Type字段的数据类型后面用【charset=xxx】来表示

语言类型和字符集在头字段中的体现.png

内容协商的质量值

在HTTP协议中,我们上述讲解的 【数据类型与编码】、【语言类型与编码】

在头字段中一个key都对应多个value;那么当指定多个value的时候我们怎么区分这个优先级呢?

这个时候就需要【内容协商的质量值】【q】-->【quality favtor】

【q】有一个对应的值区间【1 0.01】

最大值是1,最小值是0.01,默认值是1

比如下面的(在HTTP中 【;】的意义是要小于【,】的)

Accept : text/html, application/json;q=0.9,*/*;q=0.8

解释一下:

客户端最希望使用的HTML文件,权重是1;

如果你不能满足HTML,我接下来希望的是json格式的数据,权重是0.9

最后才是任意类型数据类型,权重是0.8

想一想在北京都3年多了;

最近一直都在坚持跑步,5公里的成绩也在慢慢提高从5分配到现在轻松的440~430,在到最好420;经过了很长的一段时间

我跑步的原因很简单,就是很享受跑步过程中的挣扎(就看提高配速的情况下自己能在坚持多长时间)以及跑后那种兴奋感;

前天晚上跑完站在附件商场楼前,看了好久,那个地方算是附近很繁华的地方,晚上灯光也很漂亮;

如果再过几年不在北京了,想一想这些繁华这些硬件资源你都带不走,你能带走的只有你健康的身体、你的经历经验;你走了你就走了,这个城市你如果再不来可能就跟你没多大关系了;

大家五湖四海汇聚在北京,相识真是的天大的缘分,能走到一起的真的要好好珍惜;

有时候真的有不可抗拒的外在因素,地域、认知、价值观;

大话西游中的经典台词【曾经有一份真挚的爱情摆在我面前我没有珍惜】对于好多好多太多人来说,这一别可真就是一辈子了;

上一篇 下一篇

猜你喜欢

热点阅读