tcp
之前我们已经深入掌握了tcp的工作原理:tcp握手、tcp长连接(保活计时器)、tcp分手、以及其用来传输信息的报文!
socket
套接字就是四元组:源IP:源端口号 +目IP:目端口号 我们知道,tcp是用套接字建立的一个个独立的连接! 每个tcp连接的数据都由对应套接字的缓冲区接受!
HTTP与TCP
- http是应用层协议,tcp是传输层协议!
- http底层是用tcp实现可靠的!
- http的长短连接实质就是tcp的长短连接
HTTP1.0 与 HTTP1.1区别
1、长连接
http1.0是短连接: http每次请求 ==> 建立tcp连接 ? 使用tcp传输数据完毕 ? 立即断开底层的tcp连接!【下一次请求又得重新建立连接…】
http1.1是长连接: http1.1开启keep-alive ,底层tcp连接可以传输多次http请求!【就是使用tcp的长连接(保活计时器 2小时)】
2、节约带宽
HTTP1.0每次会将全部数据发送。
HTTP1.1支持只发送header信息,如果服务器返回100,客户端再请求body发送到服务器;如果返回401,客户端就可以不用发送请求body了节约了带宽。【post请求过程】
3、缓冲处理
HTTP1.1增加了多种缓冲策略
4、 HOST
HTTP1.1的请求消息和响应消息都支持host域。
HTTP1.1和HTTP2.0的区别
1、多路复用
HTTP1.1只能一个请求一个请求陆续处理!
HTTP2.0使用了多路复用的技术,做到同一个连接并发处理多个请求!
2、头部压缩
HTTP1.1不支持header数据的压缩,HTTP2.0可以对header的数据进行压缩,使数据体积变小。
3、服务器推送
HTTP2.0引入了server push,它允许服务端主动推送资源给浏览器,省去了客户端重复请求的步骤。
|