知识点专题话题 #8

计算机网络面试题:TCP、HTTP 与请求链路

面试之星官方的头像 面试之星官方 更新于

沿着一次网页请求,把分层、连接、传输和应用语义连接起来。

适用范围

HTTP 与 TCP 基础;HTTP/1.1、HTTP/2、HTTP/3 的传输边界应分别讨论。

网络面试题适合沿着一次请求组织:名称如何解析,连接怎样建立,数据如何到达,对端如何理解响应。每一层负责的事情不同;把应用请求的成功与连接建立混为一谈,会遗漏超时和重试的边界。

学习顺序

  1. 分层定位。 标明 DNS、IP、TCP、TLS 与 HTTP 在请求中的职责。先说明讨论的是哪种协议组合。
  2. 连接与传输。 手绘 TCP 建立和关闭连接的报文方向,解释为什么需要状态与确认。
  3. 应用语义。 对比请求方法、状态码、缓存与连接复用。状态码应与真实处理结果一致。
  4. 异常排查。 将 DNS 失败、连接超时、证书错误、响应慢和服务端错误分开记录。

练习:浏览器页面为什么慢

用浏览器网络面板记录一条真实请求的阶段耗时,再在本地测试接口中增加响应延迟。观察连接、首字节和下载阶段的变化,区分网络等待与服务端处理时间。不要把一次测量当作普遍结论。

常见追问

如果请求已经超时,服务端是否仍可能完成写入?重试是否会产生重复操作?需要怎样的业务标识与幂等设计?

能够把报文流程、应用行为和排查证据联系起来,才算完成这一轮复习。之后可将同样的分析方式用于数据库连接和服务间调用。

补充:网络服务的操作系统基础

学习连接管理后,再比较阻塞、非阻塞与多路复用。select、poll、epoll 的练习应明确操作系统、连接数量和就绪事件,避免把系统调用名称当作性能结论。

参考资料

相关学习路线

安排复习节奏

30 天 Java 面试计划

计算机网络题库

共 68 道题

按题库默认顺序排列,可选择分类集中练习。

显示 68 道题

  1. 由下往上说出 OSI 七层模型、TCP/IP 五层模型以及各层的代表协议 网络基础与分层
  2. 为什么协议分层?是为了解决什么问题? 网络基础与分层
  3. 计算机网络的分类方法有哪些 网络基础与分层
  4. 两台计算机什么情况下可以通信?什么情况下不行? 网络基础与分层
  5. 介绍下 IP 协议 / IP 地址 IP 与网络寻址
  6. 既然有了 MAC 地址,为啥还需要 IP 地址? IP 与网络寻址
  7. IPV4 地址不够如何解决(CIDR、NAT) IP 与网络寻址
  8. IP 首部包含哪些字段 IP 与网络寻址
  9. 介绍一些路由协议和交换协议 IP 与网络寻址
  10. IPv4 和 IPv6 的区别 IP 与网络寻址
  11. 什么是 ARP 协议?其工作原理是什么? IP 与网络寻址
  12. 网络两台主机是如何互相找到对方的?(网络寻址过程) IP 与网络寻址
  13. 什么是 ICMP 协议?其工作原理和应用场景是什么? IP 与网络寻址
  14. TCP 首部包含哪些字段 TCP 与 UDP
  15. TCP 三次握手的过程 TCP 与 UDP
  16. TCP 为什么是三次握手? TCP 与 UDP
  17. 初始序列号是固定的吗,为什么 TCP 与 UDP
  18. 如何防御 TCP 洪泛攻击?(半连接队列) TCP 与 UDP
  19. TCP 四次挥手的过程 TCP 与 UDP
  20. TCP 为什么是四次挥手? TCP 与 UDP
  21. 为什么需要 TIME_WAIT 状态? TCP 与 UDP
  22. 为什么 TIME_WAIT 状态持续时间是 2MSL? TCP 与 UDP
  23. 服务端出现大量 CLOSE_WAIT 是什么原因?如何解决? TCP 与 UDP
  24. TIME_WAIT 状态过多有什么影响?如何解决 TCP 与 UDP
  25. TCP 怎么保证可靠传输 TCP 与 UDP
  26. 快速重传为什么要规定凑满 3 个冗余 ACK 呢 TCP 与 UDP
  27. 详细介绍下 TCP 滑动窗口(累积确认、流量控制、拥塞控制) TCP 与 UDP
  28. TCP 中有哪些定时器 TCP 与 UDP
  29. TCP 糊涂窗口综合症及解决方案 TCP 与 UDP
  30. 什么是 TCP 粘包和拆包问题?怎么解决? TCP 与 UDP
  31. 怎么快速回收 TCP 资源 TCP 与 UDP
  32. TCP 和 UDP 的区别 TCP 与 UDP
  33. 列举一些常见的应用层协议,并说明他们是基于 TCP 还是 UDP TCP 与 UDP
  34. 微信视频/语音是基于 TCP 还是 UDP?即然是基于 UDP,那么如何做到显示通话质量的 TCP 与 UDP
  35. 为什么需要 DNS 协议?(DNS 原理、DNS 协议有啥用) DNS
  36. 全世界有多少个根 DNS 服务器? DNS
  37. DNS 协议为什么同时使用 TCP 和 UDP? DNS
  38. 假设你连续访问两次某个网页,会进行几次 DNS 解析? DNS
  39. DNS 解析一个地址的时候会返回多个 IP 吗? DNS
  40. DNS 解析出错,怎么排查错误 DNS
  41. HTTP 报文格式 HTTP 与会话
  42. HTTP 响应报文的状态码有哪些 HTTP 与会话
  43. HTTP 请求头有哪些字段 HTTP 与会话
  44. HTTP 访问一个下载地址时怎么知道是要下载文件(Content-Type)? HTTP 与会话
  45. HTTP 断点续传的原理是什么 HTTP 与会话
  46. 说一说 HTTP 请求的过程(从输入域名到浏览器看见页面经历了什么过程) HTTP 与会话
  47. HTTP 的缓存机制 HTTP 与会话
  48. GET 和 POST 区别 HTTP 与会话
  49. 如何解决 POST 请求中文乱码问题 HTTP 与会话
  50. 使用 POST 请求上传一个 5G 的文件,会产生什么问题 HTTP 与会话
  51. 除了 POST 和 GET,你还知道什么及其作用(HTTP 有哪些请求方法) HTTP 与会话
  52. 为什么说 HTTP 是无状态的 HTTP 与会话
  53. Session 和 Cookie HTTP 与会话
  54. 如果浏览器禁用 Cookie,如何记录 HTTP 状态信息? HTTP 与会话
  55. 如果让你来设计 Cookie,你会怎么实现 HTTP 与会话
  56. 如果让你来设计 Session,你会怎么实现 HTTP 与会话
  57. HTTP1.0/1.1/2.0/3.0 区别 HTTP 与会话
  58. HTTP 实现 keep-alive 长连接的底层原理是什么 HTTP 与会话
  59. HTTP2 的头部压缩原理 HTTP 与会话
  60. HTTP/HTTPS 什么区别?HTTP 特性有哪些 HTTPS 与加密
  61. HTTPS 从客户端到服务器端全流程,包括 CA 验证体系 HTTPS 与加密
  62. HTTPS 中的 SSL/TLS 怎么工作的 HTTPS 与加密
  63. 知道哪些非对称密钥算法 HTTPS 与加密
  64. 对称加密和非对称加密的适用场景 HTTPS 与加密
  65. 为什么非对称加密比对称加密效率低 HTTPS 与加密
  66. 一台计算机最多可以使用的端口号有多少个 端口与网络排查
  67. 常用的端口及其对应功能 端口与网络排查
  68. 客户端卡顿可能是什么问题? 如何排查? 端口与网络排查

评论 0 友善交流,让每个问题都有回响

还没有评论,分享你的看法吧。