面试


### 1. 从浏览器输入 URL 的所有流程

1. 浏览器解析 URL,提取出协议、主机名、端口号和路径等信息。
2. 浏览器通过 DNS 解析获取主机名对应的 IP 地址。
3. 浏览器向服务器发起 TCP 连接请求(三次握手)。
4. 服务器响应 TCP 连接请求(三次握手)。
5. 浏览器发送 HTTP 请求到服务器。
6. 服务器接收到 HTTP 请求,处理并返回 HTTP 响应。
7. 浏览器解析并渲染 HTML、CSS、JavaScript 等资源。
8. 页面加载完成,浏览器关闭 TCP 连接(四次挥手)。

### 2. TCP 为什么需要三次握手,为什么不是两次或者四次

TCP 为了建立可靠的连接,采用了三次握手的过程:

- 第一次握手:客户端向服务器发送 SYN 报文,表示请求连接。
- 第二次握手:服务器收到 SYN 报文后,回复一个 SYN+ACK 报文,表示同意建立连接。
- 第三次握手:客户端收到服务器的 SYN+ACK 报文后,回复一个 ACK 报文,表示连接建立成功。

这样设计的目的是为了防止已失效的连接请求报文段突然又传送到了服务端,从而产生错误。

### 3. TIME_WAIT 状态是什么

TIME_WAIT 是 TCP 连接关闭后的一种状态,表示连接已经关闭,但是为了确保网络中的所有数据包都被正确处理,TCP 协议要求在关闭连接后等待一段时间(两倍的最大报文传输时间),这个时间称为 TIME_WAIT 状态。

### 4. HTTP 和 HTTPS,HTTPS 加密过程

HTTP 是超文本传输协议,数据传输不加密;而 HTTPS 是在 HTTP 的基础上加入 SSL/TLS 加密层,实现数据传输的加密和安全。

HTTPS 加密过程:
1. 客户端发起 HTTPS 请求。
2. 服务器返回包含公钥的数字证书。
3. 客户端验证数字证书的合法性,并提取出服务器的公钥。
4. 客户端生成一个随机的对称密钥,用服务器的公钥加密后发送给服务器。
5. 服务器使用私钥解密客户端发送的数据,获取对称密钥。
6. 客户端和服务器双方都拥有了相同的对称密钥,之后的通信都使用这个密钥进行加密和解密。

### 5. 常用状态码以及含义

常见的 HTTP 状态码包括:

- 200 OK:请求成功。
- 404 Not Found:请求的资源不存在。
- 500 Internal Server Error:服务器内部错误。
- 302 Found:临时重定向。
- 401 Unauthorized:未授权访问。
- 403 Forbidden:禁止访问。

这些状态码用于指示客户端请求的处理结果或服务器端的状态。
全部评论
有点像团子的题
点赞 回复
分享
发布于 04-12 10:38 广东
找到春招offer了吗?试试自动驾驶行业否
点赞 回复
分享
发布于 04-14 11:42 广东
滴滴
校招火热招聘中
官网直投

相关推荐

1 11 评论
分享
牛客网
牛客企业服务