【计算机基础速成】第八课:HTTP、HTTPS、状态码与常见应用层问题

4 小时前

【计算机基础速成】第八课:HTTP、HTTPS、状态码与常见应用层问题

1. 这节课的目标

HTTP 和 HTTPS 是后端面试中的超级高频内容。

面试官经常会问:

  • 什么是 HTTP?
  • HTTP 和 HTTPS 有什么区别?
  • HTTPS 为什么更安全?
  • 常见 HTTP 状态码有哪些?
  • GET 和 POST 有什么区别?
  • Cookie、Session、Token 有什么区别?

这节课学完后,你至少要做到:

  • 能说清 HTTP 是什么
  • 能知道一次 HTTP 请求和响应大概长什么样
  • 能记住常见状态码
  • 能回答 GET 和 POST 的区别
  • 能说清 HTTP 和 HTTPS 的区别
  • 对 Cookie、Session、Token 建立初步认知

2. 什么是 HTTP

一句话理解

HTTP 是应用层协议,用来规定客户端和服务器之间如何传输网页和接口数据。

面试标准答法

HTTP 全称是 HyperText Transfer Protocol,也就是超文本传输协议。它属于应用层协议,主要用于浏览器和服务器之间传输网页、接口数据等内容。

你可以怎么理解

你在浏览器访问网页、本地前端调用后端接口,本质上很多时候都是在用 HTTP 进行通信。


3. HTTP 的核心特点

你先记住最常见的几个标签就够了。

  • 属于应用层协议
  • 基于请求-响应模型
  • 通常是无状态的

什么叫请求-响应模型

简单说就是:

  • 客户端发请求
  • 服务端给响应

什么叫无状态

指的是 HTTP 协议本身默认不会自动记住前一次请求和后一次请求之间的关系。

也就是说:

  • 这次请求来了
  • 服务端处理完就结束
  • 下一次请求再来,协议本身不会天然知道“你还是刚才那个人”

这就是为什么后面会有 Cookie、Session、Token 这类机制。


4. HTTP 请求报文大概长什么样

你不需要背特别细,但要知道它大概由哪些部分组成。

可以简单理解为三部分

  1. 请求行
  2. 请求头
  3. 请求体

示例

GET /user/1 HTTP/1.1
Host: example.com
Content-Type: application/json

{"name":"Tom"}

怎么理解

  • 请求行:请求方法、路径、协议版本
  • 请求头:补充说明信息
  • 请求体:真正要提交的数据

5. HTTP 响应报文大概长什么样

同样也是先知道结构,不用过度细抠。

可以简单理解为三部分

  1. 状态行
  2. 响应头
  3. 响应体

示例

HTTP/1.1 200 OK
Content-Type: application/json

{"id":1,"name":"Tom"}

怎么理解

  • 状态行:协议版本 + 状态码
  • 响应头:补充说明
  • 响应体:返回的数据

6. HTTP 常见请求方法

你现在先掌握最常见的几个。

方法常见用途
GET获取数据
POST提交数据
PUT更新整体资源
DELETE删除资源

面试里最常问的还是:

GET 和 POST 有什么区别?


7. GET 和 POST 的区别

这是必背题。

最基础的理解

  • GET:更常用于获取数据
  • POST:更常用于提交数据

常见区别

对比项GETPOST
语义获取资源提交资源
参数位置常见在 URL 中常见在请求体中
幂等性通常更强调幂等不一定幂等
缓存更容易被缓存通常不默认缓存

注意

很多流传很广的说法,比如“GET 不能有请求体”“POST 一定更安全”,并不是绝对准确的标准结论。

你面试里先答主流版本就够了。

面试标准答法

GET 一般用于获取资源,POST 一般用于提交数据。GET 的参数通常放在 URL 中,POST 的参数通常放在请求体中。语义上 GET 更偏查询,POST 更偏新增或提交操作。另外,GET 通常更强调幂等性,也更容易被缓存。


8. 什么是 HTTP 状态码

一句话理解

状态码就是服务器告诉客户端“这次请求处理结果怎么样”的数字编号。

面试标准答法

HTTP 状态码是服务器对客户端请求处理结果的标识,不同的状态码代表不同的处理结果,比如成功、重定向、客户端错误、服务端错误等。


9. 常见状态码分类

这是非常高频的基础题。

范围含义
1xx提示信息
2xx成功
3xx重定向
4xx客户端错误
5xx服务端错误

10. 必背的常见状态码

200 OK

请求成功。

301 Moved Permanently

永久重定向。

302 Found

临时重定向。

400 Bad Request

请求参数有问题。

401 Unauthorized

通常表示未认证或认证失败。

403 Forbidden

表示没有权限访问。

404 Not Found

请求的资源不存在。

500 Internal Server Error

服务器内部错误。

502 Bad Gateway

网关错误,常见于反向代理场景。

503 Service Unavailable

服务暂时不可用。


11. HTTP 和 HTTPS 的区别

这是网络面试的超级高频题。

一句话理解

HTTPS 就是在 HTTP 的基础上加了一层安全保护。

最核心区别

  • HTTP 明文传输
  • HTTPS 在 HTTP 和 TCP 之间加入了 TLS/SSL,加密后再传输

你先抓住这句话

HTTPS = HTTP + TLS/SSL


12. HTTPS 为什么更安全

核心原因

HTTPS 通过 TLS/SSL 主要提供:

  • 加密
  • 身份认证
  • 数据完整性保护

怎么理解

加密

防止中途被别人直接看懂传输内容。

身份认证

帮助客户端确认自己访问的是不是正确的服务器。

完整性保护

防止数据在传输过程中被篡改而不被发现。

面试标准答法

HTTPS 比 HTTP 更安全,主要是因为它在传输过程中引入了 TLS/SSL,对数据进行加密,并通过证书等机制完成身份认证和完整性校验,从而降低数据被窃听和篡改的风险。


13. HTTP 和 HTTPS 的区别怎么答

标准回答

HTTP 和 HTTPS 的主要区别在于安全性。HTTP 是明文传输,HTTPS 在 HTTP 的基础上加入了 TLS/SSL,可以对数据进行加密,同时提供身份认证和完整性保护,因此更安全。除此之外,HTTPS 通常默认使用 443 端口,而 HTTP 常见使用 80 端口。

端口问题

你可以顺手记住:

  • HTTP 常见端口:80
  • HTTPS 常见端口:443

14. Cookie、Session、Token 初步理解

这一组是后端面试和项目表达里非常常见的内容。

这一课先建立最小认知,后面如果你需要,我可以给你单独开一课深讲。


一句话理解

Cookie 是服务器发给浏览器,并保存在客户端的一小段数据。

常见作用

  • 让浏览器后续请求时带上一些状态信息

14.2 Session

一句话理解

Session 是服务器端保存的会话数据。

怎么理解

可以粗略理解成:

  • Cookie 更偏客户端存一点标识
  • Session 更偏服务端存会话内容

14.3 Token

一句话理解

Token 是一种客户端携带的身份凭证,服务端可以根据它识别用户身份。

常见场景

  • 前后端分离
  • 登录鉴权

14.4 Cookie、Session、Token 最简单区分

概念更偏存在哪里用途
Cookie客户端保存状态标识
Session服务端保存会话数据
Token客户端携带身份校验凭证

面试标准答法

Cookie 通常是保存在客户端的一小段数据,Session 通常是保存在服务端的会话信息,而 Token 通常是客户端在后续请求中携带的身份凭证,常用于前后端分离场景下的认证与授权。


15. 一套可直接背的完整答法

如果面试官问:

你说一下 HTTP 和 HTTPS。

你可以这样答:

HTTP 是应用层协议,主要用于客户端和服务器之间传输网页和接口数据,
它采用请求-响应模型,本身通常是无状态的。
一次 HTTP 通信通常包含请求报文和响应报文,
服务器会通过状态码告诉客户端处理结果。
HTTPS 可以理解为在 HTTP 基础上加入了 TLS/SSL,
它相比 HTTP 更安全,因为能够提供加密、身份认证和完整性保护。
另外 HTTP 常见端口是 80,HTTPS 常见端口是 443。

如果面试官继续问登录态,你可以接着说:

因为 HTTP 本身是无状态的,所以实际开发里通常需要借助 Cookie、Session 或 Token 来维持用户登录状态。
Cookie 更偏客户端保存一小段状态信息,Session 更偏服务端保存会话数据,
Token 则更常用于前后端分离场景下的身份校验。

16. 本课高频面试题

16.1 什么是 HTTP

标准回答

HTTP 是应用层协议,主要用于客户端和服务器之间传输网页和接口数据,它采用请求-响应模型。


16.2 HTTP 为什么说是无状态的

标准回答

HTTP 无状态指的是协议本身默认不会自动记住前后两次请求之间的关系,因此如果要维持登录状态,通常需要借助 Cookie、Session 或 Token 等机制。


16.3 GET 和 POST 有什么区别

标准回答

GET 一般用于获取资源,POST 一般用于提交数据。GET 的参数通常放在 URL 中,POST 的参数通常放在请求体中。语义上 GET 更偏查询,POST 更偏新增或提交操作。


16.4 常见 HTTP 状态码有哪些

标准回答

常见状态码包括:200 表示成功,301/302 表示重定向,400 表示请求有问题,401 表示未认证或认证失败,403 表示没有权限,404 表示资源不存在,500 表示服务器内部错误。


16.5 HTTP 和 HTTPS 有什么区别

标准回答

HTTP 是明文传输,HTTPS 在 HTTP 的基础上引入了 TLS/SSL,可以提供加密、身份认证和完整性保护,因此更安全。HTTP 常见端口是 80,HTTPS 常见端口是 443。


16.6 Cookie、Session、Token 有什么区别

标准回答

Cookie 通常是保存在客户端的一小段数据,Session 通常是保存在服务端的会话信息,而 Token 通常是客户端后续请求中携带的身份凭证,常用于前后端分离场景中的认证。


17. 本课最小记忆卡片

卡片 1

  • HTTP:应用层协议
  • 请求-响应模型
  • 无状态

卡片 2

  • 请求报文:请求行、请求头、请求体
  • 响应报文:状态行、响应头、响应体

卡片 3

  • GET:通常获取资源
  • POST:通常提交数据

卡片 4

  • 状态码
  • 2xx 成功
  • 3xx 重定向
  • 4xx 客户端错误
  • 5xx 服务端错误

卡片 5

  • HTTPS = HTTP + TLS/SSL
  • 更安全:加密、认证、完整性保护

卡片 6

  • Cookie:客户端
  • Session:服务端
  • Token:客户端携带凭证

18. 课后练习

18.1 口头复述题

请你尝试不看讲义回答:

  1. 什么是 HTTP?为什么说它是无状态的?
  2. HTTP 请求和响应分别由哪些部分组成?
  3. GET 和 POST 有什么区别?
  4. 常见 HTTP 状态码有哪些?
  5. HTTP 和 HTTPS 有什么区别?
  6. HTTPS 为什么更安全?
  7. Cookie、Session、Token 有什么区别?

18.2 今日最低完成标准

如果今天时间不多,至少完成下面任务:

  1. 背会本课 6 张最小记忆卡片
  2. 记住 200/301/302/400/401/403/404/500
  3. 能回答 GET 和 POST 的区别
  4. 能回答 HTTP 和 HTTPS 的区别

19. 下一课预告

第九课:浏览器输入 URL 后发生了什么

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...