1. TCP三次握手和四次挥手的过程及意义
- 三次握手:客户端发送SYN,服务器回复SYN+ACK,客户端发送ACK。
- 四次挥手:客户端发送FIN,服务器回复ACK,服务器发送FIN,客户端回复ACK。
- 意义:确保连接可靠建立和释放,防止数据丢失或重复。
2. TCP与UDP的区别
- TCP:面向连接、可靠、有序、流量控制、拥塞控制。
- UDP:无连接、不可靠、无序、速度快、适用于实时通信。
3. HTTP与HTTPS的区别
- HTTP:明文传输,数据易被窃取,端口80。
- HTTPS:基于SSL/TLS加密传输,安全,端口443。
4. SSL/TLS握手过程
- 客户端发送ClientHello,服务器回复ServerHello、证书、公钥。
- 客户端生成预主密钥,用服务器公钥加密并发送。
- 双方生成会话密钥,开始加密通信。
7. HTTP GET与POST的区别
- GET:数据在URL中传递,适合获取资源,数据大小受限。
- POST:数据在请求体中传递,适合提交数据,数据大小不受限。
8. DNS解析过程
- 浏览器缓存 → 操作系统缓存 → 本地DNS服务器 → 根DNS服务器 → 顶级DNS服务器 → 权威DNS服务器 → 返回IP地址。
9. 如何实现断点续传
- 通过HTTP头部的
Range
字段指定下载范围,服务器返回对应的数据块。 - 客户端记录已下载的字节位置,重新连接时继续从该位置下载。
10. 如何保证数据传输的完整性
- 使用校验和算法(如MD5、SHA-256)计算文件的哈希值。
- 下载完成后对比哈希值,确保文件未被篡改或损坏。
12. HTTP常见状态码及含义
- 200(成功)、301(永久重定向)、404(未找到)、500(服务器内部错误)。
13. 浏览器输入URL后发生了什么?
- DNS解析 → 建立TCP连接 → 发送HTTP请求 → 服务器处理请求并返回响应 → 浏览器渲染页面。
14. 什么是长连接和短连接?
- 长连接:一次TCP连接支持多次HTTP请求,减少连接建立的开销。
- 短连接:每次HTTP请求后关闭TCP连接。
17. 什么是CDN?它的作用是什么?
- CDN:内容分发网络,将内容缓存到离用户更近的节点,加速访问速度。
- 作用:降低服务器负载、提高访问速度、提升用户体验。
19. 什么是WebSocket?它与HTTP的区别?
- WebSocket:全双工通信协议,适用于实时通信(如聊天、游戏)。
- 区别:HTTP是请求-响应模式,WebSocket是持久连接,双向通信。