← 返回博客列表

HTTP 协议从入门到面试:Java 后端工程师必备

📅 2026-06-01 ✍️ 刘彬棋 (liu-binqi) ⏱️ 阅读约 15 分钟 👁️ 128 次阅读

📋 目录

一、HTTP 是什么

HTTP(HyperText Transfer Protocol,超文本传输协议)是客户端与服务器之间通信的应用层协议,基于请求-响应模型,默认端口 80(HTTPS 为 443)。

💡 核心特点:无状态、请求-响应、半双工(HTTP/1.1 支持持久连接)

二、HTTP 报文结构

HTTP 报文分为请求报文和响应报文,结构类似:

请求行/状态行
请求头/响应头(键值对)
空行
请求体/响应体(可选)

三、HTTP 方法

方法 语义 幂等性 安全性
GET 获取资源 ✅ 是 ✅ 是
POST 创建资源 ❌ 否 ❌ 否
PUT 全量更新 ✅ 是 ❌ 否
DELETE 删除资源 ✅ 是 ❌ 否

四、状态码

状态码是面试重灾区,必须倒背如流:

类别必背码含义场景
2xx200OK正常返回
2xx201CreatedPOST 创建成功
3xx301永久重定向SEO 用
3xx302临时重定向登录后跳转
4xx400Bad Request参数错误
4xx401Unauthorized未认证
4xx403Forbidden无权限
4xx404Not Found资源不存在
5xx500Internal Error服务端异常

五、状态保持机制

HTTP 无状态,需要额外机制维持状态:

Cookie vs Session vs JWT

机制存储位置安全性适用场景
Cookie客户端浏览器记住登录状态
Session服务端内存/Redis传统 MVC 登录
JWT客户端(Header 携带)前后端分离、微服务
面试陷阱:Session 和 Cookie 不是对立关系,Session 通常依赖 Cookie 传递 sessionId。

六、面试高频考点

⚠️ 以下 10 道题覆盖 90% 的 Java 初级 HTTP 面试:
  1. GET 和 POST 的区别?(幂等性、安全性、Body 传参)
  2. 301 和 302 的区别?(永久 vs 临时重定向)
  3. 401 和 403 的区别?(未认证 vs 无权限)
  4. forward 和 redirect 的区别?
  5. Cookie 和 Session 的区别?
  6. 什么是 RESTful API?
  7. HTTP 和 HTTPS 的区别?
  8. HTTPS 加密流程?
  9. 什么是 HTTP 无状态?如何解决?
  10. 输入 URL 到页面显示的过程?
📌 自检标准:能清晰解释 GET/POST 区别、准确说出 10 个以上状态码、能在 Spring Boot 中写出规范的 RESTful 接口。
← 返回列表 下一篇:Spring Boot 快速入门 →