后端面试课程
面向后端面试的结构化课程,涵盖 API、HTTP、数据库、缓存、队列、安全、扩展与系统设计,并配有练习题。
课程进度
0 / 5
返回课程
你将学到
- 理解后端面试形式。
- 设计 REST API 并解释 HTTP 行为。
- 选择数据库并理解事务。
- 使用缓存、队列和安全最佳实践。
- 扩展服务并解释系统设计取舍。
开始前准备
- 具备基础编程和 HTTP 知识会有帮助。
- 建议熟悉数据库和 API。
- 构建小型服务有助于练习。
课程 1 了解后端面试
后端面试考察 API、HTTP、数据库、缓存、队列、安全、扩展与系统设计。候选人需要解释概念、设计小型系统并讨论取舍。建议先学习 HTTP 与 REST API,再学习数据库与事务,然后学习缓存与消息队列,接着是安全,最后是扩展与架构。你需要能解释状态码、幂等性、索引、ACID、缓存失效、认证与负载均衡。面试官看重结构化思考:明确需求、说出组件、讨论取舍并找出瓶颈。本课程把主题分成五节,并配有 60 道原创练习题供面试前复习。请结合免费练习和真实项目场景进行复习。
示例
示例:设计支付 API 时,解释幂等性和状态码。课程 2 API 与 HTTP
REST API 使用资源、HTTP 方法和无状态通信。GET 获取数据,POST 创建,PUT 更新,DELETE 删除。状态码传达结果:200 OK、201 已创建、400 错误请求、401 未授权、404 未找到、429 请求过多、500 服务器错误。幂等操作可以安全重复,因此支付和重试 API 常使用幂等键。API 版本化让你在不破坏客户端的情况下改变行为,通常通过 URL 路径或请求头实现。限流通过限制每个客户端的请求频率来保护服务,Webhook 异步向服务器推送事件。JSON 是最常见的数据格式。面试官常要求设计小型 REST API,因此要练习命名资源、选择方法和定义错误响应。
示例
示例:POST /payments 创建支付并返回 201 和资源位置。课程 3 数据库与数据存储
数据库问题涵盖关系型与 NoSQL 模型、事务、索引和扩展。关系型数据库使用表、主键和外键。规范化减少冗余,反规范化可提高读性能。事务遵循 ACID:原子性、一致性、隔离性和持久性。索引加速读取但可能降低写入。NoSQL 数据库包括 MongoDB 等文档存储、Redis 等键值存储和图数据库。分片把数据拆分到多台服务器,复制把数据复制到副本以提高可用性。连接池复用连接,ORM 把对象映射到行。迁移管理模式变更,查询计划显示查询如何执行。面试官希望你能为工作负载选择正确的存储并解释取舍。
示例
示例:在 user_id 上添加索引,加速用户订单表查询。课程 4 缓存、队列与安全
缓存把常用数据存储在靠近调用方的地方以减少延迟。常见模式包括旁路缓存、直读缓存和直写缓存。缓存失效防止提供过期数据。CDN 在边缘节点缓存内容。消息队列支持服务之间的异步通信,发布/订阅解耦生产者和消费者。死信队列捕获反复失败的消息。安全主题包括认证、授权、哈希、JWT、TLS 和 CSRF。认证验证身份,授权检查权限。密码应加盐哈希,不能明文存储。TLS 加密流量,CSRF 令牌防止伪造请求。面试官希望看到关于何时缓存、如何重试以及如何保护 API 的实用建议。
示例
示例:对用户资料使用旁路缓存,资料变化时使缓存键失效。课程 5 扩展、系统设计与策略
系统设计题要求你扩展服务并解释架构。水平扩展增加服务器,垂直扩展增加单台服务器资源。负载均衡器分发流量,反向代理位于后端服务器前面,API 网关集中路由和认证。无状态服务更容易扩展,因为客户端不依赖服务器内存。微服务可独立部署,单体把所有功能打包在一起。可用性衡量正常运行时间,延迟衡量响应时间,吞吐量衡量容量。熔断器停止对故障服务的调用,优雅降级保持部分功能。最终一致性意味着副本会随时间收敛。可观测性使用日志、指标和追踪。面试官希望看到清晰结构:需求、组件、数据流、瓶颈和取舍。