欢迎访问考ACCA网 · 计算机网络前端面试专题 当前域名:www.kaoacca.cn

计算机网络前端面试

系统梳理前端工程师面试高频考点:HTTP协议、浏览器渲染机制、性能优化、Web安全、跨域解决方案、WebSocket通信、PWA与Service Worker等核心知识体系,结合真实面试案例深度解析。

HTTP与HTTPS协议

HTTP(HyperText Transfer Protocol)是计算机网络前端面试中的核心考点。作为应用层协议,它基于TCP/IP协议栈运行,采用请求-响应模式,具有无状态、无连接、明文传输等特性。

在前端工程师面试中,常考内容包括:

【真实面试题】为什么GET请求不能用于提交密码?

虽然HTTP协议本身未限制GET请求体内容,但实践中应避免使用GET提交敏感数据,原因如下:

  • URL长度受限(浏览器与服务器限制约2KB~8KB),易导致截断
  • URL会暴露在浏览器地址栏、历史记录、服务器日志、代理日志中,泄露风险极高
  • GET请求易被缓存(如CDN、代理服务器),密码可能被缓存存储
  • Referer头可能将完整URL传递给第三方,扩大泄露面

正确做法:使用POST请求 + HTTPS + Body加密传输(如密码哈希或前端加密),配合CSRF Token防护。

HTTP/1.1核心机制
HTTP/2关键特性
HTTPS安全机制

HTTP/1.1核心机制

HTTP/1.1定义了连接复用(Connection: keep-alive)、管道化(pipelining)、分块传输编码(chunked)等机制,解决HTTP/1.0每次请求需建立新连接的问题。

请求示例:
GET /api/user/profile HTTP/1.1 Host: www.kaoacca.cn Cookie: sessionid=abc123 Accept: application/json Connection: keep-alive
响应示例:
HTTP/1.1 200 OK Content-Type: application/json Cache-Control: max-age=3600 Transfer-Encoding: chunked Connection: keep-alive 5a {"code":200,"data":{"name":"张三","age":28}} 0

注意:HTTP/1.1存在队头阻塞(Head-of-Line Blocking)问题——同一连接中,前一个请求未完成会阻塞后续请求。

HTTP/2关键特性

HTTP/2(RFC 7540)通过二进制分帧、多路复用、头部压缩(HPACK)、服务器推送(Server Push)、流优先级等特性,大幅提升性能。

  • 二进制分帧:将消息分解为帧(Frame),帧可交错发送,避免队头阻塞
  • 多路复用:一个TCP连接可并行传输多个流(Stream),每个流包含多个帧
  • 头部压缩:HPACK算法压缩头部,减少冗余字段传输
  • 流控制:基于窗口的流量控制机制,防止发送方压垮接收方
HTTP/2帧结构(简化):
+-----------------------------------------------+ | Length (24) | Type (8) | Flags (8) | R (1) | Stream Identifier (31) | +-----------------------------------------------+ | Frame Payload (0...N bytes) | +-----------------------------------------------+

注意:HTTP/2需依赖TLS(HTTPS)部署,主流浏览器仅支持加密传输。

HTTPS安全机制

HTTPS = HTTP + TLS/SSL,通过加密、认证、完整性保护保障通信安全。

核心流程:

  1. 客户端发送Client Hello(支持的TLS版本、随机数、Cipher Suites)
  2. 服务端响应Server Hello(确认TLS版本、随机数、证书)
  3. 客户端验证证书(CA签发、域名匹配、有效期、吊销状态)
  4. 客户端生成Pre-Master Secret,用服务端公钥加密后发送
  5. 双方基于随机数与Pre-Master Secret生成Session Key
  6. 后续通信使用对称加密(如AES-256-GCM)
证书链结构:
1. 根CA证书(自签名) 2. 中间CA证书(由根CA签发) 3. 站点证书(由中间CA签发)

常见问题:HTTPS是否绝对安全?
答:否。若私钥泄露、证书被伪造(如CA被入侵)、或客户端未校验证书,仍可能被中间人攻击。

HTTP缓存机制详解

浏览器缓存分为强缓存与协商缓存:

类型 控制字段 机制说明 是否发请求
强缓存 Cache-Control / Expires 直接从本地缓存读取,不向服务器发起请求 否
协商缓存 Last-Modified / If-Modified-Since
ETag / If-None-Match
向服务器发起请求,若资源未变更则返回304 是(带条件请求头)

最佳实践:

浏览器渲染机制

浏览器将HTML/CSS/JS转换为像素的过程,是前端性能优化与计算机网络前端面试高频考点。完整流程如下:

1. 解析HTML → 构建DOM树
解析器逐行读取HTML,识别标签、属性、文本节点,构建DOM(Document Object Model)树。遇到