1、HTTP/1.0/1.1/2.0的并发请求有什么区别? HTTP/1.0: 每个TCP连接只会发起一次请求,当服务器相应后关闭这个TCP连接。下一次请求需要再次建立TCP连接。
HTTP/1.1: 默认采用持久连接:每个TCP连接发送请求之后,默认并不会关闭; (http1.0中实现在请求头中使用Connection:keep-alive), (不想采用默认持久连接,可以在请求头中加入action:close) 管道机制: 在一个TCP连接里,允许多个请求同时发送,但是所有通信是按顺序请求,可能会导致-队头阻塞(第一个请求响应时间比较长)。【一问一答的形式】
HTTP/2.0: 双工模式:一个TCP连接发起多个请求,服务端可以处理多个请求(解决队头阻塞) 多路复用: 没有次序的概念, 服务器推送功能。
2、HTTP/1.1的长连接和2.0的多路复用有什么区别? 1.1:同一时间一个TCP连接只能处理一个秋千,采用一问一答的形式,上一个请求响应之后才能处理下一个请求。 追加: chrome浏览器支持最多六个同域请求的并发。 2.0:同域名上的所有通信都在单个连接上完成,单个连接上可以并行交错的进行请求和响应。
3、为什么1.1并不能实现多路复用? HTTP/2.0 是基于二进制帧的协议,HTTP/1.1是基于文本分隔解析的协议。
1.1的报文结构里,服务器需要不断的读入字节,直到遇到换行符,处理顺序是串行的 GET / HTTP/1.1 Accept: Host: referer:
POST
2.0 以帧为最小数据单位,每个帧都会有标识自己属于哪个流,多个帧组成一个流 多路复用就是一个TCP里面的多条流
旨在分享~~
|