当前位置: 首页 > news >正文

HTTP 方法详解:GET、POST 和 PUT

HTTP 方法详解:GET、POST 和 PUT

HTTP 方法(GET、POST、PUT)用于客户端和服务器之间的通信。它们在输入、输出和传输内容上有显著区别。

1. GET 方法 – 获取资源

用途:从服务器获取资源。

输入:

请求行:GET /path HTTP/1.1
请求头:Host, User-Agent, Accept, Authorization 等。
查询参数:通过 URL 传递,格式为 ?key1=value1&key2=value2

输出:

响应行:HTTP/1.1 200 OK
响应头:Content-Type, Content-Length, Date 等。
响应体:请求的资源内容(例如 HTML、JSON、图像等)

传输内容:

URL 中的查询参数:GET /api/users?id=123 HTTP/1.1

示例:

GET /api/users?id=123 HTTP/1.1
Host: example.com

示例响应:

http
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 34{"id": 123,"name": "John Doe"
}

2. POST 方法 – 提交数据, 创建新资源

用途:向服务器提交数据,通常用于创建新资源。

输入:

请求行:POST /path HTTP/1.1
请求头:Host, User-Agent, Content-Type, Authorization 等。
请求体:传递的数据(通常为 JSON、XML 或表单数据)

输出:

响应行:HTTP/1.1 201 Created 或其他状态码
响应头:Content-Type, Content-Length, Location 等。
响应体:通常为新创建资源的表示或状态信息

传输内容:

请求体中的数据:例如 JSON 格式

复制代码
{"name": "Jane Doe","email": "jane@example.com"
}

示例:

复制代码
POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 45{"name": "Jane Doe","email": "jane@example.com"
}

示例响应:

复制代码
HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 38{"id": 124,"name": "Jane Doe"
}

3. PUT 方法 – 更新资源

用途:更新服务器上的资源,通常是完全替换资源。

输入:

请求行:PUT /path/resource-id HTTP/1.1
请求头:Host, User-Agent, Content-Type, Authorization 等。
请求体:传递的数据(通常为 JSON 格式)

输出:

响应行:HTTP/1.1 200 OK 或其他状态码
响应头:Content-Type, Content-Length 等。
响应体:通常为更新后的资源表示或状态信息

传输内容:
请求体中的数据:例如 JSON 格式

复制代码
{"name": "Jane Doe Updated","email": "jane_updated@example.com"
}

示例:

PUT /api/users/124 HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 55{"name": "Jane Doe Updated","email": "jane_updated@example.com"
}

示例响应:

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 55{"id": 124,"name": "Jane Doe Updated","email": "jane_updated@example.com"
}

比较

GET:获取资源

输入:URL 路径和查询参数
输出:资源内容
传输内容:URL 中的参数
幂等性:幂等

POST:提交数据,创建资源

输入:URL 路径和请求体
输出:新资源的表示或状态信息
传输内容:请求体中的数据
幂等性:非幂等

PUT:更新资源

输入:URL 路径和请求体
输出:更新后的资源表示或状态信息
传输内容:请求体中的数据
幂等性:幂等

在 HTTP 协议中,不同方法的请求返回的数据类型取决于具体应用和 API 的设计。以下是 GET、POST 和 PUT 方法的请求返回数据类型的详细说明:

GET 方法

输入:

URL 路径和查询参数

输出:

数据类型:可以是 JSON、XML、HTML、纯文本、图像等。
响应头:
Content-Type: 指示返回数据的 MIME 类型(例如 application/json、text/html)。
Content-Length: 返回数据的长度。
其他常见的头部字段包括 Cache-Control、ETag、Last-Modified 等。

传输内容:

URL 中的参数

POST 方法

输入:

URL 路径和请求体 

输出:

数据类型:通常是 JSON 或 XML,表示新创建的资源或操作状态。服务器也可以返回 HTML 或纯文本。
响应头:
Content-Type: 指示返回数据的 MIME 类型(例如 application/json、text/plain)。
Content-Length: 返回数据的长度。
Location: 新创建资源的 URL(如果适用)。
其他可能的头部字段包括 Set-Cookie、Cache-Control 等。

传输内容:

请求体中的数据

PUT 方法

输入:

URL 路径和请求体

输出:

数据类型:通常是 JSON 或 XML,表示更新后的资源。服务器也可以返回 HTML 或纯文本。
响应头:
Content-Type: 指示返回数据的 MIME 类型(例如 application/json、text/plain)。
Content-Length: 返回数据的长度。
其他可能的头部字段包括 ETag、Last-Modified 等。

传输内容:

请求体中的数据

返回数据类型详解

JSON(JavaScript Object Notation):

MIME 类型:application/json
轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。
示例:

{"id": 123,"name": "John Doe"
}

XML(eXtensible Markup Language):

MIME 类型:application/xml
标记语言,定义了一套规则编码文档,具有严格的格式和结构。
示例:

<user><id>123</id><name>John Doe</name>
</user>
HTML(HyperText Markup Language):

MIME 类型:text/html

标记语言,用于创建网页。
示例:

<html>
<body><h1>User Profile</h1><p>ID: 123</p><p>Name: John Doe</p>
</body>
</html>

纯文本(Plain Text):

MIME 类型:text/plain
简单的文本格式,没有特殊的标记或格式。
示例:

复制代码
ID: 123
Name: John Doe

图像(Images):

MIME 类型:例如 image/jpeg、image/png
示例:二进制数据(无法用普通文本表示)。

相关文章:

HTTP 方法详解:GET、POST 和 PUT

HTTP 方法详解&#xff1a;GET、POST 和 PUT HTTP 方法&#xff08;GET、POST、PUT&#xff09;用于客户端和服务器之间的通信。它们在输入、输出和传输内容上有显著区别。 1. GET 方法 – 获取资源 用途&#xff1a;从服务器获取资源。 输入&#xff1a; 请求行&#xff…...

被工信部认可的开源软件治理解决方案

近日&#xff0c;工信部网络安全产业发展中心正式发布了“2023年信息技术应用创新解决方案”&#xff0c;开源网安凭借“基于SCA技术开源软件治理解决方案”顺利入选&#xff0c;成为经工信部认可的优秀解决方案&#xff0c;这是开源网安连续两届荣获此荣誉。 工业和信息化部网…...

文件包含漏洞--pyload

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一.PHP伪协议利用 php://协议 php://filter &#xff1a;用于在读取作用和写入文件时进行过滤和转换操作。 作用1&#xff1a;利用base64编码过滤器读取源码 通常利用文件包含执行php://filte…...

C++包管理之`vcpkg`简介

文章目录 工程文件安装vcpkg安装fmt库安装全局的库安装仅该工程使用的库 在CMake中使用vcpkg通过CMAKE_TOOLCHAIN_FILE使用vcpkg通过CMakePresets.json使用vcpkg 在C开发中&#xff0c;我们经常会使用一些第三方库&#xff0c;比如说Boost、fmt、spdlog等等。这些库的安装和使用…...

【机器学习】必会核函数之:高斯核函数

高斯核函数 1、引言2、高斯核函数2.1 定义2.2 核心原理2.3 应用场景2.4 代码示例3、总结1、引言 在机器学习和数据科学领域,核方法 ( K e r n e l M e t h o d s ) (Kernel Methods) (Kerne...

51单片机和STM32区别

51单片机和 STM32 区别 51单片机和 STM32 是两种常见的微控制器&#xff0c;它们在架构、性能、外设接口、功耗和开发环境等方面有所不同。 1. 架构差异 51单片机基于传统的哈佛总线结构&#xff0c;采用 CISC 架构&#xff0c;而 STM32 基于 ARM Cortex-M 系列的32位处理器核…...

Python 伪随机数生成器

random.sample() 函数原理 在 Python 中&#xff0c;随机数的生成通常依赖于伪随机数生成器&#xff08;PRNG&#xff09;。random 模块提供了一个易于使用的接口来生成伪随机数。以下是 random 模块中随机数生成的基本原理和方法&#xff1a; 伪随机数生成器&#xff08;PRN…...

7.5 grafana上导入模板看图并讲解告警

本节重点介绍 : blackbox_exporter grafana大盘导入和查看告警配置讲解 grafana大盘 grafana 上导入 blackbox_exporter dashboard 地址 https://grafana.com/grafana/dashboards/13659举例图片http总览图value_mapping设置 展示设置阈值&#xff0c;展示不同背景色 告警配…...

BUG解决(vue3+echart报错):Cannot read properties of undefined (reading ‘type‘)

这是 vue3echart5 遇到的报错&#xff1a;Cannot read properties of undefined (reading ‘type‘) 这个问题需要搞清楚两个关键方法&#xff1a; toRaw&#xff1a; 作用&#xff1a;将一个由reactive生成的响应式对象转为普通对象。 使用场景&#xff1a; 用于读取响应式…...

VSCode+git的gitee仓库搭建

​ 在此之前你已经在gitee创建好了账号&#xff0c;并新建了一个仓库。 1. 安装 Visual Studio Code Visual Studio Code 是编辑 Markdown 和站点配置文件的基础&#xff0c;以下将其简称为 VSCode&#xff0c;你可以在它的 官方网站 下载到它。 如若不理解各个版本之间的区别…...

Golang | Leetcode Golang题解之第297题二叉树的序列化与反序列化

题目&#xff1a; 题解&#xff1a; type Codec struct{}func Constructor() (_ Codec) {return }func (c Codec) serialize(root *TreeNode) string {if root nil {return "X"}left : "(" c.serialize(root.Left) ")"right : "("…...

交叉熵和MSE的区别

交叉熵 交叉熵损失通常用于分类问题&#xff0c;尤其是二分类和多分类问题。它度量的是预测概率分布与真实标签概率分布之间的差异。 适用于分类问题。常用于神经网络中的Softmax层之后作为损失函数。适用于二分类、多分类中的模型优化&#xff08;如图像分类、文本分类等&am…...

具身智能又进一步!卡内基梅隆Meta苏黎世联邦实现虚拟人超灵活抓取

论文链接&#xff1a;https://arxiv.org/pdf/2407.11385 github链接&#xff1a;https://www.zhengyiluo.com/Omnigrasp-Site/ 亮点直击 本文设计了一种灵巧且通用的人形机器人运动表示&#xff0c;这显著提高了样本效率&#xff0c;并使得通过简单而有效的状态和奖励设计来学习…...

嘉盛:货币政策走向与市场预期

在当前经济背景下&#xff0c;美联储的政策决策备受关注。尽管本周的会议可能不会带来实质性利率变动&#xff0c;但其后的走向可能对未来产生深远影响。市场预期与政策走向 随着近几个月大量通胀数据公布&#xff0c;市场普遍预计&#xff0c;美联储将为即将到来的降息措施奠定…...

[C#]基于wpf实现的一百多种音色的Midi键盘软件

键盘 音色库 源码地址&#xff1a;https://download.csdn.net/download/FL1623863129/89599322...

关于香橙派系统烧录,1.1.8或者1.1.10两个版本都无法启动Orangepi5

先执行 git clone https://github.com/orangepi-xunlong/orangepi-build.gitgit log 默认会显示较新的提交记录。如果你需要查看更多的提交记录&#xff0c;可以使用以下方法&#xff1a; git log --oneline --graph --all这会以简洁的方式显示所有分支的提交记录&#xff0c…...

深入解析Python `httpx`源码,探索现代HTTP客户端的秘密!

&#x1f538; 第一部分&#xff1a;httpx请求入口 我们从最常用的入口开始&#xff0c;看看如何使用httpx库发送HTTP请求。通常&#xff0c;我们会使用 httpx.get() 或 httpx.post() 方法&#xff1a; import httpxresponse httpx.get(https://example.com) print(response…...

python爬虫【3】—— 爬虫反反爬

一、常见的反爬手段和解决方法 二、splash 介绍与安装 三、验证码识别 图片验证码的处理方案 手动输入(input) 这种方法仅限于登录一次就可持续使用的情况图像识别引擎解析 使用光学识别引擎处理图片中的数据&#xff0c;目前常用于图片数据提取&#xff0c;较少用于验证码…...

LIS接入开发

"LIS" 实验室信息系统&#xff08;Laboratory Information System&#xff09;。这是一种用于管理和处理实验室产生的数据和信息的软件系统。LIS广泛应用于各种类型的实验室中&#xff0c;包括医院实验室、独立的参考实验室、病理学实验室以及研究实验室等。 LIS的功…...

Stable Diffusion Windows本地部署超详细教程(手动+自动+整合包三种方式)

2022年作为AIGC&#xff08;Artificial Intelligence Generated Content&#xff09;时代的元年&#xff0c;各个领域的AIGC技术都有一个迅猛的发展&#xff0c;给工业界、学术界、投资界甚至竞赛界都注入了新的“AI活力”与“AI势能”。 其中在AI绘画领域&#xff0c;Stable D…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...