HTTP的几种请求方法

0 阅读5分钟

HTTP的几种请求方法用途

一、GET方法

发送一个请求来获取服务器上的某一资源

  1. GET方法的特点:

    • 是HTTP的一种请求方法,用于从服务器获取资源
    • 是一种幂等的方法,多次发送相同GET请求会返回相同的结果
  2. GET请求和POST请求的区别:

    • GET请求将参数附加在URL的查询字符串中,而POST请求将参数放在请求体中
    • GET请求的数据会显示在URL中,而POST请求的数据不会显示在URL中
    • GET请求一般用于获取数据,而POST请求一般用于提交数据
  3. GET请求可以有请求体吗?

    • 可以,但根据HTTP规范,GET请求不应该有请求体,参数应该通过URL的查询字符串传递
  4. GET请求的参数如何传递?

    • GET请求的参数可以通过URL的查询字符串传递,例如:/api/users?id=123&name=poetry
  5. GET请求的安全性和幂等性如何保证?

    • GET请求不会对服务器端的资源产生副作用,因此被视为安全
    • GET请求是幂等的,多次发送相同的GET请求不会对服务器端产生影响

二、POST方法

URL指定的资源提交数据或附加新的数据

  1. POST方法的特点:

    • POST方法是HTTP的一种请求方法,用于向服务器提交数据
    • 不是幂等的,多次发送相同的POST请求可能会产生不同的结果
  2. GET请求和POST请求的区别:

    • POST请求将参数放在请求体中,而GET请求将参数附加在URL的查询字符串中
    • POST请求的数据不会显示在URL中,而GET请求的数据会显示在URL中
    • POST请求一般用于提交数据,而GET请求一般用于获取数据
  3. POST请求的请求体如何传递数据?

    • POST请求的数据可以通过请求体以表单形式传递或者以JSON等格式传递
  4. POST请求的安全性和幂等性如何保证?

    • POST请求可能对服务器端的资源产生副作用,因此被视为不安全
    • POST请求不是幂等的,多次发送相同的POST请求可能会对服务器端产生影响

三、PUT方法

将数据发送给服务器,并将其存储在指定的URL位置。与POST方法不同的是,PUT方法指定了资源在服务器上的位置。

  1. PUT方法的特点:

    • PUT方法是HTTP的一种请求方法,用于将数据发送给服务器并存储在指定的URL位置
    • 它是一种幂等的方法,多次发送相同的PUT请求会对服务器端产生相同的结果
  2. PUT请求和POST请求有什么区别?

    • PUT请求用于指定资源在服务器上的位置,而POST请求没有指定位置
    • PUT请求一般用于更新或替换资源,而POST请求一般用于新增资源或提交数据
  3. PUT请求的幂等性如何保证?

    • PUT请求的幂等性保证是由服务器端实现的
    • 服务器端应该根据请求中的资源位置来处理请求,多次发送相同的PUT请求会对该位置上的资源进行相同的更新或替换操作

    注: 由于HTTP/1.1的PUT方法自身不带验证机制,所以会导致任何人都可以上传文件,存在安全性问题,一般不使用,除非配合验证机制,或架构设计采用REST(Representational State Transfer,表征状态转移)标准的同类网站,才会选择使用。

四、HEAD方法

获得报文首部

  1. HEAD方法和GET方法一样,只是不返回报文主体部分
  2. 一般用于确认URL的有效性资源更新的日期时间

五、DELETE方法

删除服务器上的某资源

  1. 与PUT方法相反,按请求URL删除指定的资源
  2. 但是与PUT一样不带验证机制

六、OPTIONS方法

用于获取当前URL所支持的方法

  1. 如果请求成功,会有一个Allow的头包含类似“GET,POST”这样的信息

七、TRACE方法

让Web服务器端将之前的请求通信返回给客户端

  1. 请求过程

    发送请求时,在Max-Forwards首部字段中填入数值,每经过一个服务器端就减1,当变成0时,就停止继续传输,最后接收到请求的服务器则返回状态码200 OK的响应。

  2. 目的

    客户端可以通过TRACE方法可以查询发送出去的请求是怎么被加工修改/篡改的,因为请求想要连接到源目标服务器可能会通过代理中转,TRACE方法就是用来确认连接过程中发生的一系列操作。但是它容易引发XST(Cross-Site Tracing,跨站追踪)

TRACE方法.png

八、CONNECT方法

把请求连接转换到透明的TCP/IP通道

  1. 要求

    • 要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信
    • 主要使用SSL(Secure Sockets Layer,安全套接层)和TLS(Transport Layer Security,传输层安全)协议把通信内容加密后经网络隧道传输
  2. 格式

       CONNECT 代理服务器名:端口号 HTTP版本
    

CONNECT方法.png