一、HTTP和HTTPS有什么区别?
端口不同:
HTTP:80 HTTPS:443
安全程度:
HTTP:明文传输,抓包能直接看到账号、密码,容易被窃听、篡改。
HTTPS:HTTP + TLS/SSL 加密,传输数据加密,第三方无法窃听、篡改。
证书:
HTTP:不需要证书。
HTTPS:需要 CA 签发的数字证书,用来验证服务器身份,防止伪装网站。
性能:
HTTPS 建立连接需要额外握手流程,相比 HTTP,会有少量性能开销。
工作层次:
HTTP 工作在应用层
HTTPS = HTTP(应用层)+ TLS(会话 / 表示层)
HTTPS 就是加密版的 HTTP,解决明文传输的安全漏洞。
✅面试拓展常问:
Q:HTTPS 能防什么?不能防什么?
能防:中间人窃听、数据篡改、钓鱼伪装服务器
不能防:页面本身的恶意代码、用户误点钓鱼链接
二、TCP和UDP的区别是什么?应用场景呢?
| 对比维度 | TCP(传输控制协议) | UDP(用户数据报协议) |
|---|---|---|
| 连接特性 | 面向连接,通信前先三次握手建立连接 | 无连接,直接发数据包,不用建立连接 |
| 可靠性 | 可靠传输;确认应答、重传、防丢包、数据有序 | 不可靠传输;无确认机制,可能丢包、乱序 |
| 控制机制 | 拥塞控制、流量控制 | 没有任何控制机制 |
| 头部开销 | 头部 20 字节,较大 | 头部仅 8 字节,开销极小 |
| 适用思路 | 宁可慢,不能丢 | 宁可少量丢包,追求低延迟 |
应用场景
TCP 适用(不能丢失数据) 网页 HTTP/HTTPS、SSH 远程连接、FTP 文件下载、数据库连接、邮件 SMTP/POP3
UDP 适用(允许少量丢包,追求实时性) DNS 查询、直播、语音通话、网络游戏、视频会议、TFTP
TCP 面向连接、可靠有序,适合文件传输、网页访问;
UDP 无连接、开销小、实时性高,适合音视频、游戏、DNS。
✅面试拓展常问:
为什么直播不用 TCP?
如果网络卡顿,TCP 会不断重传丢失数据包,造成画面延迟越来越高;UDP 丢少量包直接丢弃,保证画面实时流畅。
三、设备上线后部分网站可访问、部分不可访问,如何排查?
关键结论:基础网络连通正常,排除整机完全断网、网卡故障。故障大概率和DNS、路由、MTU、防火墙策略、域名 / IP 封禁、代理相关。
1、优先排查【DNS 解析问题】(最高发!)
现象:打不开的网站域名解析失败、解析出错误 IP
nslookup 域名
dig 域名
如果解析失败 → DNS 服务器故障 / 配置错误,更换公共 DNS(114.114.114.114、8.8.8.8)
如果解析 IP 不对 → DNS 被劫持
测试小技巧:直接用目标网站 IP 访问
IP 能打开、域名打不开 = 确定是 DNS 问题
2、连通性测试(区分能不能到达目标服务器)
ping 目标IP
telnet 目标IP 目标端口(80/443)
ping 不通、端口不通:路由 / 防火墙拦截问题
ping 通、端口不通:对端服务器防火墙拦截,或者运营商封禁端口
3. 检查路由
能访问的网站路由可达,无法访问的网段缺少回程路由 / 静态路由错误
查看路由表:route -n / ip route
跨运营商场景经常出现路由不通。
4. 防火墙 / ACL 策略(非常常见)
本机防火墙、网关防火墙、运营商防火墙做了访问控制:
放行一部分 IP,拦截另一部分网段 / 端口(443、80 等)
5. MTU 值不匹配(容易遗忘的坑)
数据包过大无法分片,大包丢包,小数据包正常。
部分网站数据包小可以正常访问,大型网页请求大包直接失败。
解决:调整接口 MTU(常见 1500、1480、1492)
6. 代理、NAT 问题
设备开启 NAT,会话数限制、端口耗尽;
代理配置异常,只转发部分流量。
7. 运营商链路限制
部分网站服务器在境外,运营商封禁跨境流量;
或者运营商骨干网部分网段故障。
四、计算机网络7层是啥
- 应用层 →6. 表示层 →5. 会话层 →4. 传输层 →3. 网络层 →2. 数据链路层 →1. 物理层
五、查看80端口占用命令
lsof -i :80
lsof:list open files,列出系统打开的文件;在 Linux 中网络连接也被当作文件。-i:只筛选网络相关连接;:80:过滤目标端口为 80,这条命令可以直接查出占用 80 端口的进程 PID 和程序名称。
ss -tulpn | grep :80
ss:替代 netstat 的套接字查看工具;-tTCP、-uUDP、-l监听端口、-p显示进程、-n不解析域名;grep :80过滤 80 端口。
六、HTTP常见状态码以及含义;HTTP响应头字段
200 成功;3xx 跳转;4xx 用户问题;5xx 服务器问题
| 状态码 | 含义 | 通俗解释 |
|---|---|---|
| 200 | OK | 请求成功,正常返回数据 |
| 301 | Moved Permanently | 永久重定向,浏览器缓存新地址 |
| 302 | Found | 临时重定向,不缓存 |
| 304 | Not Modified | 资源未修改,使用本地缓存 |
| 403 | Forbidden | 服务器收到请求,但权限不足,禁止访问 |
| 404 | Not Found | 请求的资源不存在 |
| 405 | Method Not Allowed | 请求方式不允许(如 POST 接口只用 GET 访问) |
| 500 | Internal Server Error | 服务器代码内部异常 |
| 502 | Bad Gateway | 网关错误,Nginx 无法连接后端服务 |
| 503 | Service Unavailable | 服务暂时不可用(超载、停机维护) |
| 响应头字段 | 作用说明 |
|---|---|
| Content-Type | 告知客户端响应数据的类型,如application/json、text/html |
| Server | 标明服务器软件(Nginx/Apache) |
| Set-Cookie | 服务器下发 Cookie,浏览器后续请求自动携带 |
| Cache-Control | 设置缓存策略,控制浏览器缓存行为 |
| Location | 搭配 301/302 重定向,提供跳转 URL |
| Connection | keep-alive保持长连接;close关闭连接 |
| ETag | 资源唯一标识,用于协商缓存,触发 304 |
| Last-Modified | 资源最后修改时间,用于协商缓存 |
| Access-Control-Allow-Origin | 跨域配置,允许指定域名访问资源 |
| Date | 服务器生成响应的时间 |
七、如果http返回200是什么意思?403,404呢, 例如出现404和502是因为什么原因
200:请求成功,服务器正常返回数据。
403:服务器收到请求,但访问权限不足,禁止访问。
404:访问的资源不存在(地址写错、资源删除)。
502:网关错误,Nginx 无法连通后端应用程序,后端服务宕机或未启动。
八、介绍下TCP三次握手四次挥手,为什么挥手是4次,三次不行吗
一、三次握手(建立连接)
前提:TCP 是面向连接,通信前必须建好连接。
第一次握手 :客户端 → 服务端,发送 SYN 客户端请求:我想和你建立连接。
第二次握手 :服务端 → 客户端,发送 SYN+ACK 两层含义:①收到你的连接请求(ACK);②我也同意建立连接(SYN)。
第三次握手 :客户端 → 服务端,发送 ACK 客户端确认:收到你的同意,连接正式建立。
核心:SYN 和 ACK 可以合并发送,所以只需要 3 次。
二、四次挥手(断开连接)TCP 连接是全双工,两端各自独立关闭发送通道。
第一次挥手 :客户端 → 服务端,FIN 客户端:我不再发送数据了。
第二次挥手 :服务端 → 客户端,ACK 服务端:收到关闭请求,我知道你不发数据了;但我还有剩余数据可以继续发给你。
第三次挥手 :服务端 → 客户端,FIN 服务端:我的数据全部发送完毕,我也要关闭发送通道。
第四次挥手 :客户端 → 服务端,ACK 客户端:确认收到,连接彻底关闭。
三、为什么挥手不能合并成 3 次?
建立连接的时候,服务端收到 SYN,立刻就能同步发送 SYN+ACK,两个标志可以合并成一个报文,所以第二次握手是一包。
断开连接不一样: 服务端收到客户端的 FIN 后,不能马上发送 FIN ! 此时服务端可能还存在未传输完成的数据,需要先回复 ACK,等所有数据发送完毕,才能发送 FIN。 👉 ACK 和 FIN 无法合并到同一个数据包,因此必须分成两次报文,最少需要四次挥手。
九、如果说现在我一个主机要访问另一个主机,ip是怎么获取的
- 若使用域名访问:主机向 DNS 服务器发送解析请求,DNS 查询并返回域名对应的 IP 地址;
- 若直接 IP 访问,无需获取,直接使用填写的 IP;
- 获取 IP 后,通过 ARP 协议,由目标 IP 得到 MAC 地址,完成二层通信。
域名访问依靠 DNS 服务器解析得到 IP;直接 IP 访问则无需解析;得到 IP 后通过 ARP 获取 MAC 地址。
十、TCP和UDP有什么不同
| 对比项 | TCP | UDP |
|---|---|---|
| 连接特性 | 面向连接,通信前三次握手建立连接 | 无连接,直接发送数据报 |
| 传输可靠性 | 可靠传输,有确认、重传、流量控制、拥塞控制,不丢包、不乱序 | 不可靠传输,无确认机制,可能丢包、乱序 |
| 头部开销 | 头部 20 字节,开销大 | 头部仅 8 字节,开销小 |
| 有序性 | 数据按顺序到达 | 不保证顺序 |
| 适用思想 | 优先保证数据完整,牺牲部分实时性 | 优先低延迟,允许少量丢包 |
应用场景
✅ TCP:网页、文件传输、SSH 远程登录、数据库连接(不能丢数据)
✅ UDP:DNS、直播、语音通话、网络游戏、视频会议(追求实时性)
十一、ping百度丢包率高怎么办
-
先 ping 网关
- 网关也丢包:内网问题。检查网线、交换机、无线干扰、网卡故障、本机后台大量下载占带宽。
- 网关正常、ping 外网丢包:问题出在运营商外网链路。
-
区分是所有外网都丢包,还是只丢百度 测试 ping 8.8.8.8 等其他公网地址。 只有百度丢包:目标服务器链路问题;全部外网丢包:本地上行 / 运营商线路故障。
-
检查本机资源 是否后台下载、视频、进程跑满带宽,造成网络拥堵。
-
排查 MTU MTU 设置过大,大包分片失败引发隐性丢包,适当调小 MTU 测试。
-
无线网络额外排查 WiFi 距离远、信道干扰,优先换成网线测试,排除无线干扰。
-
测试 DNS 更换公共 DNS,排除 DNS 层面引发的访问异常(注意:ping 域名丢包和 ping IP 丢包分开看)
-
服务器场景补充 查看防火墙策略、服务器 CPU / 带宽负载是否跑满。
✅考场极简简答版本
- ping 网关区分故障在内网还是外网;
- 检测本机带宽是否被占满,无线环境更换网线排除干扰;
- 测试多个外部 IP,判断是否单一目标服务器故障;
- 调整网卡 MTU 值,解决数据包分片丢包;
- 外网持续丢包,联系运营商排查骨干链路
十二、主机通过域名怎么访问网页的过程
- DNS 域名解析,将域名解析为服务器 IP 地址;
- 客户端与服务器通过三次握手建立 TCP 连接;
- HTTPS 站点完成 TLS 握手建立加密通道;
- 浏览器发送 HTTP 请求;
- Web 服务器处理请求,返回网页资源;
- 浏览器接收数据,渲染展示页面;
- 四次挥手释放 TCP 连接
十三、网站无法访问有什么原因
- 检查 DNS 解析 使用
ping 域名、nslookup 测试。无法解析 → 定位 DNS / 域名问题。 - 连通性测试
ping 服务器IP,IP 不通:服务器宕机或者链路拦截;IP 正常继续下一步。 - 端口连通测试 使用 telnet/curl 测试 80 (HTTP)、443 (HTTPS) 端口。端口不通:防火墙 / 安全组拦截、Web 服务未启动。
- 访问观察 HTTP 状态码 4xx:客户端 / 资源路径问题;5xx:服务器后端程序异常。
- 服务器内部排查 查看 Web 服务运行状态、服务器负载、程序日志、SSL 证书有效性。