面试题总结-网络编程

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是持久连接,双向通信。

相关推荐
菠菠萝宝3 小时前
【Java八股文】12-分布式面试篇
java·分布式·zookeeper·面试·seata·redisson
南北是北北3 小时前
协程suspend 如何被编译成“状态机”
面试
一直_在路上4 小时前
Go架构师实战:玩转缓存,击破医疗IT百万QPS与“三大天灾
前端·面试
怪兽20145 小时前
谈一谈Java成员变量,局部变量和静态变量的创建和回收时机
android·面试
王嘉俊9256 小时前
Java面试宝典:核心基础知识精讲
java·开发语言·面试·java基础·八股文
南北是北北6 小时前
Kotlin Channel 开箱即用
面试
前端缘梦6 小时前
前端模块化详解:CommonJS 与 ES Module 核心原理与面试指南
前端·面试·前端工程化
Hilaku7 小时前
前端开发,为什么容易被边缘化?
前端·javascript·面试
召摇8 小时前
命令-查询分离原则(Command-Query Separation)
前端·javascript·面试