📅  最后修改于: 2021-01-03 03:05:50             🧑  作者: Mango
HTTP请求是由客户端或用户发送以在服务器上启动操作的消息。
消息的第一行包括从客户端到服务器的请求消息,应用于资源的方法,资源的标识符以及协议版本。
句法
Request = Request-Line
*(( general-header
| request-header
| entity-header ) CRLF)
CRLF
[ message-body ]
请求行以方法令牌开始,其后是请求URI,协议版本,并以CRLF结尾。使用SP字符可分隔元素。
句法
Request-Line = Method SP Request-URI SP HTTP-Version CRLF
1)方法
方法令牌用于指示对Request-URI标识的资源执行的方法。该方法区分大小写。
句法
Method = "OPTIONS"
| "GET"
| "HEAD"
| "POST"
| "PUT"
| "DELETE"
| "TRACE"
| "CONNECT"
| extension-method
extension-method = token
允许资源使用方法列表,并且可以在Allow标头字段中指定方法。响应的返回代码始终通知客户端当前是否允许在资源上使用方法。由于允许的方法集可以动态更改。
方法和说明:
i)获取
此方法使用给定的URI从给定的服务器检索信息。 GET请求可以检索数据。它不能对数据施加其他影响。
ii)头
HEAD方法与GET方法相同。它仅用于传输状态行和标题部分。
iii)开机自检
POST请求将数据发送到服务器。例如,使用HTML表单的文件上传,客户信息等。
iv)放置
PUT方法用于用上载的内容替换目标资源的所有当前表示形式。
v)删除
DELETE方法用于删除目标资源的所有当前表示形式,该表示形式由URI给出。
vi)连接
CONNECT方法用于建立到服务器的隧道,该隧道由给定的URI标识。
2)返回URI
Request-URI是统一资源标识符。它用于标识在其上应用请求的资源。
句法
Request-URI = "*" | absoluteURI | abs_path | authority
根据请求的性质,这四个用于Request-URI的选项取决于。
a)星号“ *”用于表示该请求不适用于特定资源,但是将适用于服务器本身。仅当使用的方法不一定适用于资源时才允许使用。
例
选项* HTTP / 1.1
b)仅在向代理发出请求时才使用absoluteURI形式。请求的代理用于转发请求并返回响应。
例
GET http://www.javatpoint.com/WWW/TheProject.html HTTP / 1.1
c)绝对路径不能为空。如果在原始URI中没有任何内容,则必须将其指定为“ /”。
d)授权表仅由CONNECT方法使用。
使用Request-URI和Host标头字段的检查,我们可以确定Internet请求标识的确切资源。
如果原始服务器确实根据请求的主机进行区分,则原始服务器必须使用以下规则来确定HTTP / 1.1请求上的请求资源。
请求标头字段用于允许客户端将其他信息(如请求和客户端本身)传递到服务器。请求标头字段用作请求修饰符,其语义等效于编程语言方法调用中的参数。
句法
request-header = Accept
| Accept-Charset
| Accept-Encoding
| Accept-Language
| Authorization
| Expect
| From
| Host
| If-Match
| If-Modified-Since
| If-None-Match
| If-Range
| If-Unmodified-Since
| Max-Forwards
| Proxy-Authorization
| Range
| Referer
| TE
| User-Agent
只有与协议版本的更改结合使用,才能可靠地扩展请求标头字段的名称。