GET

HTTP 方法

指定 HTTP 方法 GET

GET 方法请求传输目标资源的当前选定表示。 GET 是信息检索的主要机制,也是几乎所有性能优化的重点。因此,当人们谈到通过 HTTP 检索某些可识别的信息时,他们通常指的是发出 GET 请求。

我们很容易将资源标识符视为远程文件系统的路径名,并将表示法视为这些文件内容的副本。 事实上,许多资源就是这样实现的(请参阅第 9.1 节中的相关安全考虑因素)。 不过,实际上并没有这种限制。资源的 HTTP 接口很可能是作为内容对象树、各种数据库记录的编程视图或其他信息系统的网关来实现的。 即使 URI 映射机制与文件系统绑定,源服务器也可能被配置为将请求作为输入执行文件,并将输出作为表示发送,而不是直接传输文件。

客户端可以通过在请求中发送范围标头字段,将 GET 的语义修改为 "范围请求",即仅请求传输所选表示的某些部分([RFC7233])。

GET 请求消息中的有效负载没有定义语义;在 GET 请求中发送有效负载体可能会导致某些现有实现拒绝请求。

GET 请求的响应是可缓存的;缓存可以使用它来满足后续的 GET 和 HEAD 请求,除非 Cache-Control 标头字段另有说明([RFC7234] 第 5.2 节)。

HTTP 方法 GET 是由互联网工程任务组(IETF)和万维网联盟(W3C)在文档 RFC 7231 第 4.3.1 节中规定的。

GET 方法说明

HTTP协议的GET方法可以比作是一个数字图书馆员。它礼貌地要求服务器提供数据,而不对数据本身进行任何更改 - 这是一个纯粹的被动请求。

GET方法有何特殊之处?

  1. 一致性:想象一下你多次向图书馆员请求同一本书 - 你每次都会得到同一本书。GET请求也是如此:它始终提供相同的结果。
  2. 只读,不写:GET请求具有观察者的特点。它查看数据但不更改它。
  3. URL中的信息:可以将URL视为地址或索引卡。它指示你正在寻找的书或信息。但要小心:这些卡片不应包含私人笔记,因为其他人可以查看它们。
  4. 快速且高效的响应:由于能够缓存响应,GET方法可以快速地响应重复的请求,就像一个组织得很好的图书馆员知道每本书的位置一样。

但也有一些限制:

  1. 注释的空间有限:URL只有那么多的信息空间。就像在一小块索引卡上写字。
  2. 没有秘密:由于URL是可见的并且可以被存储,所以你不应该在上面记下任何敏感信息。
  3. 不干预:观察者不影响他们所观察的。因此,GET方法不应用于修改数据。对于这样的任务,我们的数字工具箱中有其他工具。

总的来说,GET方法是数字空间中可靠且必不可少的工具,帮助我们高效、安全地检索信息。

HTTP 方法 GET 示例

Request header:
GET /data HTTP/1.1
Host: api.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/58.0.3029.110 Safari/537
Accept: application/json
Accept-Language: de-DE,de;q=0.5
Connection: keep-alive
Cache-Control: max-age=0
Response header:
Content-Type: application/json
Date: Mon, 31 July 2023 14:58:12 GMT
Server: Apache/2.4.7 (Ubuntu)
Cache-Control: no-cache