HTTP 协议(2)

时间:2020-11-30 20:22:12

一、URL

HTTP 是一个基于 TCP 的应用层协议,其中 HTTP1.1 版本中支持持续的连接机制(Keep-alive),绝大多数的 WEB 开发都是基于 HTTP 的应用。

HTTP 的 URL 是一种特殊的 URI,URI 只是对某个资源的唯一标识,但不一定能通过 URI 找到该资源,而 URL 则包含了找到该资源的所有信息,即可以通过 URL 找到该资源所在位置。

URL 格式为:http://host[':'port][abs_path], 其中,http 代表要通过 HTTP 协议来定位网络资源;host 代表一个合法的域名或者 IP ;port 为该服务端口,通常是 80,abs_path 是所请求资源的 URI,如果 URL 中没有给出 abs_path,那么当它作为请求 URI 时必须以 / 的形式给出,通常浏览器会帮我们完成这个工作。

如:输入 www.baidu.com,浏览器会自动转换成 http://www.baidu.com/

二、HTTP 请求

请求报文:请求行、请求头、请求正文

1. 请求行

请求行格式:方法 + URI + 版本

  1. 方法(Method)

    HTTP 协议(2)

    GET 与 POST 的区别:TODO

    1. GET:
    2. POST:
  2. URI

    URI 就是统一资源标识,是服务器上对某个资源的唯一标识。

  3. 版本(Version)

    现在一般都用 HTTP/1.1 版本。

2. 请求头

请求头包含客户端在向服务器传递请求时携带的附加信息,包括客户端自身的信息。

  1. 请求头的内容如下:

    HTTP 协议(2)

3. 请求正文

对于 GET 请求,不需要请求正文;对于 POST 请求,需要将请求的内容携带在请求正文中,如请求多组图片时会将请求放在请求正文中。

三、HTTP 响应

HTTP 响应报文实际上和 HTTP 请求报文的结构类似,包含:状态行、响应头、响应正文。

1. 状态行

状态行格式:版本 + 状态码 + 说明

  1. 版本(Version)

    现在一般都用 HTTP/1.1 版本。

  2. 状态码及说明

    HTTP 协议(2)

2. 响应头

除了状态行外,服务器还需携带对 Request-URI 所标识资源的下一步访问的信息和服务器自身的相关信息,这些信息都放在响应头中。

  1. 常见响应头

    HTTP 协议(2)

四、HTTP 报文交互实例

  1. Request 报文

    HTTP 协议(2)

  2. Response 报文

    HTTP 协议(2)