网络并发知识

150 阅读1分钟

HTTP/1.0/1.1/2.0 在并发请求上主要区别是什么?

1HTTP/1.0
每个TCP连接只能发送一个请求,当服务器响应后关闭连接,再次请求需要再次建立TCP连接。
2HTTP/1.1
默认采用持久连接,TCPConnection:keep-alive
Connection:close
管道机制,在同一个TCP连接里,允许多个请求同时发送。一问一答的形式
所有的数据通信是有顺序的,A B C,A先到达服务器开始响应,10S,队头阻塞。
3HTTP/2.0
加了双工模式,服务器也能同时处理多个请求了,解决了队头阻塞的问题。
多路复用,没有次序概念了。
加了服务器推送功能。

HTTP/ 1.1的长连接和2.0的多路复用有什么区别?

 1.1 同一时间一个TCP链接只能处理一个请求,采用一问一答的形式。上一个请求响应后才能处理下一个请求。
 追问: 听说chrome浏览器支持最大6个同域请求的并发: 因为chrome支持最大6个TCP连接
 2.0: 同域名上的所有通信都在单个连接上完成。单个连接上可以并行交错的进行请求和响应。

为什么1.1不能实现多路复用?

  HTTP/2.0是基于二进制帧的协议,HTTP/1.1是基于文本分隔解析的协议。
  1.1的报文结构里,服务器需要不断的读入字节,直到遇到换行符,处理的顺序是串行的。
  2.0以帧为最小数据单位,每个帧都会有标识自己属于哪个流,多个帧组成一个流。
  多路复用,其实就是一个TCP存在多条流。