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

每日一题--计算机网络

一、基础概念类问题

1. TCP 和 UDP 的区别是什么?
  • 回答示例

    • TCP:面向连接、可靠传输(通过三次握手建立连接,丢包重传)、保证数据顺序(如文件传输、网页访问)。

    • UDP:无连接、不可靠传输(不保证数据到达或顺序)、低延迟(如视频通话、实时游戏)。

  • 加分点:补充实际应用场景(如 HTTP/3 基于 UDP 优化性能)。

2. HTTP 和 HTTPS 的区别?
  • 核心区别

    • HTTP:明文传输,端口 80,无安全性。

    • HTTPS:通过 SSL/TLS 加密传输,端口 443,需证书验证。

  • 加分点:提到 HTTPS 的加密流程(非对称加密交换密钥 + 对称加密传输数据)。

3. 什么是三次握手和四次挥手?
  • 三次握手(建立 TCP 连接):

    1. 客户端发送 SYN(同步请求)。

    2. 服务端返回 SYN-ACK(确认 + 同步)。

    3. 客户端发送 ACK(最终确认)。

  • 四次挥手(断开连接):

    1. 客户端发送 FIN(终止请求)。

    2. 服务端返回 ACK(确认收到)。

    3. 服务端发送 FIN(自身终止请求)。

    4. 客户端返回 ACK(最终确认)。

  • 加分点:解释为什么需要四次挥手(双方需独立确认关闭)。


二、应用场景类问题

4. 输入 URL 到页面显示的全过程?
  • 回答流程

    1. DNS 解析域名成 IP 地址。

    2. 建立 TCP 连接(三次握手)。

    3. 发送 HTTP/HTTPS 请求。

    4. 服务器处理请求并返回响应。

    5. 浏览器解析 HTML/CSS/JS 并渲染页面。

    6. 关闭 TCP 连接(四次挥手)。

  • 加分点:提到 CDN 加速、缓存机制(如强缓存/协商缓存)。

5. Cookie 和 Session 的区别?
  • Cookie:客户端存储(浏览器),有大小限制(约 4KB),可能被篡改。

  • Session:服务端存储(服务器内存/数据库),依赖 Session ID(通常通过 Cookie 传递)。

  • 加分点:说明如何解决分布式 Session 共享问题(如 Redis 集中存储)。


三、问题排查类问题

6. 如何判断网络请求失败的原因?
  • 排查步骤

    1. 检查 HTTP 状态码(如 404 资源不存在、500 服务器错误)。

    2. 查看浏览器控制台或抓包工具(如 Wireshark、Chrome DevTools)。

    3. 验证 DNS 解析是否正确(nslookup 或 dig)。

    4. 测试网络连通性(pingtelnet 检查端口)。

  • 加分点:举例实际调试经验(如跨域问题导致请求失败)。

7. 什么是跨域问题(CORS)?如何解决?
  • 原因:浏览器同源策略禁止跨域请求(协议/域名/端口不同)。

  • 解决方案

    • 服务端设置响应头:Access-Control-Allow-Origin: *

    • 代理服务器转发请求(开发环境常用)。

    • JSONP(仅限 GET 请求,已逐渐淘汰)。

  • 加分点:提到预检请求(Preflight Request)的作用。


四、开放性问题

8. 如何设计一个高并发的网络服务?
  • 关键点

    • 负载均衡(如 Nginx 分发请求)。

    • 无状态服务设计(方便横向扩展)。

    • 异步处理(消息队列削峰填谷)。

    • 缓存优化(Redis 减少数据库压力)。

  • 加分点:结合具体技术栈(如微服务 + Kubernetes)。

9. 你对 HTTP/2 和 HTTP/3 有哪些了解?
  • HTTP/2:多路复用、头部压缩、服务器推送(基于 TCP)。

  • HTTP/3:基于 QUIC 协议(UDP 实现可靠传输),解决队头阻塞,更快连接建立。

  • 加分点:对比传统 HTTP/1.1 的性能瓶颈。


五、HR 可能关注的软技能问题

10. 你在团队项目中如何解决网络相关的技术难点?
  • 回答框架

    1. 描述具体问题(如接口响应慢)。

    2. 分析原因(如数据库查询未优化、网络带宽不足)。

    3. 采取的解决方案(如引入缓存、压缩传输数据)。

    4. 最终效果(如延迟降低 50%)。

  • 示例:在开发在线协作工具时,通过 WebSocket 替代轮询优化实时通信。


http://www.kler.cn/a/591237.html

相关文章:

  • deepseek连续对话与API调用机制
  • 【概念】Node.js,Express.js MongoDB Mongoose Express-Validator Async Handler
  • Tomcat虚拟主机配置详解:Centos环境下多域名部署(详细教程!)
  • Hunyuan3D,腾讯推出的3D资产系统
  • 华为IPD六个阶段细分:研发效率提升的6个关键步骤
  • 【Kubernetes】Kube Proxy 如何帮助 Pod 之间通信?Kube-Proxy 实践案例
  • 蓝桥杯备赛(基础语法4)
  • 荣耀手机怎么录制屏幕?屏幕录制后为视频加水印更有“安全感”
  • 科普类——双目立体视觉与 RGBD 相机的简单对比
  • python爬虫Scrapy(5)之CrawlSpider
  • MySQL启动报错/var/lib/mysql‘ for UNIX socket file don‘t exists.
  • 较为完善的搜索函数
  • React学习笔记18
  • 鸿蒙NEXT开发问题大全(不断更新中.....)
  • B站关键词排名优化:打造引爆流量的引擎
  • 如何理解std::promise和std::future
  • spring-ai-alibaba-examples项目编译运行
  • 总结Solidity 的数据类型
  • 【Lava SE】认识异常
  • 注解与设计模式:解锁Java编程的魔法与艺术!