面试题总结-网络编程

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

相关推荐
WYiQIU19 分钟前
11月面了7.8家前端岗,兄弟们12月我先躺为敬...
前端·vue.js·react.js·面试·前端框架·飞书
Dream it possible!5 小时前
LeetCode 面试经典 150_二叉搜索树_二叉搜索树中第 K 小的元素(86_230_C++_中等)
c++·leetcode·面试
神秘的猪头8 小时前
🧠 深入理解 JavaScript Promise 与 `Promise.all`:从原型链到异步编程实战
前端·javascript·面试
进击的野人10 小时前
深入理解 Async/Await:现代 JavaScript 异步编程的优雅解决方案
javascript·面试·ecmascript 6
前端一课12 小时前
第 28 题:async / await 的原理是什么?为什么说它是 Promise 的语法糖?(详细版)
前端·面试
前端一课12 小时前
第 28 题:手写 async/await(Generator 自动执行器原理)
前端·面试
前端一课12 小时前
第 33 题:浏览器渲染流程(Reflow 重排、Repaint 重绘、Composite 合成)*
前端·面试
前端一课12 小时前
前端面试第 34 题:事件循环(Event Loop)—— 必考高频题
前端·面试
前端一课12 小时前
第 26 题:Vue2 和 Vue3 的响应式原理有什么区别?为什么 Vue3 要用 Proxy 替代 defineProperty?
前端·面试
前端一课12 小时前
第 30 题:模块化原理(CommonJS vs ESModule)
前端·面试