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 二进制数据 文件流、下载上传
相关推荐
网络小江13 小时前
上网第三十九课:TCP 的可靠性——滑动窗口、重传与拥塞控制
网络协议
福兮说14 小时前
设计稿是 #4A7C6F,页面量出来是 #4B7C6F:HEX、HSL、透明度、canvas 来回转的七个坑
前端·javascript·css·canvas
郑州光合科技余经理15 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
91刘仁德15 小时前
HTTP协议详解:从URL到HTTP服务器的完整实战
服务器·网络·笔记·网络协议·http
小呆呆66616 小时前
副业搞起来,小说,漫画,漫剧的成本优化思路
前端·后端·面试
Dovis(誓平步青云)16 小时前
浇水提醒刚弹出又消失,植物状态别只存一个百分比
开发语言·前端·javascript·pdf·ecmascript·电脑
码艺-Alimjan16 小时前
Vben Admin 新增维吾尔语 Vben-Modal的关键坑之一
前端·javascript·vue.js
可乐鸡翅yeah_17 小时前
hls.js 手动自定义 http 请求 loader,修改请求头实战
开发语言·前端·javascript·网络协议·http·ecmascript·m3u8在线
IT_陈寒17 小时前
Vite静态资源导入这个坑我帮你们踩过了
前端·人工智能·后端
广州华水科技17 小时前
大坝安全监测解决方案:单北斗GNSS形变监测系统应用与维护
前端