HTTP网络协议的请求方法,具体详解(2024-04-26)

1、HTTP

超文本传输协议,是一种实现客户端和服务器之间通信的响应协议,它是用作客户端和服务器之间的请求

根据 HTTP 标准,HTTP 请求可以使用多种请求方法。

2、方法分类

HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。

HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。

序号方法描述
1GET用于请求服务器发送某个资源。GET 请求不应该对服务器上的资源做出任何更改,并且应该是幂等的(即多次重复的请求应该产生相同的结果)。例如,当你在浏览器中输入 URL 地址时,浏览器会发送一个 GET 请求来获取该 URL 对应的网页。
2HEAD类类似于 GET 请求,但服务器不返回请求的资源主体,只返回响应头。HEAD 请求通常用于获取资源的元信息,如资源的大小、类型等,而不需要获取资源的实际内容。
3POST用于向服务器提交数据,通常用于提交表单或上传文件。POST 请求可能会导致服务器上的状态更改,并且不一定是幂等的。例如,在提交注册表单时,浏览器通常会发送一个 POST 请求,将用户提供的信息发送到服务器进行处理。
4PUT用于向服务器上传资源,通常用于更新已存在的资源或创建新的资源。PUT 请求应该是幂等的,即多次执行相同的 PUT 请求应该产生相同的结果。
5DELETE用于请求服务器删除指定的资源。DELETE 请求应该是幂等的,即多次执行相同的 DELETE 请求应该产生相同的结果。
6CONNECT用于建立到服务器上指定端口的隧道,通常用于代理服务器。
7OPTIONS用于请求服务器返回支持的 HTTP 方法和其他选项。例如,客户端可以发送 OPTIONS 请求来确定服务器支持哪些 CORS(跨域资源共享)策略。
8TRACE回显服务器收到的请求,主要用于测试或诊断。
9PATCH用于在请求-响应链上的每个节点获取传输路径。TRACE 请求通常用于调试和测试,以查看请求在经过各种代理服务器和中间件时如何被修改。

(1)GET 获取资源

  • GET 方法用来请求访问已被URI识别的资源,指定的资源经服务器端解析后返回响应内容;
  • 也就是说,如果请求的资源是文本,那就保持原样返回;如果是 CGI(Common Gateway Interface,通用网关接口)那样的程序,则返回经过执行后的输出结果;

请求GET/index.html HTTP/1.1
Host:www.myindex.jp
响应返回index.html的页面资源

(2)POST 上传实体主体

  • 主要向指定资源提交数据进行处理请求(例如提交表单);
  • 数据被包含在请求附件中;
  • POST请求可能会导致新资源的建立和已有资源的修改

请求POST/submit.cgi HTTP/1.1
Host:www.myindex.jp
Content-Length:150(150字节的数据)
响应返回接收submit.cgi数据的处理结果

 (3)HEAD 获得报文首部

  1. 获得报文首部;
  2. 类似GET,只是不返回报文主体部分;
  3. 用于确认URI的有效性及资源更新的日期时间等;

(4)PUT 上传文件

  • PUT方法用来上传文件;
  • 就像FTP协议的文件上传一样,要求在请求报文的主体中包含文件内容,然后保存到请求URI指定的位置;
  • 但鉴于 HTTP/1.1 的 PUT 方法自身不带验证机制,任何人都可以上传文件 , 存在安全性问题,因此一般的Web网站不使用该方法;
  • 若 配合 Web 应用程序的验证机制,或架构设计采用REST(REpresentational State Transfer,表征状态转移)标准的同类 Web 网站,就可能会开放使用 PUT 方法。

请求PUT/example.html HTTP/1.1
Host:www.myindex.jp
Content-Type:text/html
Content-Length:150(150字节的数据)
响应响应返回状态码204 No Content(比如:该html已存在于服务器上)

(5)DELETE 删除文件

  • DELETE用来删除文件,是与 PUT 相反的方法;
  • DELETE 方法按 请求 URI 删除指定的资源;
  • 由于HTTP/1.1 的 DELETE 方法本身和 PUT 方法一样不带验证机制,所以一般的Web网站也不使用 DELETE 方法;
  • 但是当配合 Web 应用 程序的验证机制,或遵守 REST 标准时还是有可能会开放使用的;

请求DELETE/example.html HTTP/1.1
Host:www.myindex.jp
响应响应返回码204 No Content(比如:该html已从该服务器上删除)

(6)OPTIONS 询问支持的方法

查询针对请求 URI 指定的资源支持的方法。

请求OPTIONS * HTTP/1.1
Host:www.myindex.jp
响应HTTP/1.1 200 OK
Allow:GET,POST,HEAD,OPTIONS(返回服务器支持的方法)

3、GET与POST的区别?

 (1)get参数放在地址栏中,post参数放在请求主体中;

 (2)get请求只发送一次TCP数据包,post要发送两次TCP数据包

 (3)get请求能保存链接,但post不行

 (4)get请求浏览器自动缓存,post缓存要手动设置,所以get请求刷新或后退不浪费资源,但post会重新请求

 (5)get请求只支持URL编码,但post支持多种编码

4、请求的状态码

2XX:客户端请求被正常处理

3XX:资源重定向

4XX:客户端错误,服务器拒绝回答

5XX:服务器端请求错误

200 OK                              请求正常处理完毕
204 No Content                 请求成功处理,没有实体的主体返回
206 Partial Content           GET范围请求已成功处理
301 Moved Permanently   永久重定向,资源已永久分配新URI
302 Found                         临时重定向,资源已临时分配新URI
303 See Other                   临时重定向,期望使用GET定向获取
304 Not Modified               发送的附带条件请求未满足
307 Temporary Redirect    临时重定向,POST不会变成GET
400 Bad Request               请求报文语法错误或参数错误
401 Unauthorized              需要通过HTTP认证,或认证失败
403 Forbidden                   请求资源被拒绝
404 Not Found                   无法找到请求资源(服务器无理由拒绝)
500 Internal Server Error    服务器故障或Web应用故障
503 Service Unavailable     服务器超负载或停机维护

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/829237.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32系统参数和结构

系列文章目录 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. 基本参数 2. 片上资源(外设) 3. STM32系列命名规则 4. 系统结构 5. 引脚定义 6. 启动配置 7. 最小系统电路 8. 型号分类和缩写 1. 基本参数 STM32F103C8T6 系列&#…

监听el-table滚动

mounted() {// 监听el-table滚动window.addEventListener("scroll", this.loadMore, true);}, 后端接口没有分页,一次性返回全部数据,前端监听滚动条加载数据。 this.tableList当前表格展示的数据 this.allTableData接口获取的全部数据 load…

SpringBoot+MyBatis-Plus+jsqlparser实现多租户功能

前言 多租户技术(multi-tenancy technology)是一种软件架构技术,它允许在单个系统实例上为多个用户或组织提供服务,同时确保这些用户之间数据的隔离性。在多租户架构中,每个租户(可以是个人用户、企业、组…

预见预判|AIRIOT智慧交通管理解决方案

随着机动车保有量的逐步增加,城市交通压力日益增大。同时,新能源车辆的快速发展虽然带来了环保效益,但也因不限号政策而进一步加剧了道路拥堵问题。此外,各类赛事和重大活动的交通管制措施也时常导致交通状况复杂多变。面对这些挑…

便携式应急指挥箱规格参数

概况: 微缩型的无线视频音频传输的机动挥所。体积小、重量轻、公配电方便、携带便携、功能齐全。可进行单兵作战,通过此无线音频视频传输的指挥箱能完成现场图像、语音、数据的采集等功能,可以通过5G/4G/WIFI等多种无线网络完成传输的需求,或…

Linux基础——Linux开发工具(gcc/g++,gdb)

前言:在上一篇我们简单介绍了yum,vim的一些常用的指令和模式,现在让我们来进一步了解其他的Linux环境基础开发工具gcc/g,gdb。 如果对前面yum和vim有什么不懂的建议回顾去回顾上期知识!!! Linu…

html表格导出为word文档,导出的部分表格内无法填写文字

导出技术实现:fileSaver.jshtml-docx-js 1.npm安装 npm install --save html-docx-js npm install --save file-saver 2.页面引入 import htmlDocx from html-docx-js/dist/html-docx; import saveAs from file-saver;components: {htmlDocx,saverFile, }, 3.页…

神经网络的激活函数

目录 神经网络 激活函数 sigmoid 激活函数 tanh 激活函数 backward方法 relu 激活函数 softmax 激活函数 神经网络 人工神经网络( Artificial Neural Network, 简写为ANN)也简称为神经网络(NN)&#xff0c…

提示工程 3—文本类任务和推理类任务示例

1. 文本类任务 1.1. 文本概括(Text Summarization) 任务描述:将较长的中文文本内容简化为包含关键信息和主要观点的简短版本。 示例:原文:"阿里巴巴集团成立于1999年,是中国最大的电子商务公司之一,由马云创办。集团主要经营B2B、B2C和C2C等多种电商平台。"…

k8s笔记 | StatefulSet 有状态

创建一个web.yaml --- apiVersion: v1 kind: Service metadata:name: nginxlabels:app: nginx spec:ports:- port: 80name: webclusterIP: Noneselector:app: nginx --- apiVersion: apps/v1 kind: StatefulSet metadata:name: web spec:serviceName: "nginx" # 使用…

c# ?? 、?.、??=、?[]运算符的使用

在 C# 中存在一些特殊的运算符,它们简化了代码的编写,主要用于处理空值(null)或简化成员访问。以下是一些常用的这类运算符: ?? - Null 合并运算符 Null 合并运算符 ?? 在左侧的操作数不为 null 时返回左侧的操作…

asp.net core 自定义过滤器 注入的几种方式和实现

在 ASP.NET Core 中,过滤器(Filters)是一种在 MVC 应用程序中运行代码的方法,可以在操作(Actions)执行之前或之后运行。过滤器可以应用于控制器(Controllers)或特定的操作方法。过滤…

Java-基础知识-包-带点不带点

在 IntelliJ IDEA 中,工程目录(通常指的是项目的包结构或目录结构)带点和不带点的区别主要是语义上的和约定上的。这里所说的“点”通常指的是在包名或目录名中的.字符。 带点的目录结构: 当您在 IntelliJ IDEA 中看到带点的目录…

Netty 应用与原理

更好的阅读体验 \huge{\color{red}{更好的阅读体验}} 更好的阅读体验 Java IO 模型 本篇示例代码仓库:learn-netty 基础概念 在 I/O 操作中有这么两组概念,其中同步/异步 要和线程中的同步线程/异步线程要区分开,这里指的是同步IO / 异步IO…

安全作业-1

1. windows登录的明文密码,存储过程是怎么样的,密文存在哪个文件下,该文件是否可以打开,并且查看到密文 用户在登录界面输入用户名和密码。Windows登录进程(winlogon.exe)接收用户的输入,并准备进行身份验证。Lsass处…

人脸识别开发项目汇总

1.基于FaceX-Zoo实现的人脸识别系统-CSDN博客 2.人脸识别:京东开源FaceX-Zoo:PyTorch工具箱 - 知乎 (zhihu.com) 3.人头识别-人群中准确快速的检测头部算法_在输入图像中检测人像头部的方法-CSDN博客 4.Github开源人脸识别项目face_recognition - 知乎…

ssm智能停车场管理系统

视频演示效果: SSMvue智能停车场 摘 要 本论文主要论述了如何使用JAVA语言开发一个智能停车场管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述智能停车…

Langchain实战:基于Chain实现Prompt的高级应用

Langchain实战 一. Langchain介绍二. 项目背景三. 代码实现3.1 导入必要的库并调用GPT大模型3.2 输出解析器(指定输出格式)3.3 定义Prompt模板3.4 构造LLMChain并推理3.5 解析推理结果3.6 异步调用 四. 参考文献 一. Langchain介绍 LangChain 是一个用于开发由语言模型驱动的应…

新兴游戏引擎Godot vs. 主流游戏引擎Unity和虚幻引擎,以及版本控制工具Perforce Helix Core如何与其高效集成

游戏行业出现一个新生事物——Godot,一个免费且开源的2D和3D游戏引擎。曾经由Unity和虚幻引擎(Unreal Engine)等巨头主导的领域如今迎来了竞争对手。随着最近“独特”定价模式的变化,越来越多的独立开发者和小型开发团队倾向于选择…

Vitis HLS 学习笔记--Syn Report解读(1)

目录 1. 介绍 2. 示例一 2.1 HLS 代码 2.2 Report 解读 2.2.1 General Information 2.2.2 Timing Estimate 2.2.3 Performance & Resource Estimates 2.2.4 HW interfaces 2.2.4.1 硬件接口报告 2.2.4.2 导出至 Vivado 中的 IP 2.2.4.3 Port-Level Protocols 端…