一、wireshark工具分析tcp三次握手
TCP三次握手(预交互过程,都是tcp包)
1.客户端发送TCP SYN:我的端口是60280,我需要访问你的端口443。SEQ Number(初始化序列号isn)=0
2.服务器发送TCP SYN/ACK 允许你访问我的端口,我也需要访问你的60280端口。ACK(确认号)=1即序列号+1,服务器也随机生成一个序列号SEQ=0
3.客户端发送 TCP ACK 允许你访问我的443端口。ACK=1
二、http2配置
2.1优势
①信道复用(支持一个tcp connector,并发发送,并发返回)
②分帧传输(每一帧都有上下文联系,可以乱序发送,最后根据帧信息组合数据,可以并发发送请求)。
③ServerPush(服务器主动向客户端发送信息)
Http1.1只支持一个请求发送完之后再发送第二个请求。服务端返回也是先返回第一个请求然后第二个。HTTP2支持一个tcp connector连接。基于信道复用,分帧传输,server push可以并发发送,并发返回。
2.2nginx配置Http2
自动兼容http1.1。不需要考虑客户端使用协议,通过nginx将http2转http1.1传给我们后端。
2.2.1条件
1、openssl的版本必须在1.0.2e及以上
2、nginx的版本必须在1.9.5以上
3、编译的时候加了模块:--with-http_v2_module
2.2.2配置
server{
listen 443 http2;
server_name xxx.com;
http2_push_preload on;
}
2.2.3验证:
用chrome打开浏览器访问网址:www.xxx.com
在chrome打开:chrome://net-internals/#http2