1. OSI 七层和 TCP/IP 四层模型?各层协议?

OSI 七层 TCP/IP 四层 代表协议
应用层应用层HTTP / DNS / FTP / SMTP / SSH
表示层 / 会话层(TLS 通常算在会话层与表示层之间)
传输层传输层TCP / UDP
网络层网际层IP / ICMP / 路由协议
数据链路层网络接口层以太网 / MAC / VLAN / ARP
物理层网线 / 光纤 / 信号

分层的好处:每层独立演进、透明封装(上层不管下层细节)、故障定位分层。

🎯 面试要点

  • TCP vs UDP:TCP 可靠有序面向连接(HTTP/数据库);UDP 不可靠快(DNS 查询、视频、游戏、QUIC)
  • 端口:HTTP 80、HTTPS 443、MySQL 3306、Redis 6379、DNS 53、SSH 22
  • 常见工具:ping(ICMP)、telnet/nc(测端口)、traceroute(路由追踪)、dig/nslookup(DNS)

2. DNS 解析过程?(递归 vs 迭代)

  1. 浏览器查本地 DNS 缓存 → 没有则查 hosts → 没有则发起系统 DNS 请求
  2. 请求到达本地 DNS 服务器(运营商/公司):本地也没有 → 递归查询
  3. 递归查询:本地 DNS 代查根服务器(.)→ 根返回 顶级域服务器(.com)地址
  4. 查 .com 服务器 → 返回 权威服务器(example.com)地址
  5. 查权威服务器 → 返回 www.example.com 的 A 记录(IP)
  6. 本地 DNS 缓存结果返回给浏览器(TTL 内复用)

根服务器全球 13 组(任播),顶级域由 ICANN 管理;企业内网域名走私有 DNS。CDN 加速的核心也是 DNS:权威服务器返回离用户最近的节点 IP。

🎯 面试要点

  • 递归 vs 迭代:递归"替你查完给你答案";迭代"告诉你下一步找谁"——本地 DNS 对客户端递归,对上游迭代
  • 记录类型:A(IPv4)、AAAA(IPv6)、CNAME(别名)、MX(邮件)、TXT、NS
  • DNS 污染/劫持:公共 DNS(8.8.8.8/223.5.5.5)+ DoH/DoT

3. 从输入 URL 到页面展示,发生了什么?(必背大题)

  1. URL 解析:浏览器解析协议/域名/端口/路径
  2. DNS 解析:域名 → IP(上述流程)
  3. TCP 连接:三次握手(HTTPS 则 + TLS 握手)
  4. 发送 HTTP 请求:请求行(方法/路径/协议)+ 请求头(Host/Cookie/User-Agent)+ 请求体
  5. 服务器处理:反向代理(Nginx)→ 应用(Spring MVC)→ 数据库 → 生成响应
  6. 返回响应:状态行 + 响应头(Content-Type/Set-Cookie)+ 响应体(HTML)
  7. 浏览器渲染:解析 HTML → 构建 DOM → 解析 CSS → 执行 JS → 布局绘制
  8. 四次挥手(HTTP/1.1 关闭时)或连接复用

🎯 面试要点

  • 这道题是"一条链路问到底":DNS → TCP → HTTP → 后端 → 渲染,任何一段都可能被追问
  • 加分点:提到 CDN(静态资源就近分发)、HTTP 缓存(强缓存/协商缓存)、Nginx 反向代理

🎤 常见面试追问

  1. TCP 和 UDP 怎么选?——要可靠有序(网页/数据库/文件)→ TCP;要快能容忍丢(视频/游戏/语音)→ UDP。DNS 查询用 UDP(快),QUIC 用 UDP 做可靠传输。
  2. DNS 解析过程(必背)?——查本地缓存/hosts → 本地 DNS 服务器递归查询 → 根服务器(.)→ 顶级域服务器(.com)→ 权威服务器 → 返回 IP。CDN 加速的核心就是权威服务器返回就近节点。
  3. "输入 URL 到页面展示"完整流程?——URL 解析 → DNS 解析 → TCP 三次握手(HTTPS 加 TLS)→ 发 HTTP 请求 → 服务器处理(网关→应用→数据库)→ 返回响应 → 浏览器渲染 → 关闭/复用连接。
  4. DNS 污染/劫持怎么防?——公共 DNS(223.5.5.5/8.8.8.8)+ DoH(HTTPS 加密 DNS 查询)——运营商篡改 DNS 返回假 IP 是常见攻击。
  5. 分层模型的意义?——每层独立演进、透明封装(上层不管下层)、故障定位分层。各层协议:应用层 HTTP/DNS,传输层 TCP/UDP,网络层 IP。

📖 名词解释(本页术语)

术语 大白话解释
IP 地址计算机的网络门牌号(IPv4 如 192.168.1.1;IPv6 解决地址枯竭)。
端口同一台机器上区分不同程序的"门牌号":80 HTTP、443 HTTPS、3306 MySQL、6379 Redis。
域名 / DNS域名是 IP 的"好记名字";DNS 是"翻译官"(域名 → IP 的分布式查询系统)。
OSI 七层 / TCP/IP 四层网络分层模型:应用层(HTTP/DNS)→ 传输层(TCP/UDP)→ 网络层(IP)→ 链路层。
UDP无连接、不保证可靠的数据报协议:快,但可能丢/乱。视频、游戏、DNS 用它。
递归查询 / 迭代查询递归 = 替你查完给答案(本地 DNS 对客户端);迭代 = 告诉你下一步问谁(本地 DNS 对根/顶级/权威服务器)。
CDN内容分发网络:静态资源缓存到离用户最近的节点,DNS 解析时返回就近 IP——网站加速标配。
localhost / 127.0.0.1本机回环地址:开发时访问自己电脑上的服务。
⚠️ 本页面由 AI 生成,内容仅供参考,请以官方文档和实际源码为准。