Http基础

目录

定义

一、请求部分(Request)

[1. 请求行(Request Line)](#1. 请求行(Request Line))

常见请求方法:

[2. 请求头(Request Headers)](#2. 请求头(Request Headers))

[3. 请求体(Request Body)](#3. 请求体(Request Body))

二、响应部分(Response)

[1. 状态行(Status Line)](#1. 状态行(Status Line))

状态码:

常见状态码:

[2. 响应头(Response Headers)](#2. 响应头(Response Headers))

[3. 响应体(Response Body)](#3. 响应体(Response Body))

三、HTTP的其它重要内容

[1. 连接管理](#1. 连接管理)

[2. 无状态性](#2. 无状态性)

[3. 缓存控制](#3. 缓存控制)

[4. 内容协商](#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 让服务器返回符合客户端偏好的内容格式。

相关推荐
漫步人生走在路上7 分钟前
外贸SEO中的品牌词与产品词策略:大卖家和小卖家的不同打法
大数据·javascript·网络·数据库·人工智能·搜索引擎
华允物联-HUAIOT19 分钟前
DTU 和 LoRa 模块有什么区别?工业无线回传怎么选
网络·tcp/ip·udp
AI砖家26 分钟前
验证码与接口防刷完整落地方案
网络·人工智能·安全验证
阿文和她的Key30 分钟前
DeepInfer 与 TorchTPU 同日开源:供应商锁定的成本结构正在被重写
网络·人工智能·架构·开源
Raas1001 小时前
MemT-1.0 接入设计指南:硬件核算、三方案选型与写入触发点
大数据·网络·人工智能·机器学习·数据挖掘·ai agent
大泽九章1 小时前
HTTP协议安全入门:从请求走私到CRLF
网络协议·安全·http
JoyCong19981 小时前
参数测评:ToDesk个人版、团队版、企业版的设备数、并发通道与安全能力对比
运维·服务器·网络·安全·智能手机·远程工作
zxanz12 小时前
多域名、泛域名 SSL 怎么选?避开证书采购的溢价陷阱
服务器·网络协议·ssl
似是燕归来2 小时前
Rtthread OS 功能开发之 socket tcp协议程序开发
网络·网络协议·tcp/ip·rtthread
Brookty2 小时前
网络原理|第三阶段:MTU、TCP 分段、IPv4 分片与重组及路径 MTU 发现
网络·ip