HTTP的进化之旅

与TCP的区别

1、作用在不同的层次,TCP作用在网络层,http作用在应用层

2、TCP、UDP就像是高速公路上的卡车,他们携带的货物就像http

HTTP传输过程中的影响因素

1、带宽【固定时间内可传输的资料数量,现在的设备发展,这个影响较小】

2、延时,其中延时又分了三个方面

  1. 浏览器的阻塞:浏览器对同一个域名的有最大连接数的限制,如果超过会被阻塞
  2. DNS查询:必须要有IP才可以建立连接
  3. 建立连接:【HTTP是基于TCP的】每次连接都要经历三次握手。如果发送大文件,那么慢启动会造成长延迟。

典型案例:迁移海量小文件【主备集群之间增量同步时,如果确保带宽足够,可以设置内核参数,禁止使用慢启动:

sysctl-w net.ipv4.tcp_slow_start_after_idle=0

或者尽量把大量小文件放在一个TCP连接中排队传输。避免每次发送时的慢启动以及三次握手

HTTP1.1的新特性

1、增加了更多关于缓存的变量,比如ETag/If-Not-Match等

2、带宽优化的处理:可以请求局部数据,用range关键字控制

3、错误通知:增加了24的状态码表示请求过程中的错误

  • 409:资源冲突
  • 410:资源被永久删除

4、Host头处理:虚拟主机发展,一个物理服务器可以存在多个虚拟主机,并且共享一个IP地址,所以HTTP1.1的请求和响应都支持Host头域,并且如果没有Host头域会报告一个错误(400 Bad Request)

5、长连接:在一个TCP连接上可以传输多个HTTP请求和响应,减少建立连接的延时。在HTTP1.1中默认开启Connection: keep-alive

 https与http

  1. https需要CA证书
  2. https多了一层SSL/TLS,内容加密
  3. 连接方式不同
  4. https可以防止运营商劫持

SPDY

结构:基于Https 【HTTP-SPDY-SSL-TCP】

相比HTTP1.x的优化

  • 多路复用——可以并发的在一个连接上请求数据【之前长连接需要一个请求回复之后才能继续发送请求】
  • 请求优先级——防止关键请求被阻塞
  • header压缩——减小包的大小和数量
  • 基于https的加密协议——提高可靠性
  • 服务端推送——当接收到客户端的请求之后,除了回复请求的资源之外,还会将客户端需要但是还没有发出请求的数据一起回复。比如:在访问页面时,客户端仅仅请求这个页面,在对页面进行渲染时,发现还有CSS或者js文件没有获取,那就会再次发送请求。但是服务端推送功能会在接收到页面请求的同时,将这一系列的文件一起发送。

HTTP2.0 【基于SPDY的升级】

  • 与SPDY的区别

    • HTTP2.0可以明文传输
    • 头部压缩的算法不同
  • 与HTTP1.X相比的新特性

    • 内容:二进制格式——实现方便、健壮
    • 多路复用:连接共享——低延迟
    • header压缩
    • 服务端推送

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值