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 二进制数据 文件流、下载上传
相关推荐
一勺菠萝丶4 分钟前
管理后台使用手册在线预览与首次登录引导弹窗实现
java·前端·数据库
军军君014 分钟前
Three.js基础功能学习十四:智能黑板实现实例一
前端·javascript·css·typescript·前端框架·threejs·智能黑板
小村儿7 分钟前
连载05-Claude Skill 不是抄模板:真正管用的 Skill,都是从实战里提炼出来的
前端·后端·ai编程
BullSmall8 分钟前
Prometheus 如何配置监控 SSL 证书即将过期
网络协议·ssl·prometheus
xiaotao13113 分钟前
JS new 操作符完整执行过程
开发语言·前端·javascript·原型模式
robch19 分钟前
python3 -m http.server 8001直接启动web服务类似 nginx
前端·nginx·http
吴声子夜歌26 分钟前
ES6——数组的扩展详解
前端·javascript·es6
guhy fighting34 分钟前
new Map,Array.from,Object.entries的作用以及使用方法
开发语言·前端·javascript
大漠_w3cpluscom35 分钟前
CSS 技巧:CSS 单位使用指南
前端
一只小鱼儿吖42 分钟前
长效代理IP:构建稳定高效的网络数据通
网络·网络协议·tcp/ip