(超详细版)2019北京面试题————浏览器

1,211 阅读2分钟

1、Http和Https的区别

  • https协议需要到CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。
  • http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
  • http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  • http的连接很简单,是无状态的。Https协议是由SSL+Http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。(无状态的意思是其数据包的发送、传输和接收都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息。)

2、浏览器的三次握手。

第一次握手:客户端发送网络包,服务端收到了。这时候服务端的都结论:客户端的发送能力、服务端的接受能力正常。

第二次握手:服务端收到网络包会给客户端响应,这时候服务端发送网络包,客户端收到了,此时的服务端得出结论:服务端的发送能力没有问题,因为客户端没有给服务端响应。

第三次握手:客户端收到网络包后,给服务端响应,这时候客户端给服务端发送网络包,服务端收到了,此时服务端得出结论:客户端的发送、接受能力没有问题,自己的发送,接受能力也没有问题。

3、浏览器的四次挥手

建立一个连接需要三次握手,而终止一个连接要经过四次挥手,这是由于TCP的半关闭造成的,所谓的半关闭就是TCP提供了连接的一端在结束它的发送后还能接收来自另一端数据的能力。

TCP 的连接的拆除需要发送四个包,因此称为四次挥手,客户端或服务端均可主动发起挥手动作。

  • 第一次挥手:客户端A发送一个FIN.用来关闭客户A到服务器B的数据传送
  • 第二次挥手:服务器B收到这个FIN. 它发回一个ACK,确认序号为收到的序号+1。和SYN一样,一个FIN将占用一个序号
  • 第三次挥手:服务器B关闭与客户端A的连接,发送一个FIN给客户端A
  • 第四次挥手:客户端A发回ACK报文确认,并将确认序号设置为序号加1