网络协议相关问题

1. HTTP 与 HTTPS 的区别

  • HTTP:明文传输,端口80,无加密,易被窃听或篡改。
  • HTTPS :SSL/TLS加密传输,端口443,通过数字证书验证身份,防止中间人攻击。
    • 混合加密:非对称加密交换密钥,对称加密传输数据。
    • 证书机制:由CA颁发,确保服务器身份可信。

2. 常见 HTTP 状态码

  • 2xx 成功:200(OK)、201(Created)。
  • 3xx 重定向:301(永久重定向)、302(临时重定向)、304(缓存有效)。
  • 4xx 客户端错误:400(请求错误)、401(未认证)、403(禁止访问)、404(资源不存在)。
  • 5xx 服务器错误:500(内部错误)、502(网关错误)、503(服务不可用)。

3. GET 与 POST 的区别

  • 语义:GET获取资源,POST提交数据。
  • 参数位置:GET参数在URL中,POST在请求体。
  • 安全性:GET参数暴露,POST相对安全(但未加密仍可截获)。
  • 缓存:GET可被缓存,POST一般不可。
  • 幂等性:GET幂等(多次调用结果相同),POST非幂等。

4. TCP 与 UDP 的区别

  • TCP:面向连接、可靠传输(确认机制/重传)、有序、速度慢(如HTTP、文件传输)。
  • UDP:无连接、不可靠、无序、速度快(如视频流、DNS)。

5. TCP 三次握手

  1. SYN:客户端发送SYN包(seq=x)。
  2. SYN-ACK:服务端响应SYN(seq=y)和ACK(x+1)。
  3. ACK:客户端发送ACK(y+1),连接建立。
  • 目的:确保双方收发能力正常,防止历史连接干扰。

6. 四次挥手

  1. FIN:主动方发送FIN包(终止连接)。
  2. ACK:被动方确认。
  3. FIN:被动方发送FIN包。
  4. ACK:主动方确认,等待2MSL后关闭。
  • 原因:确保被动方数据发送完毕,防止旧数据残留。

7. 强缓存 vs 协商缓存

  • 强缓存 :直接使用本地缓存(状态码200)。
    • 头部:Cache-Control(max-age)、Expires
  • 协商缓存 :询问服务器资源是否变化(状态码304)。
    • 头部:Last-Modified/If-Modified-SinceETag/If-None-Match(优先级更高)。

8. WebSocket 特点

  • 全双工通信:服务端可主动推送数据。
  • 协议升级 :通过HTTP握手(Upgrade: websocket)。
  • 适用场景:实时聊天、股票行情等。

9. 跨域解决方案

  • CORS :服务端设置Access-Control-Allow-Origin,预检请求(OPTIONS)处理复杂请求。
  • JSONP :利用<script>标签跨域,仅支持GET。
  • 代理服务器:前端开发服务器代理请求(如webpack-dev-server)。
  • nginx反向代理:服务器端转发请求。

10. HTTP/2 新特性

  • 多路复用:一个TCP连接并行多个请求,解决队头阻塞。
  • 头部压缩:HPACK算法减少头部大小。
  • 服务器推送:主动推送资源(如CSS/JS)。

11. XSS 与 CSRF 防御

  • XSS(跨站脚本攻击)
    • 防御 :输入转义(如<转义为<)、Content Security Policy(CSP)。
  • CSRF(跨站请求伪造)
    • 防御:Token验证、SameSite Cookie属性、检查Referer头。

12. DNS 解析过程

  1. 浏览器缓存 → 系统缓存(hosts) → 路由器缓存。
  2. 本地DNS服务器 → 根DNS → 顶级域(.com)→ 权威DNS(example.com)。
  3. 递归查询获取IP地址。

13. Cookie/Session/Token

  • Cookie:客户端存储,自动携带在请求头,容量小(4KB)。
  • Session:服务端存储用户状态,依赖Cookie传递Session ID。
  • Token(如JWT):无状态,包含用户信息的签名令牌,适合分布式系统。

14. HTTPS 握手过程

  1. 客户端发送支持的加密算法列表。
  2. 服务端返回选择的算法和数字证书。
  3. 客户端验证证书,生成对称密钥并用公钥加密发送。
  4. 服务端私钥解密获得密钥,后续通信使用对称加密。

15. 前端性能优化与网络协议

  • 减少请求数:合并文件、雪碧图。
  • 压缩资源:Gzip/Brotli压缩,图片格式优化(WebP)。
  • CDN加速:就近获取静态资源。
  • HTTP缓存策略:合理设置Cache-Control。
相关推荐
大面积秃头28 分钟前
Http基础协议和解析
网络·网络协议·http
我也要当昏君2 小时前
6.3 文件传输协议 (答案见原书 P277)
网络
Greedy Alg3 小时前
Socket编程学习记录
网络·websocket·学习
刘逸潇20053 小时前
FastAPI(二)——请求与响应
网络·python·fastapi
软件技术员3 小时前
使用ACME自动签发SSL 证书
服务器·网络协议·ssl
我也要当昏君4 小时前
6.4 电子邮件 (答案见原书 P284)
网络协议
Mongnewer4 小时前
通过虚拟串口和网络UDP进行数据收发的Delphi7, Lazarus, VB6和VisualFreeBasic实践
网络
我也要当昏君4 小时前
6.5 万维网(答案见原书P294)
网络
嶔某5 小时前
网络:传输层协议UDP和TCP
网络·tcp/ip·udp
文火冰糖的硅基工坊5 小时前
[嵌入式系统-154]:各种工业现场总线比较
网络·自动驾驶·硬件架构