web: http请求(自用总结)

一、结构示意图(完整结构)

1.1 示例图

复制代码
┌──────────────────────────────────────┐
│ 请求行                               │
│ POST /api/login HTTP/1.1             │
├──────────────────────────────────────┤
│ 请求头                               │
│ Host: api.example.com                │
│ Content-Type: application/json       │
│ Authorization: Bearer xxx            │
│ User-Agent: Chrome/120               │
├──────────────────────────────────────┤
│ 空行                                 │
│                                      │
├──────────────────────────────────────┤
│ 请求体(可选)                       │
│ {                                    │
│   "username": "admin",             │
│   "password": "123456"             │
│ }                                    │
└──────────────────────────────────────┘

1.2 说明

组成部分 格式 / 结构 作用说明 示例 / 说明
请求行(Request Line) 请求方法 请求路径 HTTP版本 指定访问哪个资源、使用什么方式以及 HTTP 协议版本 GET /user/info HTTP/1.1
请求头(Request Headers) Header-Name: Header-Value 描述请求的附加信息,如数据类型、认证信息、客户端信息等 Host、Content-Type、Authorization、Cookie
空行 无内容 分隔请求头与请求体,HTTP 协议强制要求 必须存在,不能为空
请求体(Request Body) 自定义数据内容 客户端向服务器提交的实际业务数据 常见于 POST / PUT / PATCH;JSON、表单、文件

二、请求方法

2.1 请求方法辨析

请求方法 是否有请求体 主要用途 是否幂等 是否安全 典型使用场景
GET 获取资源 查询用户信息、列表查询
POST 新增资源 / 提交数据 用户注册、登录、表单提交
PUT 整体更新资源 更新用户全部信息
PATCH 局部更新资源 修改用户部分字段
DELETE 可选 删除资源 删除用户、删除订单
HEAD 仅获取响应头 检查资源是否存在
OPTIONS 查询服务器支持的方法 跨域预检(CORS)

三、请求头

3.1 常见Header-Name 和 Header-Value

请求头名称 常见值示例 作用说明 典型使用场景
Host api.example.com 指定目标服务器域名 HTTP/1.1 必需,用于虚拟主机
Content-Type application/json 指定请求体数据格式 提交 JSON、表单、文件
Content-Length 348 请求体长度(字节) 服务端读取请求体
Authorization Bearer eyJhbGciOiJIUzI1NiIs... 身份认证信息 JWT、OAuth
Cookie JSESSIONID=xxx 客户端携带的 Cookie 会话保持
User-Agent Mozilla/5.0 客户端标识 浏览器 / 设备识别
Accept application/json 客户端期望的响应类型 内容协商
Accept-Encoding gzip, deflate, br 客户端支持的压缩格式 响应压缩
Accept-Language zh-CN,zh;q=0.9 客户端语言偏好 国际化
Connection keep-alive 连接管理方式 长连接 / 短连接
Referer https://example.com 请求来源页面 防盗链、统计
Origin https://example.com 请求来源域 CORS 跨域校验

四、请求体

4.1 常见请求体类型

请求体类型 Content-Type 值 数据示例 常见使用场景
JSON application/json { \"username\": \"admin\", \"password\": \"123456\" } 接口调用、前后端分离
表单(URL Encoded) application/x-www-form-urlencoded username=admin&password=123456 传统表单提交
表单(Multipart) multipart/form-data 文件 + 表单字段 文件上传
XML application/xml <user><name>admin</name></user> 老系统、配置接口
纯文本 text/plain hello world 简单文本提交
二进制流 application/octet-stream 二进制数据 文件流、下载上传
相关推荐
C澒6 分钟前
前端整洁架构(Clean Architecture)实战解析:从理论到 Todo 项目落地
前端·架构·系统架构·前端框架
C澒12 分钟前
Remesh 框架详解:基于 CQRS 的前端领域驱动设计方案
前端·架构·前端框架·状态模式
Charlie_lll16 分钟前
学习Three.js–雪花
前端·three.js
onebyte8bits33 分钟前
前端国际化(i18n)体系设计与工程化落地
前端·国际化·i18n·工程化
C澒41 分钟前
前端分层架构实战:DDD 与 Clean Architecture 在大型业务系统中的落地路径与项目实践
前端·架构·系统架构·前端框架
JoySSLLian44 分钟前
手把手教你安装免费SSL证书(附宝塔/Nginx/Apache配置教程)
网络·人工智能·网络协议·tcp/ip·nginx·apache·ssl
BestSongC1 小时前
行人摔倒检测系统 - 前端文档(1)
前端·人工智能·目标检测
猫头虎1 小时前
如何解决 OpenClaw “Pairing required” 报错:两种官方解决方案详解
网络·windows·网络协议·macos·智能路由器·pip·scipy
0思必得01 小时前
[Web自动化] Selenium处理滚动条
前端·爬虫·python·selenium·自动化
Misnice1 小时前
Webpack、Vite、Rsbuild区别
前端·webpack·node.js