HTTP 请求

2025年3月17日 | 阅读 3 分钟

HTTP 请求是由客户端或用户发送的消息,用于在服务器上启动一个操作。

消息的第一行包括客户端到服务器的请求消息、应用于资源的 method、资源的标识符和协议版本。

语法

请求行

请求行以一个 method 标记开始,后跟 Request-URI、协议版本,最后以 CRLF 结尾。 元素使用 SP 字符分隔。

语法

1) Method (方法)

方法标记用于指示在 Request-URI 标识的资源上执行的方法。 方法区分大小写。

语法

一个资源允许一个方法列表,并且可以在 Allow 标头字段中指定这些方法。 响应的返回码始终通知客户端当前是否允许在资源上使用方法。 因为允许的方法的集合可以动态更改。

方法和描述

i) GET

此方法使用给定的 URI 从给定的服务器检索信息。 GET 请求可以检索数据。 它不能对数据应用其他效果。

ii) HEAD

HEAD 方法与 GET 方法相同。 它仅用于传输状态行和标头部分。

iii) POST

POST 请求将数据发送到服务器。例如,使用 HTML 表单上传文件、客户信息等。

iv) PUT

PUT 方法用于将目标资源的所有当前表示替换为上传的内容。

v) DELETE

DELETE 方法用于删除目标资源的所有当前表示,该资源由 URI 给出。

vi) CONNECT

CONNECT 方法用于建立到服务器的隧道,该服务器由给定的 URI 标识。

2) Return-URI (返回 URI)

Request-URI 是一个统一资源标识符。 它用于标识要应用请求的资源。

语法

根据请求的性质,Request-URI 有这四个选项。

a) 星号 "*" 用于表明请求不适用于特定资源,但它将应用于服务器本身。 仅当使用的方法不一定适用于资源时才允许使用。

示例

OPTIONS * HTTP/1.1

b) absoluteURI 形式仅在向代理发出请求时使用。 请求的代理用于转发请求并返回响应。

示例

GET https://tpointtech.cn/WWW/TheProject.html HTTP/1.1

c) 绝对路径 不能为空。 如果在原始 URI 中不存在任何内容,则必须将其指定为 "/"。

d) authority 形式仅由 CONNECT 方法使用。

由请求标识的资源

通过检查 Request-URI 和 Host 标头字段,我们可以确定 Internet 请求标识的确切资源。

如果原服务器确实根据请求的 host 进行区分,那么原服务器必须使用以下规则来确定 HTTP/1.1 请求上请求的资源。

  1. 如果 Request-URI 是 absoluteURI,host 将是 Request-URI 的一部分。
  2. 如果 Request-URI 不是 absoluteURI,并且请求包含 host 标头字段,则 host 将由 Host 标头字段值确定。
  3. 如果通过规则 1 或 2 确定的 host 不是服务器上的有效 host,则响应必须是 400(错误请求)错误消息。

请求标头字段

请求标头字段用于允许客户端将附加信息传递给服务器,例如请求和客户端本身。 请求标头字段充当请求修饰符,其语义等效于编程语言方法调用的参数。

语法

请求标头字段的名称只能与协议版本的更改相结合才能可靠地扩展。


下一个主题HTTP 响应