计算机网络面试题:TCP、HTTP 与请求链路
沿着一次网页请求,把分层、连接、传输和应用语义连接起来。
适用范围
HTTP 与 TCP 基础;HTTP/1.1、HTTP/2、HTTP/3 的传输边界应分别讨论。
网络面试题适合沿着一次请求组织:名称如何解析,连接怎样建立,数据如何到达,对端如何理解响应。每一层负责的事情不同;把应用请求的成功与连接建立混为一谈,会遗漏超时和重试的边界。
学习顺序
- 分层定位。 标明 DNS、IP、TCP、TLS 与 HTTP 在请求中的职责。先说明讨论的是哪种协议组合。
- 连接与传输。 手绘 TCP 建立和关闭连接的报文方向,解释为什么需要状态与确认。
- 应用语义。 对比请求方法、状态码、缓存与连接复用。状态码应与真实处理结果一致。
- 异常排查。 将 DNS 失败、连接超时、证书错误、响应慢和服务端错误分开记录。
练习:浏览器页面为什么慢
用浏览器网络面板记录一条真实请求的阶段耗时,再在本地测试接口中增加响应延迟。观察连接、首字节和下载阶段的变化,区分网络等待与服务端处理时间。不要把一次测量当作普遍结论。
常见追问
如果请求已经超时,服务端是否仍可能完成写入?重试是否会产生重复操作?需要怎样的业务标识与幂等设计?
能够把报文流程、应用行为和排查证据联系起来,才算完成这一轮复习。之后可将同样的分析方式用于数据库连接和服务间调用。
补充:网络服务的操作系统基础
学习连接管理后,再比较阻塞、非阻塞与多路复用。select、poll、epoll 的练习应明确操作系统、连接数量和就绪事件,避免把系统调用名称当作性能结论。
参考资料
相关学习路线
安排复习节奏
计算机网络题库
共 68 道题按题库默认顺序排列,可选择分类集中练习。
显示 68 道题
- 由下往上说出 OSI 七层模型、TCP/IP 五层模型以及各层的代表协议 网络基础与分层
- 为什么协议分层?是为了解决什么问题? 网络基础与分层
- 计算机网络的分类方法有哪些 网络基础与分层
- 两台计算机什么情况下可以通信?什么情况下不行? 网络基础与分层
- 介绍下 IP 协议 / IP 地址 IP 与网络寻址
- 既然有了 MAC 地址,为啥还需要 IP 地址? IP 与网络寻址
- IPV4 地址不够如何解决(CIDR、NAT) IP 与网络寻址
- IP 首部包含哪些字段 IP 与网络寻址
- 介绍一些路由协议和交换协议 IP 与网络寻址
- IPv4 和 IPv6 的区别 IP 与网络寻址
- 什么是 ARP 协议?其工作原理是什么? IP 与网络寻址
- 网络两台主机是如何互相找到对方的?(网络寻址过程) IP 与网络寻址
- 什么是 ICMP 协议?其工作原理和应用场景是什么? IP 与网络寻址
- TCP 首部包含哪些字段 TCP 与 UDP
- TCP 三次握手的过程 TCP 与 UDP
- TCP 为什么是三次握手? TCP 与 UDP
- 初始序列号是固定的吗,为什么 TCP 与 UDP
- 如何防御 TCP 洪泛攻击?(半连接队列) TCP 与 UDP
- TCP 四次挥手的过程 TCP 与 UDP
- TCP 为什么是四次挥手? TCP 与 UDP
- 为什么需要 TIME_WAIT 状态? TCP 与 UDP
- 为什么 TIME_WAIT 状态持续时间是 2MSL? TCP 与 UDP
- 服务端出现大量 CLOSE_WAIT 是什么原因?如何解决? TCP 与 UDP
- TIME_WAIT 状态过多有什么影响?如何解决 TCP 与 UDP
- TCP 怎么保证可靠传输 TCP 与 UDP
- 快速重传为什么要规定凑满 3 个冗余 ACK 呢 TCP 与 UDP
- 详细介绍下 TCP 滑动窗口(累积确认、流量控制、拥塞控制) TCP 与 UDP
- TCP 中有哪些定时器 TCP 与 UDP
- TCP 糊涂窗口综合症及解决方案 TCP 与 UDP
- 什么是 TCP 粘包和拆包问题?怎么解决? TCP 与 UDP
- 怎么快速回收 TCP 资源 TCP 与 UDP
- TCP 和 UDP 的区别 TCP 与 UDP
- 列举一些常见的应用层协议,并说明他们是基于 TCP 还是 UDP TCP 与 UDP
- 微信视频/语音是基于 TCP 还是 UDP?即然是基于 UDP,那么如何做到显示通话质量的 TCP 与 UDP
- 为什么需要 DNS 协议?(DNS 原理、DNS 协议有啥用) DNS
- 全世界有多少个根 DNS 服务器? DNS
- DNS 协议为什么同时使用 TCP 和 UDP? DNS
- 假设你连续访问两次某个网页,会进行几次 DNS 解析? DNS
- DNS 解析一个地址的时候会返回多个 IP 吗? DNS
- DNS 解析出错,怎么排查错误 DNS
- HTTP 报文格式 HTTP 与会话
- HTTP 响应报文的状态码有哪些 HTTP 与会话
- HTTP 请求头有哪些字段 HTTP 与会话
- HTTP 访问一个下载地址时怎么知道是要下载文件(Content-Type)? HTTP 与会话
- HTTP 断点续传的原理是什么 HTTP 与会话
- 说一说 HTTP 请求的过程(从输入域名到浏览器看见页面经历了什么过程) HTTP 与会话
- HTTP 的缓存机制 HTTP 与会话
- GET 和 POST 区别 HTTP 与会话
- 如何解决 POST 请求中文乱码问题 HTTP 与会话
- 使用 POST 请求上传一个 5G 的文件,会产生什么问题 HTTP 与会话
- 除了 POST 和 GET,你还知道什么及其作用(HTTP 有哪些请求方法) HTTP 与会话
- 为什么说 HTTP 是无状态的 HTTP 与会话
- Session 和 Cookie HTTP 与会话
- 如果浏览器禁用 Cookie,如何记录 HTTP 状态信息? HTTP 与会话
- 如果让你来设计 Cookie,你会怎么实现 HTTP 与会话
- 如果让你来设计 Session,你会怎么实现 HTTP 与会话
- HTTP1.0/1.1/2.0/3.0 区别 HTTP 与会话
- HTTP 实现 keep-alive 长连接的底层原理是什么 HTTP 与会话
- HTTP2 的头部压缩原理 HTTP 与会话
- HTTP/HTTPS 什么区别?HTTP 特性有哪些 HTTPS 与加密
- HTTPS 从客户端到服务器端全流程,包括 CA 验证体系 HTTPS 与加密
- HTTPS 中的 SSL/TLS 怎么工作的 HTTPS 与加密
- 知道哪些非对称密钥算法 HTTPS 与加密
- 对称加密和非对称加密的适用场景 HTTPS 与加密
- 为什么非对称加密比对称加密效率低 HTTPS 与加密
- 一台计算机最多可以使用的端口号有多少个 端口与网络排查
- 常用的端口及其对应功能 端口与网络排查
- 客户端卡顿可能是什么问题? 如何排查? 端口与网络排查

评论 0 友善交流,让每个问题都有回响
还没有评论,分享你的看法吧。