1.5.1 客户端请求

在HTTP连接建立以后,客户端首先发起一个请求:

GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: curl/7.43.0
(空行)

这个请求由3部分构成:

  1. 首行是一个请求行(Request Line
  2. 接着是若干Header,一个一行
  3. 一个空行表示请求结束

请求行(Request Line)

请求行有特定的格式:

Request-Line = Method SP Request-URI SP HTTP-Version CRLF

以上:SP代表一个空格符,CRLF代表回车和换行符。对于

GET /index.html HTTP/1.1

来说,则有:

Method = GET
Request-URI = /index.html
HTTP-Version = HTTP/1.1

这句话告诉服务器:请把“/index.html”所代表的资源(在这里是某个HTML文件)发给我看;这次对话使用HTTP版本1.11

HTTP方法(Method)决定了服务器将如何对所请求的资源进行操作。GET方法的意思就是“请把这个资源发给我看”。除了GET,常见的方法还有POST等,在后面的Web服务器 - 方法与资源中将会有更多介绍。参考这里了解更多:https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods

Request URI代表着服务器上的某种资源。它可以是一个文件,也可以是其他任何东西(比如服务器的当前时间),由服务器决定如何解读。

请求头(Reqeust Header)

Request Header向服务器提供请求的参数、以及客户端自身的一些信息等等。

这个Header

Host: www.example.com

告诉服务器:本次请求是针对名为“www.example.com”的主机的。

这个Header

User-Agent: curl/7.43.0

则是说:我的名字是“curl/7.43.0”。

HTTP定义了一系列Request Header,参考这里了解更多:https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Request_fields

1. 不同的HTTP版本支持的功能集合不一样,如果服务器不支持某个版本,它会回复一个错误。

results matching ""

    No results matching ""