面试题总结-网络编程

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

相关推荐
XiaoYu20027 小时前
第1章 核心竞争力和职业规划
前端·面试·程序员
沐怡旸8 小时前
【穿越Effective C++】条款14:在资源管理类中小心copying行为——RAII类的拷贝语义设计
c++·面试
沐怡旸9 小时前
【底层机制】ART虚拟机深度解析:Android运行时的架构革命
android·面试
阿登林13 小时前
Vue面试项目经验分享:如何专业展示技术能力与解决问题
vue.js·经验分享·面试
Java水解14 小时前
Java基础------真实大厂面试题汇总(含答案)
java·后端·面试
ANGLAL15 小时前
25.Spring Boot 启动流程深度解析:从run()到自动配置
java·开发语言·面试
晴殇i16 小时前
DOM嵌套关系全解析:前端必备的4大判断方法与性能优化实战
前端·javascript·面试
007php00716 小时前
某游戏大厂的常用面试问题解析:Netty 与 NIO
java·数据库·游戏·面试·职场和发展·性能优化·nio
nju_spy16 小时前
力扣每日一题(四)线段树 + 树状数组 + 差分
数据结构·python·算法·leetcode·面试·线段树·笔试
零雲17 小时前
java面试:有了解过kafka架构吗,可以详细讲一讲吗
java·面试·kafka