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

news2024/12/23 22:41:20

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.coloradmin.cn/o/1627256.html

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

相关文章

[Linux][网络][网络基础][协议][网络传输基本流程][数据包封装和分用]详细讲解

目录 1.认识协议1."协议"本质就是一种约定2.计算机中的协议 2.网络协议初识1.协议分层2.OSI七层模型3.TCP/IP五层(四层)模型 3.网络传输基本流程0.预备知识1.跨网络的两台主机通信2.网络通信的基本轮廓 4.数据包封装和分用1.数据封装的过程2.数据分用的过程3.总结 5.…

杰发科技AC7840——ADC简介(1)_双路ADC同时使用

0. 简介 1. 特性 2. 双路ADC Sample里面没有双路的,以为那个规则组只有一个通道,看了外设寄存器才发现,原来他的通道是双路的。 注意1: ADC硬件引脚的配置 注意2: 规则组长度设置和 RSEQ序列号和CH通道号组合应该就对应了转换顺序&#xff0…

玩转手机在AidLux上安装宝塔面板

AidLux,手机不用刷机、不用root,直接在手机应用市场就能下载使用。 1.4G的应用包,看起来挺大的,那是因为内嵌了一套完整的AIoT应用开发和部署平台。 不仅Android手机可以玩,华为的Harmony系统也可以使用。 使用它最主…

认识HTTP

HTTP缺点 通信使用明文(不加密),内容可能会被窃听 不验证通信方的身份,可能遭遇伪装 无法证明报文的完整性,所以有可能遭篡改 一、通信使用明文(不加密),内容可能会被窃听 TCP/…

dpdk 总线设备管理

背景 dpdk版本: 22.11 1、dpdk支持的bus类型注册 注册当前能够处理bus类型,放在全局 rte_bus_list 链表中。 struct rte_bus: A structure describing a generic bus,描述总线类型的结构 注册方法 void rte_bus_register(struct rte_bus *bus); //函数功能: 将支持的bus结…

C++-4

在Complex类的基础上&#xff0c;完成^&#xff0c;>&#xff0c;~运算符的重载 #include <iostream>using namespace std; class Complex {int rel; //实部int vir; //虚部 public:Complex(){}Complex(int rel,int vir):rel(rel),vir(vir){}/* Complex operato…

5、Flink事件时间之Watermark详解

1&#xff09;生成 Watermark 1.Watermark 策略简介 为了使用事件时间语义&#xff0c;Flink 应用程序需要知道事件时间戳对应的字段&#xff0c;即数据流中的每个元素都需要拥有可分配的事件时间戳。 通过使用 TimestampAssigner API 从元素中的某个字段去访问/提取时间戳。…

服务器数据恢复—Storwize V3700存储数据恢复案例

服务器存储数据恢复环境&#xff1a; 某品牌Storwize V3700存储&#xff0c;10块硬盘组建了2组Mdisk加入到一个存储池中&#xff0c;一共创建了1个通用卷来存放数据&#xff0c;主要数据为oracle数据库。 服务器存储故障&#xff1a; 其中一组Mdisk中两块磁盘出现故障离线&…

【Linux】进程间通信(共享内存、消息队列、信号量)

一、System V —— 共享内存&#xff08;详解&#xff09; 共享内存区是最快的 IPC 形式。一旦这样的内存映射到共享它的进程的地址空间&#xff0c;这些进程间数据传递不再涉及到内核&#xff0c;换句话说&#xff0c;就是进程不再通过执行进入内核的系统调用来传递彼此的数…

DaVinci Resolve Studio 19(达芬奇19调色剪辑)win/mac激活版

DaVinci Resolve Studio是一个结合专业的8k 编辑&#xff0c;颜色混合&#xff0c;视觉效果和音频后期制作的软件。只需点击一下&#xff0c;你就可以立即在编辑、混音、特效和音频流之间切换。此外&#xff0c;达芬奇解决(达芬奇)是一个多用户协作的解决方案&#xff0c;使编辑…

实验7:路由冗余协议HSRP配置管理(课内实验以及解答)

实验目的及要求&#xff1a; 理解首跳冗余协议&#xff08;FHRP&#xff09;的工作原理&#xff0c;掌握热备份路由器协议 (HSRP)&#xff08;思科私有协议&#xff09;原理和配置。能够实现网络终端设备虚拟网关的配置和网络故障的灵活切换&#xff0c;完成相应网络的联通性测…

配置opencv属性表

编译opencv cmake -DCMAKE_INSTALL_PREFIX./install -G "Visual Studio 15 2017" -A x64 .. cmake -DCMAKE_INSTALL_PREFIX./install -G "Visual Studio 15 2017" -A Win32 ..cmake --build . --config Release -j 2cmake --build . --config Release --t…

uniapp制作分页查询功能

效果 代码 标签中 <uni-pagination change"pageChanged" :current"pageIndex" :pageSize"pageSize" :total"pageTotle" class"pagination" /> data中 pageIndex: 1, //分页器页码 pageSize: 10, //分页器每页显示…

【介绍下Chrome插件开发】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

.net8系列-04图文并茂手把手教你配置Swagger支持token以及实现Swagger扩展,Swagger代码单独抽离

前情提要 接上篇文章&#xff0c;我们当前已完成如下内容&#xff1a; 创建应用成功创建接口成功配置Swagger实现接口注释和版本控制 本文章主要内容为&#xff1a;配置Swagger支持token传值测试接口 快速上手-代码配置 添加如下代码 文件目录&#xff1a;\xiaojinWebAppl…

解决NetworkManager覆盖/etc/resolv.conf的问题

发布时间&#xff1a;2024.4.27 问题 /etc/resolv.conf是Linux下DNS的配置文件。 但是NetworkManager会用覆盖它&#xff0c;导致我们每次都要重新配置。 解决办法 这是官方推荐的做法。或者你可以用resolveconf工具。 $ nm-connection-editor会调起一个界面&#xff0c;…

uniapp 微信小程序 获取openid,手机号进行登录,配合后端

流程&#xff1a;登录注册功能,通过uni.getUserProfile获取wxcode,通过wxcode传给后端获取openid,sessionkey,unionid。 通过<u-button type"success" open-type"getPhoneNumber" getphonenumber"decryptPhoneNumber">一键登录</u-butt…

【React】反向代理和修改打包后的目录

反向代理 前提是做了反向代理&#xff1a; 安装 http-proxy-middleware npm i http-proxy-middleware在src/下新建 setupProxy.js const proxy require("http-proxy-middleware");module.exports function(app) {app.use(proxy("/api", {target: &qu…

selenium入门篇(环境搭建、八大定位)

背景 Web自动化测现状 1. 属于 E2E 测试 2. 过去通过点点点 3. 好的测试&#xff0c;还需要记录、调试网页的细节 一、selenium环境搭建 一键搭建 pip3 install webdriver-helper 安装后自动的完成&#xff1a; 1. 查看浏览器的版本号 2. 查询操作系统的类型 …

.net报错异常及常用功能处理总结(持续更新)

.net报错异常及常用功能处理总结---持续更新 1. WebApi dynamic传参解析结果中ValueKind Object处理方法问题描述方案1&#xff1a;(推荐&#xff0c;改动很小)方案2&#xff1a; 2.C# .net多层循环嵌套结构数据对象如何写对象动态属性赋值问题描述JavaScript动态属性赋值.net…