1. https HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。

  2. 三次握手

首先很多人会先讲下握手的过程:

  1、第一次握手:客户端给服务器发送一个 SYN 报文。

  2、第二次握手:服务器收到 SYN 报文之后,会应答一个 SYN+ACK 报文。

  3、第三次握手:客户端收到 SYN+ACK 报文之后,会回应一个 ACK 报文。
  1. 四次挥手 https://www.zhihu.com/question/63264012 1)第一次挥手 因此当主动方发送断开连接的请求(即FIN报文)给被动方时,仅仅代表主动方不会再发送数据报文了,但主动方仍可以接收数据报文。
    (2)第二次挥手 被动方此时有可能还有相应的数据报文需要发送,因此需要先发送ACK报文,告知主动方“我知道你想断开连接的请求了”。这样主动方便不会因为没有收到应答而继续发送断开连接的请求(即FIN报文)。 (3)第三次挥手 被动方在处理完数据报文后,便发送给主动方FIN报文;这样可以保证数据通信正常可靠地完成。发送完FIN报文后,被动方进入LAST_ACK阶段(超时等待)。 (4)第四挥手 如果主动方及时发送ACK报文进行连接中断的确认,这时被动方就直接释放连接,进入可用状态。

  2. SYN攻击是什么?

服务器端的资源分配是在二次握手时分配的,而客户端的资源是在完成三次握手时分配的,所以服务器容易受到SYN洪泛攻击。SYN攻击就是Client在短时间内伪造大量不存在的IP地址,并向Server不断地发送SYN包,Server则回复确认包,并等待Client确认,由于源地址不存在,因此Server需要不断重发直至超时,这些伪造的SYN包将长时间占用未连接队列,导致正常的SYN请求因为队列满而被丢弃,从而引起网络拥塞甚至系统瘫痪。SYN 攻击是一种典型的 DoS/DDoS 攻击。 检测 SYN 攻击非常的方便,当你在服务器上看到大量的半连接状态时,特别是源IP地址是随机的,基本上可以断定这是一次SYN攻击。在 Linux/Unix 上可以使用系统自带的 netstats 命令来检测 SYN 攻击。

  1. http2 和 http1 区别

https://www.zhihu.com/question/306768582 HTTP2.0与HTTP1.1区别 与 HTTP 1.1 相比,主要区别包括:

HTTP/2 采用二进制格式而非文本格式。 HTTP/2 是完全多路复用的,而非有序并阻塞的——只需一个连接即可实现并行。因为它能同时处理多个消息的请求和响应; 使用报头压缩,HTTP/2 降低了开销。 HTTP/2 让服务器可以将响应主动 “推送” 到客户端缓存中。

上次更新:
贡献者: 郑壮