一般招聘里写 “熟悉 TCP/IP、HTTP 协议及主流 WebServer”,不是要求你像网络工程师一样精通,而是希望你能理解 Web 请求从浏览器到服务器的基本链路,并能排查常见问题。

可以按这 3 块准备:

1. TCP/IP 要掌握什么

重点不是背七层模型,而是理解网络通信过程。

你需要知道:

TCP/IP 四层模型 / OSI 七层模型大概对应关系

比如:

  • 应用层:HTTP、HTTPS、DNS
  • 传输层:TCP、UDP
  • 网络层:IP
  • 数据链路层:以太网、Wi-Fi

面试常问:

TCP 和 UDP 的区别

可以这样答:

TCP 是面向连接、可靠传输的协议,会通过三次握手建立连接,通过确认、重传、流量控制等机制保证数据可靠到达;UDP 是无连接的,不保证可靠性,但速度快、开销小,适合直播、语音、游戏等实时场景。

TCP 三次握手、四次挥手

你至少要能说出:

三次握手:

  1. 客户端发送 SYN
  2. 服务端返回 SYN + ACK
  3. 客户端返回 ACK,连接建立

四次挥手:

  1. 一方发送 FIN
  2. 对方 ACK
  3. 对方也发送 FIN
  4. 原来一方 ACK,连接关闭

常见端口

要记几个:

  • HTTP:80
  • HTTPS:443
  • MySQL:3306
  • Redis:6379
  • SSH:22
  • Nginx 默认监听:80 / 443

2. HTTP 协议要掌握什么

这是最重要的,因为 Web 开发、接口联调、售前技术支持都会用到。

你需要掌握:

HTTP 请求和响应结构

一个 HTTP 请求大概包括:

  • 请求方法:GET、POST、PUT、DELETE
  • URL
  • 请求头 Headers
  • 请求体 Body

一个 HTTP 响应包括:

  • 状态码
  • 响应头
  • 响应体

常见请求方法

重点掌握:

  • GET:查询数据
  • POST:提交数据 / 新增数据
  • PUT:更新数据
  • DELETE:删除数据

面试可以说:

我理解 GET 通常用于获取资源,参数一般放在 URL 中;POST 通常用于提交数据,请求体中可以携带 JSON、表单等内容。

常见状态码

这个很容易被问:

  • 200:请求成功
  • 301 / 302:重定向
  • 400:请求参数错误
  • 401:未登录 / 未认证
  • 403:无权限
  • 404:资源不存在
  • 405:请求方法不支持
  • 500:服务器内部错误
  • 502:网关错误,常见于 Nginx 转发后端失败
  • 504:网关超时,后端响应太慢

尤其要理解 502 和 504,因为部署项目时很常见。

HTTP 和 HTTPS 区别

可以这样答:

HTTP 是明文传输,HTTPS 是在 HTTP 基础上加入 SSL/TLS 加密,可以保证数据传输的安全性。HTTPS 默认端口是 443,HTTP 默认端口是 80。

Cookie、Session、Token

要知道基本区别:

  • Cookie:存在浏览器端
  • Session:存在服务器端,浏览器通过 Cookie 保存 session_id
  • Token:常用于前后端分离,比如 JWT,客户端每次请求携带 token

请求头常见字段

了解几个就够:

  • Content-Type:请求体格式,比如 application/json
  • Authorization:认证信息,比如 Bearer Token
  • User-Agent:客户端信息
  • Referer:来源页面
  • Host:访问的域名
  • Cookie:浏览器携带的 Cookie

3. 主流 WebServer 要掌握什么

这里一般指 Nginx、Apache、Tomcat 这些。

现在最常见的是 Nginx + 后端服务

你重点准备 Nginx 就够用了。

Nginx 要掌握什么

1. Nginx 是干什么的

你可以这样理解:

Nginx 是常见的 WebServer,也可以作为反向代理服务器、负载均衡服务器和静态资源服务器。实际项目中,经常用 Nginx 接收用户请求,再转发给后端 Java、Node、Python 等服务。

2. 正向代理和反向代理

这个很常问。

正向代理:代理客户端

比如你访问外网,通过代理服务器出去,目标网站不知道你真实是谁。

反向代理:代理服务器端

比如用户访问 www.xxx.com,实际请求先到 Nginx,再由 Nginx 转发到后端服务。用户不知道真正的后端服务器是哪台。

一句话记忆:

正向代理代理用户,反向代理代理服务器。

3. 静态资源服务

Nginx 可以直接托管:

  • HTML
  • CSS
  • JS
  • 图片
  • 视频
  • 前端打包后的 dist 文件

比如 Vue / React 项目上线,经常就是打包后放到 Nginx。

4. 反向代理配置

要能看懂这种配置:

server {
    listen 80;
    server_name example.com;
 
    location /api/ {
        proxy_pass http://127.0.0.1:8080/;
    }
 
    location / {
        root /usr/share/nginx/html;
        index index.html;
    }
}

意思是:

  • 访问 /api/ 的请求转发到后端 8080 服务
  • 访问 / 的请求返回前端静态页面

5. 负载均衡

知道 Nginx 可以把请求分发到多个后端服务:

upstream backend {
    server 192.168.1.10:8080;
    server 192.168.1.11:8080;
}
 
server {
    listen 80;
 
    location / {
        proxy_pass http://backend;
    }
}

意思是:请求会被转发到两台后端服务器,实现负载均衡。

6. 常用命令

至少会这些:

nginx -t

检查配置是否正确。

systemctl start nginx
systemctl stop nginx
systemctl restart nginx
systemctl reload nginx

启动、停止、重启、重新加载配置。

tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log

查看访问日志和错误日志。

你应该掌握到什么程度?

对于普通实习 / 初级岗位,建议掌握到这个水平:

模块要求
TCP/IP知道网络分层、TCP/UDP 区别、三次握手、常见端口
HTTP熟悉请求/响应、GET/POST、状态码、Headers、HTTPS
WebServer会解释 Nginx 作用,能看懂简单配置
部署排错能根据 404、502、504、端口占用、日志定位问题

简历上可以这样写

如果你只是了解基础,可以写:

熟悉 TCP/IP、HTTP/HTTPS 等网络基础协议,了解 Web 请求处理流程,掌握常见 HTTP 状态码及接口联调方法,了解 Nginx 反向代理、静态资源部署与基础配置。

如果你有部署经验,可以写得更强一点:

熟悉 TCP/IP、HTTP/HTTPS 协议及 Web 请求链路,掌握 Nginx 反向代理、静态资源部署、负载均衡基础配置,能够结合日志排查 404、502、504、端口占用等常见部署问题。

如果是售前 / 解决方案岗位,更推荐写成:

了解 TCP/IP、HTTP/HTTPS 等网络基础协议,熟悉 Web 服务访问链路、接口联调流程及 Nginx 等 WebServer 的基础部署方式,能够配合完成系统部署、联调与常见问题排查。