HTTP 协议(2)
一、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 + 版本
-
方法(Method)
GET 与 POST 的区别:TODO
- GET:
- POST:
-
URI
URI 就是统一资源标识,是服务器上对某个资源的唯一标识。
-
版本(Version)
现在一般都用 HTTP/1.1 版本。
2. 请求头
请求头包含客户端在向服务器传递请求时携带的附加信息,包括客户端自身的信息。
-
请求头的内容如下:
3. 请求正文
对于 GET 请求,不需要请求正文;对于 POST 请求,需要将请求的内容携带在请求正文中,如请求多组图片时会将请求放在请求正文中。
三、HTTP 响应
HTTP 响应报文实际上和 HTTP 请求报文的结构类似,包含:状态行、响应头、响应正文。
1. 状态行
状态行格式:版本 + 状态码 + 说明
-
版本(Version)
现在一般都用 HTTP/1.1 版本。
-
状态码及说明
2. 响应头
除了状态行外,服务器还需携带对 Request-URI 所标识资源的下一步访问的信息和服务器自身的相关信息,这些信息都放在响应头中。
-
常见响应头
四、HTTP 报文交互实例
-
Request 报文
-
Response 报文