HTTP的相关知识

HTTP:超文本传输协议,用于在浏览器和web服务器之间传输超文本页面。HTTP的版本HTTP1.1的缺点:1)在传输中会出现对首阻塞问题2)响应不分轻重缓急,只会按先来后到的顺序执行3)并行通信需要建立多个TCP连接4)服务器不能主动推送客户端想要的资源,只能被动地等待客户端发起的请求5)由于HTTP是无状态的,所以每次请求和响应都会携带大量冗余信息。HTTP...
摘要由CSDN通过智能技术生成

HTTP:超文本传输协议,用于在浏览器和web服务器之间传输超文本页面。

HTTP的版本

HTTP1.0到HTTP1.1有哪些改进?

(1)虚拟主机:在一个Web服务器中并存多个站点

如何区分网站:在请求头里面有Host,保存要访问的域名。

(2)持久连接

在HTTP1.0中,浏览器访问服务器的内容每次只能获得一个资源,在HTTP1.1中,建立连接后可以获得多个资源。通过Connection:keep-alive,一次请求完成后不要马上断开,在保持一会儿。

(3)代理连接:客户端可以通过代理服务器间接访问目标服务器。

Proxy:XXXX。

HTTP1.1的缺点:

1)在传输中会出现对首阻塞问题

2)响应不分轻重缓急,只会按先来后到的顺序执行

3)并行通信需要建立多个TCP连接

4)服务器不能主动推送客户端想要的资源,只能被动地等待客户端发起的请求

5)由于HTTP是无状态的,所以每次请求和响应都会携带大量冗余信息。

HTTP2.0和HTTP1.1相比的新特性?

1)二进制分帧层

二进制分帧层是HTTP2.0性能增强的关键,它改变了通信两端交互数据的方式,原先都是以文本传输,现在要先对数据进行二进制编码,再把数据分成一个一个的帧,接着把帧送到数据流中,最后对方接收帧并拼成一条消息,再处理请求。在2.0版本中,通信的最小单位是帧(frame),若干个帧组成一条消息,若干个消息在数据流中传输,一个TCP连接可以分出若干条数据流,因此HTTP2.0只要建立一次TCP连接就能完成所有传输。

2)多路通信

通信两端对请求或响应的处理都是串行的,也就是按顺序一个个处理,虽然在HTTP1.1中新增了管道化的概念,让客户端能一下发送多个请求,减少了不必要的网络延迟,但那只是将请求的队列顺序迁移到服务器中,服务器处理还是得按顺序来,所以本质上响应还是串行的。如果一定要实现并行通信,那么必须建立多条TCP连接,多个请求分别在不同的TCP通道中传输,间接实现并行通信。

TCP是一种可靠的通信协议,中途如果出现丢包,发送方就会根据重发机制再发一次丢失的包,由于通信两端都是串行处理请求的,所以接收端在等待这个包到达之前,不会在处理后面的请求,这种现象称为对首阻塞。

HTTP2.0不但解决了对首阻塞问题,还将TCP建立次数降低到1次。通信两端只需将消息分解为独立的帧,然后在多条数据流中乱序发送,最后在接收端把帧重新组合成消息,并且各条消息的组合互不干扰,这就实现了真正意义上的并行通信,达到了多路复用的效果。

3)请求优先级

客户端对请求资源的迫切度都是不同的,例如在浏览器的网页(即HTML文档)中,像CSS、JavaScript这些文件传的越快越好,而像图像则可以稍后再传。在HTTP1.1中,只能是谁先请求,谁就先处理,不能显式地标记请求的优先级。而在HTTP2.0中,每条数据流都有一个31位的优先值,值越小优先级约大(0 的优先级最高)。有了这个优先值,相当于能随时建立一条绿色通道,通信两端可以对不同数据流中的帧采取不同的策略,这样能更好地分配有限的带宽资源。

4)服务器推送

HTML文档中的资源可以从服务器中拉取,也可以经过编码后直接嵌入。嵌入虽然可以减少一次请求,但同时会让HTML文档体积膨胀,降低压缩效率,破坏资源缓存。虽然有种种不足&

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值