http协议介绍
tcp
三次握手的目的是连接服务器指定端口,建立 TCP 连接,并同步连接双方的序列号和确认号,交换 TCP 窗口大小信息。在 socket 编程中,客户端执行 connect() 时。将触发三次握手。
把大象放冰箱,总共分三步:
客户端告诉服务端我要连你了
服务端告诉客户端我收到了你的信号,连吧
客户端告诉服务端:那我就要连了 服务端连上了之后
假设客户端想要关闭连接,客户端发送一个 FIN 标志位置为1的包,表示自己已经没有数据可以发送了,但是仍然可以接受数据。
服务器端确认客户端的 FIN 包,发送一个确认包,表明自己接受到了客户端关闭连接的请求,但还没有准备好关闭连接。
服务器端准备好关闭连接时,向客户端发送结束连接请求,FIN 置为1。
客户端接收到来自服务器端的关闭请求,发送一个确认包,并进入 TIME_WAIT状态,等待可能出现的要求重传的 ACK 包。
服务器端接收到这个确认包之后,关闭连接,进入 CLOSED 状态。
客户端等待了某个固定时间(两个最大段生命周期,2MSL,2 Maximum Segment Lifetime)之后,没有收到服务器端的 ACK ,认为服务器端已经正常关闭连接,于是自己也关闭连接,进入 CLOSED 状态。
TCP KeepAlive
TCP KeepAlive 的基本原理是,隔一段时间给连接对端发送一个探测包,如果收到对方回应的 ACK,则认为连接还是存活的,在超过一定重试次数之后还是没有收到对方的回应,则丢弃该 TCP 连接。
http
http1.0 和1.1 发布时间很早 也没差几个月。我们基本上最开始用的都是1.1
2015年后发布2.0 于谷歌浏览器而言,使用2.0 要求强制使用https协议。
但实际上两者之间可以单独使用
1.1 的主要功能有:
2.0 加入了哪些内容
https
参考文章
Last updated