小新:老板老板,我明天请个假,「去医院打狂犬疫苗」请一天假。

老板:好的,去吧去吧。

第二天

那么 http1.0 与 1.1 的到底有哪些区别? 主要有以下五个方面的区别:

  • 长连接

  • Host 域

  • 带宽优化

  • 消息传递

  • 缓存

01长连接

(Http persistent connection ,也有翻译为持久连接),指数据传输完成了保持 TCP 连接不断开(不发 RST 包、不四次握手),等待在同域名下继续用这个通道传输数据;相反的就是短连接

Http1.1 支持长连接「PersistentConnection」和请求的流水线「Pipelining」处理,并且默认使用长连接,如果加入「Connection: close」,才关闭。

Http1.0 默认使用短连接,规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个 TCP 连接,服务器完成请求处理后立即断开 TCP 连接,服务器不跟踪 每个客户也不记录过去的请求。要建立长连接,可以在请求消息中包含「Connection: Keep-Alive」头域,如果服务器愿意维持这条连接,在响应消息中也会包含一个「Connection: Keep-Alive」的头域。

在「Keep-Alive」模式下,客户端如何判断请求所得到的响应数据已经接收完成(或者说客户端如何知道服务器发送数据的长度是多少?)

1、任何不含有消息体的消息「如1xxx、204、304等响应消息和任何头HEAD 请求的响应消息」,总是由一个空行「CLRF」结束。

2、如果出现了「Transfer-Encoding」头字段 并且值为非「identity」,那么「transfer-length」由「chunked」传输编码定义,除非消息由于关闭连接而终止,后面会详细说一下「chunked」传输编码。

3、 如果出现了「Content-Length」头字段,其值表示消息体「entity」长度的字节数大小,且其值必需为非负整数,客户端(服务器)可以根据这个值来判断数据是否接收完成。。但如果同时设置了「Transfer-Encoding」头字段,那么将不能发送「Content-Length」头字段。并且如果同时收到了「Transfer-Encoding」字段和「Content-Length」头字段,那么必须忽略「Content-Length」字段。可以把「Transfer-Encoding」和「Content-Length」看成互斥的两种头。

4、如果消息采用的媒体类型「media type」为「multipart/byteranges」且传输长度未能以上述方式指明,那么这种自分割的媒体类型已经定义了如何确定传输长度。对客 户端而言,发送这种格式前应该确认接收者有能力解析;对服务端而言,收到一个由 Http1.1 客户端发来的含有「Range」头字段且指定了「multiple byte-range」的消息,即说明该客户端有能力解析针对该格式的响应。「Range」头可能被 1.0 的代理转发,它对「multipart/byteranges」一无所知。服务器必须按本节 1、3、5 条所述对消息进行分割。

5、靠服务端关闭连接来确定。服务端发送完消息体后会关闭连接,但是有的时候也会因为意外原因关闭连接,这个也要注意一下。

PS:本文并非原创,参考相关网络文章,后续讲解请查阅以下链接:

https://blog.csdn.net/Juleen890/article/details/80829819

扫一扫 关注我的公众号

想了解更多的趣味面试吗~

推荐阅读:

如何准备大厂技术面试?偷学「大师兄」秘籍!

简历那些事?一份好工作得益于一份好简历,小新职场记

小新面试错题集,http1.0与1.1的区别?相关推荐

  1. Java面试错题集1

    SpringBoot的注解: 1.@SpringBootApplication: 这个注解是用来声明springboot来给程序进行一些必要的配置,相当于 @Configuration:声明这是一个配 ...

  2. C小程PTA错题集1

    目录 第八章 指针 第九章 结构 第十二章 文件 第八章 指针 1.以下选项中,对基本类型相同的指针变量不能进行运算的运算符是(). A.+ B.- C.= D.== 答案:A 解析:"&l ...

  3. 基于小程序云开发的在线答题小程序源码含答题分类答题记录错题集适合学习适合毕业设计使用

    基于小程序云开发开发的在线答题小程序源码 核心功能: 1.答题分类 2.开始答题 3.答题评分 4.答题记录 5.错题集 部分界面截图: 如有疑问,可联系博主!

  4. PMP备考-错题集(第6版)

    这是我自己备考过程中,记录的错题集. 1. [单选] 作为你们公司项目办公室的经理,你必须经常判定哪些项目应该得到额外的资源.你还要建议哪些项目应该启动.继续进行或取消.有利于你做出这些决策的一个方法 ...

  5. PMP 错题集(带答案解析)

    PMP 错题集(带答案解析) 变更题 质量题 风险题 敏捷&计算题 变更题 质量题 风险题 敏捷&计算题(待更新) 答案仅供参考,并不绝对.答案仅供参考,并不绝对.答案仅供参考,并不绝 ...

  6. C语言易错题集 第二部

    C语言易错题集后续 一.共用体相关(union) 二.do,while相关 三.char溢出相关 四.printf()相关 五.++相关 六. for语句相关 七.calloc()相关 八.defin ...

  7. c语言解三元一次方程组_七年级下学期《8.3 一元一次不等式组》2020年高频易错题集...

    一.选择题(共10小题) 二.填空题(共5小题) 三.解答题(共5小题) 七年级下学期<8.5 一元一次不等式组>2020年高频易错题集 参考答案与试题解析 一.选择题(共10小题) [点 ...

  8. 阿里云ACP云计算错题集1-40

    大家都来考个阿里云ACP认证吧,这里是阿里云ACP云计算错题集1-40,powered by zhengkai.blog.csdn.net. 1.在阿里云上创建专有网络VPC时,VPC会自动为用户创建 ...

  9. 阿里云ACP云计算错题集101-120

    每天学一点阿里云ACP认证,这里是ACP错题集.温故而知新,从错题入手,可以更好理解出题点.难点. by zhengkai.blog.csdn.net 101.A公司基于阿里云服务构建了一套销售管理平 ...

  10. 阿里云ACP云计算错题集41-70

    每天学一点阿里云ACP认证,这里是ACP错题集.by Moshow郑锴(大狼狗) zhengkai.blog.csdn.net 41.在使用阿里云弹性伸缩(Auto Scaling)时,伸缩组中包含的 ...

最新文章

  1. 三洋服务器显示F6,三洋空调出现H06故障代码
  2. ACM入门之【二分图】
  3. 【ARM】Tiny4412裸板编程之协处理器
  4. etl数据抽取工具_数据同步工具ETL、ELT傻傻分不清楚?3分钟看懂两者区别
  5. 2017计算机三级哪个好考,快速突破2017年计算机三级考试的几大复习阶段
  6. 【计算机系统设计】重点 · 学习笔记(0)(数据通路设计思想)
  7. 【HihoCoder - 1831】80 Days(尺取 或 线段树)
  8. 计算SDWebImage缓存大小以及清除
  9. Ckeditor 的加载顺序
  10. iOS中Navigation中添加自定义Button等UIView
  11. 欧冠抽签程序c语言,欧冠抽签
  12. java 的权限表_JAVA权限表
  13. C# 中文简体中文繁体转换_ChineseConverter
  14. hget如何获取多个value_Redis(五):hash/hset/hget 命令源码解析
  15. 关于游戏中美术文件夹的划分
  16. JAVA疫苗接种预约系统毕业设计 开题报告
  17. 海洋cms宝塔定时linux,海洋cms怎么设置宝塔自动采集教程
  18. 我的世界服务器连接显示不见了,我的世界服务器为什么进去就卡,然后几十秒后显示“连接已丢失”怎么? 爱问知识人...
  19. MySQL里Wating for Slave workers to free pending events到底在等什么
  20. 霸气牵手众多手机品牌商,苏宁手机蜜蜂节实力彰显行业影响力

热门文章

  1. Modbus从站读写数据
  2. Python实现Iris数据集(鸢尾花卉数据集)meanshift聚类
  3. pyspark写法总结
  4. elasticsearch源码:unicast列表解析
  5. 华为畅享二十Android是,华为畅享20 pro开箱小晒
  6. PHP的zend引擎
  7. (杂)网易云歌单导入到apple music
  8. 游戏俄罗斯方块(c语言)
  9. 疫情影响下普惠金融风险与对策
  10. linux 关于回程路由相关问题