Http基础
目录
定义
一、请求部分(Request)
1. 请求行(Request Line)
常见请求方法:
2. 请求头(Request Headers)
3. 请求体(Request Body)
二、响应部分(Response)
1. 状态行(Status Line)
状态码:
常见状态码:
2. 响应头(Response Headers)
3. 响应体(Response Body)
三、HTTP的其它重要内容
1. 连接管理
2. 无状态性
3. 缓存控制
4. 内容协商
定义
HTTP(HyperText Transfer Protocol,超文本传输协议)是Web通信的基础协议,它定义了浏览器与服务器之间通信的格式和流程。
主要包含以下内容:
一、请求部分(Request)
请求报文总览:
1. 请求行(Request Line)
包含请求方法、请求目标(路径或URL)、HTTP版本,例如:
常见请求方法:
-
GET:
用于资源获取||对服务器数据不进⾏修改||不发送 Body -
POST
:⽤于增加或修改资源||发送给服务器的内容写在 Body ⾥⾯ -
PUT
:上传文件或数据 -
DELETE
:删除资源 -
HEAD
:请求资源头部||和 GET 唯⼀区别在于,返回的响应中没有 Body -
OPTIONS
:查询服务器支持的方法
2. 请求头(Request Headers)
携带客户端信息、首选项、身份验证等:
3. 请求体(Request Body)
通常用于 POST
或 PUT
方法,包含提交的数据(如 JSON、表单数据),例如:
二、响应部分(Response)
服务器对请求的回应,包含以下内容:
响应报文格式:
1. 状态行(Status Line)
指明响应状态,例如:
状态码:
🔵 1xx:信息性状态码(Informational) | 临时性消息。如: 100 (继续发送)、 101 (正在切换协议) |
🟢 2xx:成功状态码(Success) | 成功。最典型的是 200 ( OK )、 201 (创建成功)。 |
🟡 3xx:重定向状态码(Redirection) | 重定向。 |
🔴 4xx:客户端错误(Client Error) | 客户端错误。如 400 (客户端请求错误)、 401 (认证失败)、 403 (被禁 ⽌)、404 (找不到内容)。 |
🔴 5xx:服务器错误(Server Error) | 服务器错误。如 500 (服务器内部错误)。 |
常见状态码:
状态码 | 描述 |
---|---|
100 Continue | 初始请求已接受,客户端应继续发送请求体 |
101 Switching Protocols | 协议切换请求已接受(例如从 HTTP 升级到 WebSocket) |
状态码 | 描述 |
---|---|
200 OK | 请求成功,返回数据在响应体中 |
201 Created | 请求成功,服务器创建了新的资源(常用于 POST) |
202 Accepted | 请求接受但未处理完成(通常用于异步处理) |
204 No Content | 请求成功但无返回内容 |
状态码 | 描述 |
---|---|
301 Moved Permanently | 资源已永久移动,新地址在 Location 头中 |
302 Found | 临时重定向,仍可使用原地址再次请求 |
303 See Other | 用于重定向到另一个地址获取资源(通常用于 POST 后跳转) |
304 Not Modified | 缓存未过期,客户端可使用本地副本 |
状态码 | 描述 |
---|---|
400 Bad Request | 请求语法有误 |
401 Unauthorized | 未授权,需身份验证(如登录) |
403 Forbidden | 拒绝访问,权限不足 |
404 Not Found | 资源不存在 |
405 Method Not Allowed | 请求方法不被允许(如使用了错误的 HTTP 方法) |
408 Request Timeout | 请求超时 |
429 Too Many Requests | 触发速率限制(Rate Limit) |
状态码 | 描述 |
---|---|
500 Internal Server Error | 服务器内部错误 |
501 Not Implemented | 请求方法未实现 |
502 Bad Gateway | 作为网关时返回无效响应 |
503 Service Unavailable | 服务暂时不可用(如维护或过载) |
504 Gateway Timeout | 网关或代理超时 |
2. 响应头(Response Headers)
提供响应的元数据,如内容类型、缓存策略等:
3. 响应体(Response Body)
返回给客户端的内容本体,例如网页HTML、图片、JSON数据等。
三、HTTP的其它重要内容
1. 连接管理
-
HTTP/1.0 默认每次请求后关闭连接(非持久)
-
HTTP/1.1 默认开启持久连接(
Connection: keep-alive
) -
HTTP/2 多路复用,提升并发性能
2. 无状态性
HTTP 是无状态协议,每次请求独立。身份保持需要靠 Cookie、Session、Token 等机制。
3. 缓存控制
通过头字段如 Cache-Control
、ETag
、Last-Modified
控制客户端和代理服务器缓存行为。
4. 内容协商
通过 Accept
、Accept-Encoding
、Accept-Language
让服务器返回符合客户端偏好的内容格式。