HTTP

HTTP 知识量:10 - 42 - 186

2.1 基于HTTP的通信><

客户端与服务器端的通信- 2.1.1 -

请求访问资源的一端是客户端;提供资源响应的一端是服务器端。

应用HTTP协议进行通信时,必定一端是客户端,另一端是服务器端。两端的角色有可能会互换,但从一条通信线路或一次完整通信来说,客户端和服务器端的角色是确定的。HTTP协议可以明确区分哪端是客户端,哪端是服务器端。

请求响应模式- 2.1.2 -

HTTP协议规定,请求从客户端发出,最后由服务器端响应并返回。一次通信总是先从客户端开始,服务器端在没有接收到请求之前是不会发送响应的,因为不知道是谁的需求,也没法发送响应。

客户端发送的HTTP请求报文结构包括:

  • 方法

  • URI

  • 协议版本

  • 可选的请求首部字段

  • 可选的内容实体

示例如下:

GET /index.html HTTP/1.1
Host: pnotes.cn
...

name=bob&age=38...
  • 开头的GET表示请求访问的类型,称为方法。

  • 字符串/index.htm指明请求访问的资源对象,称为请求URI。

  • HTTP/1.1即HTTP的版本号。

  • Host: pnotes.cn...是请求首部字段。

  • name=bob&age=38...是内容实体。

以上请求的意思是:请求访问pnotes.cn服务器上的index.htm页面资源。

服务器端响应报文结构包括:

  • 协议版本

  • 状态码(表示请求成功或失败的数字代码)

  • 原因短语(用于解释状态码的原因)

  • 可选的响应首部字段

  • 可选的实体主体

示例如下:

HTTP/1.1 200 OK
Date: Tue, 23 May 2023 02:54:19 GMT   
Content-Length: 365
Content-Type: text/html

<html>
...
  • HTTP/1.1表示服务器对应的HTTP版本号。

  • 200 OK表示请求处理结果的状态码和原因短语。

  • Date...text/html是响应首部字段。Date一行显示创建响应的日期时间,是首部字段内的一个属性。

  • <html>...部分是实体主体。