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 二进制数据 文件流、下载上传
相关推荐
常温5103 分钟前
关于网卡如何给CPU减负方法及策略
网络协议·tcp/ip·udp
前端九哥10 分钟前
装个依赖把公司电脑干报废了?npm i 到底背着我干了啥?
前端·javascript
莫小墨11 分钟前
Modbus协议
网络协议
溪海莘17 分钟前
React入门:跟读官方快速入门教程(前端小白)
前端·react.js·前端框架
汤愈韬27 分钟前
防火墙双机热备技术之VRRP
网络·网络协议·网络安全·security·huawei
绝世唐门三哥36 分钟前
工具函数-精准判断美东交易时间
前端·javascript·vue.js
Moment40 分钟前
如何一次性生成 60 种语气表达?RWKV 模型告诉你答案 ❗❗❗
前端·后端·aigc
北京耐用通信43 分钟前
告别通信干扰与距离限制:耐达讯自动化Profibus总线光纤中继器赋能伺服驱动器稳定连接
人工智能·科技·网络协议·自动化·信息与通信
踢球的打工仔1 小时前
typescript-null和undefined
前端·javascript·typescript
前端小蜗1 小时前
对不起,我很贱:老板还没催,我自己就统计《GitLab年度代码报告》
前端·javascript·人工智能