HTTP协议 9 种请求方式用途及区别(详解)-- GET、POST、HEAD、OPTIONS、PUT、PATCH、DELETE、TRACE、CONNECT

关于HTTP简介HTTP菜鸟教程

HTTP 请求方法

根据 HTTP 标准,HTTP 请求可以使用多种请求方法。
HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。
HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。

序号方法描述用途
1GET获取资源】本质就是发送一个请求来取得服务器上的某一资源。资源通过一组HTTP头和呈现数据(如HTML文本,或者图片或者视频等)返回给客户端。GET请求中,永远不会包含呈现数据。 即GET请求只用来向服务器获取资源,而GET请求本身不应该携带任何呈现数据。

1. 登录时GET获取服务器数据库用户名和密码进行验证。
2.下载文本、图片、音视频等时获取服务器资源。
2POST传输实体文本】向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在POST请求体中。POST 请求可能会导致新的资源的建立或已有资源的修改。

1. 提交用户注册信息。
2. 提交修改的用户信息。
3HEAD获得报文首部】类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头。欲判断某个资源是否存在,我们通常使用GET,但这里用HEAD则意义更加明确。

1. 向服务器获取某些易过期或丢失大型文件时,可用HEAD方式查询资源是否存在。
4OPTIONS询问支持的方法】客户端询问服务器可以提交哪些请求方法。这个方法很有趣,它用于获取当前URL所支持的方法。若请求成功,则它会在HTTP头中包含一个名为“Allow”的头,值是所支持的方法,如“GET, POST”。

极少使用。
5PUT传输文件】从客户端向服务器传送的数据取代指定的文档的内容,即指定上传资源存放路径。这个方法比较少见。HTML表单也不支持这个。本质上来讲, PUT和POST极为相似,都是向服务器发送数据,但它们之间有一个重要区别,PUT通常指定了资源的存放位置,而POST则没有,POST的数据存放位置由服务器自己决定。

如一个用于提交博文的URL,/addBlog。如果用PUT,则提交的URL会是像这样的”/addBlog/abc123”,其中abc123就是这个博文的地址。而如果用POST,则这个地址会在提交后由服务器告知客户端。目前大部分博客都是这样的。显然,PUT和POST用途是不一样的。具体用哪个还取决于当前的业务场景。
6PATCH局部更新文件】是对 PUT 方法的补充,用来对已知资源进行局部更新 。

极少使用。
7DELETE删除文件】请求服务器删除指定的资源。

基本上这个也很少见,不过还是有一些地方比如amazon的S3云服务里面就用的这个方法来删除资源。
8TRACE追踪路径】回显服务器收到的请求,客户端可以对请求消息的传输路径进行追踪,TRACE方法是让Web服务器端将之前的请求通信还给客户端的方法。主要用于测试或诊断。

极少使用。
9CONNECT要求用隧道协议连接代理】HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。CONNECT方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。主要使用SSL(安全套接层)和TLS(传输层安全)协议把通信内容加密后经网络隧道传输。

极少使用。

以上的方法,我们可以跟数据库的CRUD增删改查操作对应起来,这样一来就实现了HTTP和数据库操作(其实不光是数据库,任何数据如文件图表都是这样)的完美统一,这也是REST的精髓之一。

GET 请求

  • 从字面意思来说,GET 请求是用来向服务器端获取信息而发送的请求。
  • 没有特殊设置, 默认情况下浏览器发送的都是 GET 请求, 具体的一共有5种,点击超链接,表单提交没有设置method,表单提交设置method为get方式,在浏览器地址栏直接输入地址访问,ajax中设置请求方式为get。
  • GET 请求也可以向服务器端发送请求参数, 形式是在 URL 地址后面加上?,请求参数名和值用=连接,多个请求参数之间使用&分隔。例如:GET /mail/1.html?name=abc&password=xyz HTTP/1.1。
  • HTTP GET方法提交的数据大小长度并没有限制,HTTP 协议规范没有对URL长度进行限制。目前说的GET长度有限制,GET方法传输的数据量一般限制在2KB-8KB左右,其原因在于:GET是通过URL提交数据,而URL本身对于数据没有限制,但是不同的浏览器对于URL是有限制的,比如IE浏览器对于URL的限制为2KB,而Chrome,FireFox浏览器理论上对于URL是没有限制的,它真正的限制取决于操作系统本身。POST方法对于数据大小是无限制的,真正影响到数据大小的是服务器处理程序的能力。

POST 请求

  • POST 请求的字面含义是向服务器端发送数据,仅在表单中设置method=”post”时,请求方式为 POST 方式,另外在 Ajax 应用中,可以指定请求方式为 POST。
  • POST 请求会将请求参数放在请求体中,而不是 URL 地址后面,并且发送数据的大小是没有限制的。

GET方法和POST方法本质上的区别:

GET一般用来从服务器获取数据,POST一般用来向服务器发送数据。由于GET 方式所能够携带的数据是由限制的,其数据大小通常不能超过 4K, 不适于提交大量表单数据, 故而在表单的提交方式中首选 POST 方式。

  1. GET方法用于信息获取,它携带的数据应该是安全的(安全:指非修改信息,如数据库方面的信息),而POST方法是用于修改服务器上资源的请求。
  2. GET请求的数据会附在URL之后,而POST方法提交的数据则放置在HTTP报文实体的主体里,所以POST方法的安全性比GET方法要高。
  3. GET 请求,没有请求体。POST 请求,如果 form 表单提交的方式为 post,则表单项的数据以请求体的形式发送给服务器,没有大小限制。
  • 26
    点赞
  • 119
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
YoloV7是一个深度学习模型,主要用于目标检测。其中的head结构是YoloV7模型中非常重要的一部分,它负责将从骨干网络中提取的特征图转换为目标检测的输出。在本文中,我们将详细讨论YoloV7中的head结构。 1. YoloV7的head结构基础 在YoloV7中,head结构主要由三个部分组成:第一个部分是一个卷积层,用于进一步提取特征;第二个部分是一个全局平均池化层,用于将特征图压缩成一个特征向量;第三个部分是一个全连接层,用于将这个特征向量转换为目标检测的输出。 2. 卷积层 卷积层是head结构中最简单的一部分。它的主要作用是进一步提取特征。在YoloV7中,卷积层的输入是从骨干网络中提取的特征图,输出是一个新的特征图,它的深度通常比输入特征图要大。 卷积层的具体结构可以根据实际需求进行设计。在YoloV7中,卷积层通常采用3x3的卷积核,并且使用ReLU激活函数。 3. 全局平均池化层 全局平均池化层是head结构中非常重要的一部分。它的主要作用是将特征图压缩成一个特征向量,使得整个模型的输出更加紧凑。 在YoloV7中,全局平均池化层的输入是卷积层的输出特征图,输出是一个包含所有通道的平均值的向量。 4. 全连接层 全连接层是head结构中最后一部分。它的主要作用是将全局平均池化层输出的特征向量转换为目标检测的输出。 在YoloV7中,全连接层通常是一个非常大的矩阵,其维度通常是输出类别数目的几倍。在这个矩阵中,每一行对应一个类别,每一列对应一个边界框属性(如中心坐标、宽度、高度等)。每个元素的值表示该类别对应的边界框属性的权重。 5. 目标检测的输出 最终,head结构将全局平均池化层输出的特征向量转换为目标检测的输出。在YoloV7中,目标检测的输出通常是一个张量,其维度为(batch_size, num_boxes, num_classes+5),其中batch_size表示批次大小,num_boxes表示每个图像中的边界框数目,num_classes表示类别数目。 具体来说,对于每个边界框,目标检测的输出包括以下属性: - 中心坐标x和y - 边界框的宽度和高度 - 边界框的置信度 - 每个类别的概率分数 6. 总结 在YoloV7模型中,head结构是非常重要的一部分。它负责将骨干网络中提取的特征图转换为目标检测的输出。head结构主要由卷积层、全局平均池化层和全连接层组成。通过这些层的组合,YoloV7可以实现高效的目标检测,具有非常好的性能和精度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Whitemeen太白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值