以下为已总结"网络安全"及"护网"面试,均在:(https://www.haotaoyun.com/category/soc/)
- "网安 + 护网"终极 300 多问题面试笔记 - 全
- "网安 + 护网"终极 300 多问题面试笔记 - 1 共 3 - 内网 & 域相关
- "网安 + 护网"终极 300 多问题面试笔记 - 2 共 3 - 计算机网络相关
- "网安 + 护网"终极 300 多问题面试笔记 - 3 共 3 - 综合题型(最多)
- 网安护网面试 -1- 长亭护网面试
- 网安护网面试 -2- 国誉护网面试
- 网安护网面试 -3- 鸿鹄科技护网面试
计算机网络相关
OSI 七层模型
应用层:直接面向用户,为用户提供服务。主要协议:HTTP、FTP、SMTP、POP、Telnet
表示层:处理用户信息的表示问题。
会话层:组织协调两个会话进程之间的通信。
传输层:负责端到端通信。主要协议:TCP、UDP
网络层:通过路由选择,将分组选择适当的路径发往目的地。主要协议:IP、ARP、ICMP、IGMP
链路层:通过差错控制,使有差错的物理线路变为无差错的数据链路,提供可靠的通过物理介质传输数据的方法。分为 MAC 和 LLC 两层。
物理层:实现比特流传输。

HTTP 报文段?(南瑞信通)
请求报文:请求行(请求方法、URL、协议版本)、请求头、空行、实体体。
常见头:Host、User-Agent、Connection、Accept-Charset、Accept-Encoding、Accept-Language
响应报文:状态行(协议版本、状态码、状态码描述)、响应头、空行、实体体。
常见头:Date、Server、Connection、Cache-Control、Content-Type、Content-Length、Content-Charset、Content-Encoding、Content-Language
POST 和 PUT 区别
PUT 是向服务器端发送数据,修改数据的内容,但不会增加数据的种类(更新数据)
POST 则会改变数据种类等资源,会创建新的内容(创建数据)
POST 和 GET 区别?
- **应用场景:**GET 用于对服务器资源不会产生影响的场景(如请求一个网页的资源);POST 相反(如注册)
- **是否缓存:**浏览器一般会缓存 GET 请求,但很少缓存 POST 请求
- **传参方式:**GET 通过查询字符串传参,POST 通过请求体传参
- **安全性:**GET 可将请求参数放入 URL 中向服务器发送,会被保留在历史记录中,不安全
- **请求长度:**由于浏览器对 URL 长度限制,会影响 GET 发送数据的长度
- **参数类型:**GET 只允许 ASCII 字符,而 POST 连文件、图片都能传
HTTP 连接方式?
长连接、短连接。
HTTP/1.0 中默认使用短连接,浏览器和服务器每进行一次 HTTP 操作,就建立一次连接,任务结束就中断连接。
HTTP/1.1 起默认使用长连接,请求头会有 Connection: keep-alive
响应状态码(美团)
bash
1XX - 信息型,服务器收到请求,需要请求者继续操作。2XX - 成功型,请求成功收到,理解并处理。3XX - 重定向,需要进一步的操作以完成请求。4XX - 客户端错误,请求包含语法错误或无法完成请求。5XX - 服务器错误,服务器在处理请求的过程中发生了错误。
常见响应状态码
bash
200 OK - 客户端请求成功
300 重定向,转跳
301 永久重定向;资源(网页等)被永久转移到其它 URL
302 临时重定向;临时跳转
400 Bad Request - 客户端请求有语法错误,不能被服务器所理解
401 Unauthorized - 请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用
403 无权访问
404 请求资源不存在,可能是输入了错误的 URL
500 服务器内部发生了不可预期的错误
503 Server Unavailable - 服务器当前不能处理客户端的请求,一段时间后可能恢复正常。
常见端口
bash
HTTP (80):用于 Web 服务器上的常规 HTTP 流量。HTTPS (443):用于加密的 Web 服务器上的 HTTPS 流量。FTP (21):用于文件传输协议。SSH (22):用于安全远程 shell 访问。Telnet (23)
MySQL (3306):用于 MySQL 数据库的连接。redis (6379)
Oracle (1521)
MongoDB (27017)
SQLServer (1433)
memcached (11211)
HTTP 和 HTTPS 的区别?
HTTP 是明文传输。
HTTPS 是 HTTP+SSL 加密。工作原理:
- 先建立连接,然后服务端发送证书给客户端;确认信任该证书后服务端再要求客户端发送证书并验证**(双向身份验证)**
- 加密过程:
先 非对称加密:客户端发送第一随机数给服务端,服务端发回第二随机数 + 公钥,客户端用公钥加密得到预主密钥(第三随机数),发往服务端,两端通过第一随机数 + 第二随机数 + 预主密钥得到相同的会话秘钥
接下来为 对称加密(都用会话秘钥)
TCP 三次握手和四次挥手?(腾讯、美团、米哈游、招银网络)
TCP 建立连接时需要三次握手。
- 第一次握手:客户端发送 syn 包到服务器,进入 SYN_SENT 状态,等待服务器确认。
- 第二次握手:服务器收到 syn 包,向客户端发送 syn+ack 包,进入 SYN_RECV 状态。
- 第三次握手:客户端收到 syn+ack 包,向服务器发送 ack,此时两端进入 ESTABLISHED 状态。
TCP 断连需要四次挥手。

- 第一次挥手:客户端想要关闭连接时,会发送一个 FIN 给服务器,请求关闭连接。此时,客户端进入 FIN_WAIT_1 状态,等待服务器的确认。
- 第二次挥手:服务器收到 FIN 后,发送一个 ACK 回应,表示收到关闭连接的请求。服务器进入 CLOSE_WAIT 状态。
- 第三次挥手:由于客户端想要关闭连接,服务器可能还有部分数据没有传输完成,所以还需要一段时间传输,等完成后,服务器会再向客户端发送一个 FIN,表示数据全部传输完毕,可以关闭连接。
- 第四次挥手:客户端收到 FIN 后,发送一个 ACK 作为回应。服务器收到这个 ACK 后就完成关闭连接。而客户端会再等待 2 个 MSL,以确保服务器收到了 ACK 包,并且不会出现新旧连接的数据混淆问题。
三次握手和四次挥手都是工作在传输层。传输层(Transport Layer)是 OSI 模型的第四层,负责提供端到端的通信服务,包括数据传输的建立、维护和终止。
TCP 和 UDP 的区别?(腾讯)
- TCP 是面向连接的,UDP 是无连接的。
- TCP 提供可靠交付,UDP 不保证可靠交付,没有拥塞控制。
- TCP 面向字节流,UDP 面向报文。
- TCP 连接是全双工的可靠信道,只能是点对点;而 UDP 可以一对一、一对多、多对一、多对多。
- TCP 首部开销 20 字节,UDP 只有 8 字节。