原理简述
HTTP 客户端通常是浏览器,Web 服务器可以是 Apache 服务器,IIS 服务器(Internet Information Services)等;
HTTP 基于客户端 / 服务端(C/S)的架构模型。HTTP 请求及响应有如下五个步骤:
- 客户端与服务器建立 TCP 连接。
- 客户端发送 HTTP 请求。请求报文由请求行、请求头部、空行和请求数据四部分组成。
- 服务器接受请求并返回 HTTP 响应。响应报文由状态行、响应头部、空行和响应正文四部分组成。
- 释放 TCP 连接。
- 客户端浏览器解析响应报文并显示。客户端浏览器依次解析状态行、响应头部、响应正文并显示。如正文数据为 HTML,客户端根据 HTML 的语法对其进行格式化,并在浏览器窗口中显示。
当释放 TCP 连接时:
- 若报文头部字段 Connection 的值为 close,则服务器主动关闭 TCP 连接,客户端被动关闭连接,释放 TCP 连接;
- 若 Connection 的值为 keepalive,则该连接会保持一段时间,可以继续接收请求;