HTTP1.0和HTTP1.1的一些区别

  1. 缓存处理,在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略。

  2. 带宽优化及网络连接的使用,HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接。 错误通知的管理,在HTTP1.1中新增了24个错误状态响应码,如409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除。

  3. Host头处理,在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)。

  4. 长连接,HTTP 1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启Connection: keep-alive,一定程度上弥补了HTTP1.0每次请求都要创建连接的缺点。

HTTP1.0和1.1现存的一些问题

  1. HTTP1.x在传输数据时,每次都需要重新建立连接,无疑增加了大量的延迟时间,特别是在移动端更为突出。

  2. HTTP1.x在传输数据时,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份,这在一定程度上无法保证数据的安全性。

  3. HTTP1.x在使用时,header里携带的内容过大,在一定程度上增加了传输的成本,并且每次请求header基本不怎么变化,尤其在移动端增加用户流量。

  4. 虽然HTTP1.x支持了keep-alive,来弥补多次创建连接产生的延迟,但是keep-alive使用多了同样会给服务端带来大量的性能压力,并且对于单个文件被不断请求的服务(例如图片存放网站),keep-alive可能会极大的影响性能,因为它在文件被请求之后还保持了不必要的连接很长时间。

HTTPS与HTTP的一些区别

  1. HTTPS协议需要到CA申请证书,一般免费证书很少,需要交费。

  2. HTTP协议运行在TCP之上,所有传输的内容都是明文,HTTPS运行在SSL/TLS之上,SSL/TLS运行在TCP之上,所有 传输的内容都经过加密的。

  3. HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

  4. HTTPS可以有效的防止运营商劫持,解决了防劫持的一个大问题。

HTTP2.0的新特性

  1. 新的二进制格式(Binary Format),HTTP1.x的解析是基于文本。基于文本协议的格式解析存在天然缺陷,文本的表现形式有多样性,要做到健壮性考虑的场景必然很多,二进制则不同,只认0和1的组合。基于这种考虑HTTP2.0的协议解析决定采用二进制格式,实现方便且健壮。

  2. 多路复用(MultiPlexing),即连接共享,即每一个request都是是用作连接共享机制的。一个request对应一个id,这样一个连接上可以有多个request,每个连接的request可以随机的混杂在一起,接收方可以根据request的 id将request再归属到各自不同的服务端请求里面。

  3. header压缩,如上文中所言,对前面提到过HTTP1.x的header带有大量信息,而且每次都要重复发送,HTTP2.0使用encoder来减少需要传输的header大小,通讯双方各自cache一份header fields表,既避免了重复header的传输,又减小了需要传输的大小。

  4. 服务端推送(server push),HTTP2.0具有server push功能。

转载于:https://juejin.im/post/5cb59890f265da03b8584603

HTTP1.0,HTTP1.1,HTTPS和HTTP2.0的区别相关推荐

  1. 说说你对http、https、http2.0的理解【前端每日一题-25】

    说说你对http.https.http2.0的理解? HTTP的基本优化 影响一个HTTP网络请求的因素主要有两个:带宽和延迟. 带宽 如果说我们还停留在拨号上网的阶段,带宽可能会成为一个比较严重影响 ...

  2. 计算机网络知识点总结(ICMP、PING、OSPF、TIMEWAIT、CLOSEWAIT、HTTPS、HTTP2.0)

    概述 五层模型 物理层 数据链路层 CSMA/CD协议 PPP协议 MAC地址 局域网 交换机 网络层(IP层) IP地址分类 IP地址与物理地址的区别 ARP协议(重点) ICMP协议(重点) Pi ...

  3. Nginx本地局域网用上https和http2.0传输协议

    一.安装Nginx nginx: download (安装Nginx直接解压便可以用) 二.安装Openssl并生成证书文件 1.下载地址 http://slproweb.com/products/W ...

  4. HTTP的前世今生(HTTP1.1,HTTPS,SPDY,HTTP2.0,QUIC,HTTP3.0)

    本文将从HTTP不断发展的时间线来讲解与其相关的知识点,其中包括HTTP1.1,HTTPS,SPDY,HTTP2.0,QUIC,HTTP3.0等,文章中内容涉及面较广,属于扫盲级别,不会特别深入某个知 ...

  5. HTTP1.0 HTTP1.1 HTTP2.0总结

    https://mp.weixin.qq.com/s/GICbiyJpINrHZ41u_4zT-A https://blog.csdn.net/striveb/article/details/8423 ...

  6. HTTP及其版本(HTTP1.0、HTTP1.1、HTTP2.0、HTTP3.0)详解

    目录 HTTP协议 基础知识 Http版本 Http1.0 Http1.1 Http2.0 Http3.0 总结 HTTP协议 基础知识 HTTP协议是超文本传输协议的缩写,是用于从万维网传输超文本到 ...

  7. HTTP 的前世今生:一次性搞懂 HTTP、HTTPS、SPDY、HTTP2.0

    作为互联网通信协议的一员老将,HTTP 协议走到今天已经经历了三次版本的变动,现在最新的版本是 HTTP2.0,相信大家早已耳熟能详.今天就给大家好好介绍一下 HTTP 的前世今生. HTTP/0.9 ...

  8. http2.0 的时代来了

    来源:https://www.jianshu.com/p/712eb3a65d33 作者:互扯程序 日期:2017.12.28 原文如下: 0. 开篇HTTP发展的心路历程 连接无法复用 设置Conn ...

  9. 在SpringBoot中启用Http2.0

    HTTP2.0特性 虽然没有官方明确必须使用https,但是浏览器默认使用https才能使用http2.0发起请求. 虽然HTTP/2没有明确要求必须使用TLS,但当前几乎所有浏览器均只支持 HTTP ...

最新文章

  1. ATT与Intel汇编语言的比较
  2. Matlab与线性代数 -- 矩阵的左除
  3. 文件内容查找java,java库从文件内容中查找mime类型
  4. 关于 SAP 电商云 Spartacus UI checkout 流程的一些讨论
  5. 软件测试推荐专业,软件测试专业老师推荐信
  6. java 百度poi_Android应用中使用百度地图API之POI(三)
  7. 500万数据mysql_mysql 500万数据库
  8. python 给文本加下划线_untiy3dUGUI实现text文本下划线
  9. 智能对话训练师进阶本领:复杂对话流程处理
  10. redis-pool go
  11. 用计算机函数,信息技术应用 用计算机画函数图象教案设计(一等奖)
  12. Spring-AOP原理详解
  13. 大学四年Java学习路线规划,所有私藏资料我都贡献出来了,我要是早知道就好了
  14. 基于jieba库的词频分析
  15. python之迷宫小游戏
  16. 腾讯三面落马+拒网易、CVTE后,字节四面成功拿下offer
  17. style = “color:####“包含的颜色名称对照表
  18. Java Ucase_VBScript字符串期函数(InStr、Left、Len、Mid、Replace、StrComp、UCase……)...
  19. 数据结构-链表-环形链表
  20. 论文---overcoming catastrophic forgetting in neural networks

热门文章

  1. mysql创建表的时候,字段尽量不要为NULL
  2. 运行一个程序时如何打印出执行程序的时间
  3. 用STM32实现:摄像头扫到二维码后提取二维码中的信息分别放到数组中
  4. 汇编:CF(carry flag)标志位
  5. python二十三:装饰器 ?
  6. lvm的备份还原及修改UUID
  7. 混迹网络运营多年经验之谈
  8. cisco 6509交换配置
  9. joinColumns和inverseJoinColumns的使用方法
  10. I.MX6 WIFI wireless_tools 移植