当前位置: 首页 > news >正文

网络协议相关问题

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。

相关文章:

  • 【中间件开发】kafka使用场景与设计原理
  • 第1章大型互联网公司的基础架构——1.12 多机房:主备机房
  • 岛屿问题(dfs)
  • 首届电视剧制作产业大会龚宇受瞩目,河南郑州(短剧)黄帝影视城盛情相邀
  • 微信小程序模仿快播标签云滚动特效
  • 1.16作业
  • ASUS/华硕幻15 GU502G 原厂Win10系统 工厂文件 带ASUS Recovery恢复
  • 重构建筑未来:中建海龙MiC建筑技术开启智慧建造新篇章
  • 网络运维学习笔记 013网工初级(HCIA-Datacom与CCNA-EI)DHCP动态主机配置协议(此处只讲华为)
  • 第4章 信息系统架构(五)
  • MyBatis配置
  • 面试基础--微服务架构:如何拆分微服务、数据一致性、服务调用
  • 网络安全-js安全知识点与XSS常用payloads
  • 树与并查集,区间dp,树形dp
  • 2025.2.23机器学习笔记:PINN文献阅读
  • 【react18】如何使用useReducer和useContext来实现一个todoList功能
  • 通过Selenium实现UI自动化校验输入的数据是否完整有效方式
  • Unity Mixamo模型更好的适配角色模型
  • 【Gin-Web】Bluebell社区项目梳理2:JWT-Token认证
  • 【深度学习】自然语言处理(NLP)-语音识别-WaveNet
  • 门户网站属于数字媒体吗/武汉seo引擎优化
  • ckplayer 视频网站/百度登录页
  • 网站建设和网站优化哪个重要/西安外包网络推广
  • 免费建站建站/天津百度推广开户
  • 网站开发的目的/风云榜
  • 组织建设方面存在的问题/漯河seo推广