HTTP请求方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP请求方法相关的知识,希望对你有一定的参考价值。

参考技术A HTTP请求方法是HTTP请求中必不可少的一部分,需要我们熟悉并掌握。最开始的 HTTP1.0 中定义了 三种 请求方法:GET、POST 和 HEAD。后来的 HTTP1.1 中又新增了 五种 :PUT、DELETE、OPTIONS、TRACE 和 CONNECT。当然除了这八种请求方法,特定的HTTP服务器还能够 扩展自定义的方法 。例如实现局部更新的 PATCH 等方法。接下来就简单介绍一下八种基本的请求方法。

首先是八种请求应该实现的功能,HEAD 只用来获取响应的报头;POST、DELETE、PUT、GET 应该分别对应对数据的增、删、改、查;OPTIONS 用来测试服务器;TRACE 用来测试或诊断;CONNECT 预留给能够将连接改为管道方式的代理服务器。

一般我们最经常使用的也就是 POST、DELETE、PUT、GET 这四种了,虽说应该与增删改查一一对应,但是经常在使用的过程中,请求方式只是起到了传递数据的作用,而更详细地对数据的处理则留给后端模块。

一般来说,我们会使用 GET 方法来完成单纯的数据获取,因为 GET 方法应该是 安全的、等幂的 (idempotent),应该不涉及数据的修改,新增,删除等操作。等幂的意思可以简单理解 为对同一URL的多个请求应该返回同样的结果 。

涉及到提交数据方面的请求都使用 POST 来完成(你也可以使用 PUT、DELETE,其实没有太大的区别)。因为 POST 方法的安全性更高,POST 的数据是在请求体中发送的,而 GET 的数据是在 URL 中发送的(其实对稍微懂一点的人来说都没差)。且能够传输的数据大小没有限制,而 GET 方法最多只能传输 2KB的数据。

接来下是八种请求方式的描述:

1、HEAD

HEAD 方法是向服务器发出指定资源的请求,只不过 索要的只是响应头,响应体将不会被返回 。这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。

2、GET

GET 方法与 HEAD 方法类似,是向指定的资源发出 显示 请求。使用 GET 方法应该只用在读取数据,而不应当被用于产生副作用的操作中,如修改数据等,因为 GET 可能会被网络爬虫等随意访问。GET 方法也能够向服务端发送数据,是直接加在 URL 中发送的,用 ? 分割URL和数据,用 & 连接多个数据。

例如:https:mu-mu.cn/index.html?name=mumu&age=20

3、POST

GET 和 POST 是我们使用最频繁的两种请求方法,都是向服务器发出指定资源的请求。但是与 GET 方法不同,POST 方法一般拿来新建或修改服务器资源,所以数据与 POST 方法往往是不可分割的,POST 方法的数据会被包含在请求体中发送至服务端。

4、PUT

PUT 方法和 POST 方法非常类似,都是用作数据的修改,他们的区别就是,PUT 方法是 等幂 的,也就是说,如果你对一段资源进行多次 PUT 请求提交,最后的结果应该都是一样的,所以用来进行数据的修改;而 POST 方法如果进行多次数据提交,最后的结果是不一样的,所以应该用作数据的新增。

5、DELETE

DELETE 方法用来请求服务器 删除 Request-URI所标识的资源。

6、OPTIONS

OPTIONS 方法可使服务器传回对于该资源的 支持情况 ,包括各种请求方法、头部的支持情况等。客户端可以对特定的 URL 使用 OPTIONS 方法,也可以对整站(通过将 URL 设置为“*”)使用该方法,用来测试服务器功能是否正常运作。常见的例子还有跨域的时候,当我们发送的请求为非简单请求时(非 HEAD 、GET、POST,请求头不只有 Accept、Accept-Language、Content-Language、Last-Event-ID、三种Content-Type:application/x-www-form-urlencoded、multipart/form-data、text/plain),浏览器就会先发 OPTIONS 来试探服务器是否允许跨域。相信用过 Vue 的小伙伴应该对 OPTIONS 不陌生。

7、CONNECT

CONNECT 方法在一般的开发中使用不到,这个方法的作用就是把服务器作为跳板,让服务器代替用户去访问其它网页,之后把数据原原本本的返回给用户。这样用户就可以访问到一些只有服务器上才能访问到的网站了,这就是HTTP代理。

8、TRACE

TRACE 请求会在目的服务器端发起一个环回诊断。行程最后一站的服务器会弹回一条 TRACE 响应,并在响应主体中携带它收到的原始请求报文。这样客户端就可以查看在所有中间 HTTP 应用程序组成的请求 / 响应链上,原始报文是否,以及如何被毁坏或修改过。TRACE 方法主要用于 测试或诊断 ,验证请求是否如愿穿过了请求 / 响应链。

以上就是八种 HTTP 请求方式的简单介绍了,除了这基本的八种,还有特定服务器的扩展自定义方法,比如开头提到的 PATCH。平时如果只是满足简单的开发需要,GET 和 POST 就足够了, 但是如果能够掌握和应用这些请求方式,自然能够更上一层楼!

另外,如果你有兴趣,或者是有问题想要与我探讨,欢迎来访问我的博客:https:mu-mu.cn/blog

以上是关于HTTP请求方法的主要内容,如果未能解决你的问题,请参考以下文章

http请求中的8种请求方法

HTTP请求方法都有哪些

HTTP请求方法

HTTP请求方式中8种请求方法

HTTP请求方法与状态码

HTTP请求方法