HTTP 协议学习笔记

梳理 HTTP 请求方法语义、状态码分类与报文结构,理解无状态协议的工作机制。

网络基础HTTP 更新于 2026-08-07

一、HTTP 协议概述

HTTP(HyperText Transfer Protocol,超文本传输协议)是 Web 通信的基础协议,基于客户端-服务端模型工作。客户端发起请求,服务端返回响应。HTTP 是无状态协议——服务端默认不保留客户端的会话状态,每次请求相互独立。

当前主流版本为 HTTP/1.1(持久连接、管道化)与 HTTP/2(多路复用、头部压缩)。HTTP/3 基于 QUIC 协议,正在逐步普及。

二、请求方法

HTTP 定义了一组请求方法(也称「动词」),表示对资源的不同操作意图。

方法语义是否幂等是否安全
GET获取资源
POST提交数据 / 创建资源
PUT整体更新 / 替换资源
PATCH部分更新资源
DELETE删除资源
HEAD只取响应头(不含正文)
OPTIONS查询服务器支持的通信选项

幂等性:同一请求执行一次与执行多次,对资源状态产生的影响相同。
安全性:方法不修改服务器资源状态(仅查询类方法具备)。

三、状态码

HTTP 状态码用三位数字表示响应结果,按首位分为五大类。

分类含义典型状态码
1xx信息性(已收到,继续处理)100 Continue
2xx成功200 OK201 Created204 No Content
3xx重定向301 Moved Permanently302 Found304 Not Modified
4xx客户端错误400 Bad Request401 Unauthorized403 Forbidden404 Not Found
5xx服务端错误500 Internal Server Error502 Bad Gateway503 Service Unavailable

高频状态码速记

四、报文结构

HTTP 报文为纯文本格式,分为请求报文与响应报文,结构相似:起始行 + 头部 + 空行 + 可选正文。

请求报文示例

GET /notes/http-protocol.html HTTP/1.1
Host: hermesmari.top
User-Agent: Mozilla/5.0
Accept: text/html
Accept-Language: zh-CN
Connection: keep-alive

结构拆解:

响应报文示例

HTTP/1.1 200 OK
Server: nginx/1.24.0
Content-Type: text/html; charset=UTF-8
Content-Length: 4096
Cache-Control: public, max-age=3600

<!DOCTYPE html>
<html>...</html>

结构拆解:

五、常用请求头

请求头作用
Host目标主机名(HTTP/1.1 必填,支持虚拟主机)
User-Agent客户端标识
Accept可接受的响应内容类型
Content-Type请求正文的 MIME 类型
Authorization认证凭证(Bearer Token / Basic 等)
Cookie携带的 Cookie 数据
If-None-Match配合 ETag 做条件请求

六、常用响应头

响应头作用
Content-Type响应正文的 MIME 类型与字符集
Content-Length响应正文字节数
Cache-Control缓存策略
ETag资源版本标识,用于条件请求
Location重定向目标地址(3xx / 201)
Set-Cookie下发 Cookie 到客户端

七、小结

上一篇:← Linux 常用命令笔记