[面试直通版]网络协议面试核心之HTTP,HTTPS,DNS-HTTP版本区别
创始人
2024-03-31 10:26:58

目录

典型问题:

不同的时代

HTTP/0.9:

HTTP/1.0:

HTTP/1.1:

HTTP/1.0和HTTP/1.1的区别:

SPDY协议:

HTTP/2.0协议:

HTTP2.0和SPDY区别:


  • 典型问题:

  • 请简述HTTP 1.0、1.1、2.0的主要区别?
  • HTTP头Connection:keep-alive是什么意思?解决了什么问题?
  • 不同的时代

    • 合并网络、创建互联网的时代(1984-1995)
    • 商业化、私有化、中心化的时代(1995-2010)
    • 去中心化、内容为王的时代(2010-至今)
  • HTTP/0.9:

    • 1991发布,原型版本,功能简陋
    • 只支持GET方法
    • 不支持多媒体内容
    • 服务器只能回应HTML格式字符串,不能回应别的格式
  • HTTP/1.0:

    • 1996年5月发布
    • 增加多种方法
    • 支持多媒体对象
    • 无连接
    • 指的是限制每次连接只处理一个请求,服务器处理完客户端的请求,并收到客户端的应答后,即断开连接
    • 特点:请求时建立连接,请求完释放连接,以尽快将资源释放出来给其他客户端,适用于请求非静态资源;
    • 如果请求的是静态资源,即访问图片每次都需要建立一次TCP连接就显得低效;
    • Keep-Alive被提出来解决这效率低的问题,它能使客户端到服务器端的连接持续有效,它能避免建立或重新建立连接;但如果Keep-Alive值设置过大且这期间无其它操作,也是会造成资源浪费,所以需要根据实际应用设置;
    • 无状态
    • 是指对于事务处理没有记忆能力
    • 即我们给服务器发送HTTP请求后,服务器根据我们的请求,返回响应信息给我们,但服务器不会记录任何信息,这意味着如果下一次请求,需要上一次请求的信息,则它必须重传,这可能导致每次传送的数据量变大,造成应答时间过长
    • 现如今的Web应用程序,都是需要客户端与服务器进行动态交互
    • 如:用户选中商品加入购物车之后,点击支付时,需要知道哪些商品存在购物车中;
    • HTTP的无状态特性影响了这些需要交互的应用程序,为了解决这一问题,Cookie和Session诞生了;
    • 另外
    • 这一版本在请求和响应中加入了HTTP版本号,这一特点在之后的版本中保持不变
    • 新增状态码(status code)、多字符集支持、多部分发送(multi-part type)、权限(authorization)、缓存(cache)、内容编码(content encoding)等
  • HTTP/1.1:

    • 1997年1月发布
    • 引入了持久连接(persistent connection),即TCP连接默认不关闭,可以被多个请求复用,不用声明Connection: keep-alive
    • 对于同一个域名,大多数浏览器允许同时建立6个持久连接,引入了管道机制,即在同一个TCP连接里,客户端可以同时发送多个请求,进一步改进了HTTP协议的效率
    • 字节范围请求:若客户端此时已经有一部分数据,为节省带宽,可以只向服务器端请求一部分数据,这个功能在请求头的range头域实现
    • 还是存在缺点,在同一个TCP里边所有数据的通信都是按照次序的,服务器只有处理完一个回应,才会解决下一个回应要是前边某个回应处理的比较慢,就会出现后边很多回应等待的情况,这就是常说的队头阻塞
  • HTTP/1.0和HTTP/1.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),方便了开发者自由的选择以便于充分利用带宽和连接
    • (3)错误通知的管理:
    • 在HTTP1.1中新增24个状态响应码,如409(Conflict)表示请求的资源与资源当前状态冲突;410(Gone)表示服务器上的某个资源被永久性的删除
    • (4)Host 头处理:
    • 在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)
    • 但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址
    • HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)
    • (5)长连接:
    • HTTP 1.1支持持久连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟
    • 在HTTP1.1中默认开启Connection: keep-alive,弥补了HTTP1.0每次请求都要创建连接的缺点
  • SPDY协议:

    • SPDY:2009年谷歌研发,综合HTTPS和HTTP两者优点于一体的传输协议,主要特点:
    • (1)降低延迟
    • 针对HTTP高延迟的问题,SPDY优雅的采取了多路复用(multiplexing)
    • 多路复用通过多个请求stream共享一个tcp连接的方式,解决了HOL blocking的问题,降低了延迟同时提高了带宽的利用率
    • (2)请求优先级(request prioritization)
    • 多路复用带来一个新的问题是,在连接共享的基础之上有可能会导致关键请求被阻塞
    • SPDY允许给每个request设置优先级,重要的请求就会优先得到响应
    • 比如浏览器加载首页,首页的html内容应该优先展示,之后才是各种静态资源文件,脚本文件等加载,可以保证用户能第一时间看到网页内容
    • (3)header压缩
    • HTTP1.x的header很多时候都是重复多余的
    • 选择合适的压缩算法可以减小包的大小和数量
    • (4)基于HTTPS的加密协议传输
    • 大大提高了传输数据的可靠性
    • (5)服务端推送(server push)
    • 采用了SPDY的网页,例如网页有一个sytle.css的请求,在客户端收到sytle.css数据的同时,服务端会将sytle.js的文件推送给客户端,当客户端再次尝试获取sytle.js时就可以直接从缓存中获取到,不用再发请求了
  • HTTP/2.0协议:

    • HTTP/2.0:2015年发布,HTTP2.0是SPDY的升级版
    • (1)头信息和数据体都是二进制,称为头信息帧和数据帧
    • (2)复用TCP连接,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,且不用按顺序一一对应,避免了"队头堵塞",此双向的实时通信称为多工(Multiplexing)
    • (3)引入头信息压缩机制(header compression),头信息使用gzip或compress压缩后再发送;
    • 客户端和服务器同时维护一张头信息表,所有字段都会存入这个表,生成一个索引号,不发送同样字段,只发送索引号,提高速度
    • (4)HTTP/2.0 允许服务器未经请求,主动向客户端发送资源,即服务器推送(server push)
  • HTTP2.0和SPDY区别:

  • (1)HTTP2.0 支持明文 HTTP 传输,而 SPDY 强制使用 HTTPS
  • (2)HTTP2.0 消息头的压缩算法采用 HPACK,而非 SPDY 采用的 DEFLATE

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...