比如,A 给 B发送了一条信息:hello,首先,A要告诉B,我给你发的这条数据的类型,不同类型的数据,接收方的处理方式不一样,hello属于文本类型,所以Content-Type就要设置成

text-plain; 但是计算机只知道0和1,所以就按照一定的规则把 hello 变成0和1组成的代码,所使用的规则也要在Content-Type里设置,比如A将hello用iso-8859-1方式编码转为0和1的组合,为:

0110100001100101011011000110110001101111,

按照8位1字节来分,可以分成5个字节:

01101000  01100101  01101100  01101100  01101111

h              e                  l                 l              o

所以,完整的Content-Type应该为:

Content-Type:text/plain;charset=iso-8859-1

接着,假如A还需要对hello进行压缩呢?于是,A先用压缩算法对hello进行压缩,比如A用了gzip算法,完了之后,原先用iso-8859-1方式编码的hello二进制串已经发生了改变,A不能直接把压缩后的内容直接发给B,而是应该告诉B,我对传输的数据进行了压缩,

所以A还要设置Content-Encoding为 gzip,体现在A的报文里面为:Content-Encoding: gzip

设置完Content-Type和Content-Encoding,A就把hello发给了B。

当B接收到A发送的数据后,先看Content-Encoding有没有值,

这里由于A已经设置了Content-Encoding:gzip,所以B首先要对A发送的内容进行解压缩,解压缩的算法和A采取的压缩算法要对应,这里B就采取了gzip的解压算法,得到了压缩之前的一串0和1组成的代码(0110100001100101011011000110110001101111),然后B就能顺利地按照每8位一字节的方式来解析这串2进制代码,B先看Content-Type第一个分号前的内容是

text/plain,知道A这是发送了一段文本数据,接着看分号后面是

charset=iso-8859-1,知道了A是用iso-8859-1方式编码的,那么B就相应的用iso-8859-1的方式来解码,最后得到人类可识别的数据 ”hello”
————————————————
版权声明:本文为CSDN博主「偏执的执」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34967644/article/details/86680061

最新文章

  1. 用ip来获得用户所在地区信息
  2. myeclipse导入项目出现jquery错误(有红叉)
  3. Linux 压缩解压
  4. java 查询 mongodb 中的objectid
  5. java_queue
  6. 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
  7. shell脚本实现 视频格式转换 ffmpeg 实现视频转换
  8. 【生活】已经从官网购买iPad,单独购买AppleCare+服务
  9. MVC4 中Remote的使用
  10. 判断一个key 是否在map中存在
  11. React 同构
  12. java执行windows 的cmd 命令
  13. iOS开发自定义流水布局
  14. STM32硬件IIC操作
  15. python 访问 zookeeper
  16. 第七节:WebApi与Unity整合进行依赖注入和AOP的实现
  17. python自动化测试常用断言的使用方法
  18. 微信小程序开发填坑指南V1
  19. robot framework程序运行过程中,遇到点击事件之后,未出现点击之后的效果(求解)
  20. CSS的引入方式及CSS选择器

热门文章

  1. 批量下载文件JSP
  2. Activiti的分配任务负责人(八)
  3. python 存取字典dict
  4. 洛谷P1310 表达式的值——题解
  5. 一本通&&洛谷 ——靶型数独——题解
  6. es之java插入优化(批量插入)
  7. C++中一些容易迷惑的语法点总结
  8. spring-boot-devtools热加载不起作用
  9. onload in JavaScript
  10. How to run a function when the page is loaded?