HTTP 是一个基于 TCP 的应用层协议,其中 HTTP1.1 版本中支持持续的连接机制 (Keep-alive),绝大多数的 web 开发都是基于 HTTP 的应用。
HTTP 的 URL 是一种特殊的 URI,URI 只是对某个资源的唯一标识,但不一定能通过 URI 找到该资源,而 URL 则包含了找到该资源的所有信息,即可以通过 URL 找到该资源所在位置。
URL 格式为:
, 其中,http 代表要通过 HTTP 协议来定位网络资源;host 代表一个合法的域名或者 IP ;port 为该服务端口,通常是 80,abs_path 是所请求资源的 URI,如果 URL 中没有给出 abs_path,那么当它作为请求 URI 时必须以 / 的形式给出,通常浏览器会帮我们完成这个工作。
- http://host[':'port][abs_path]
如:输入 www.baidu.com,浏览器会自动转换成
。
- http://www.baidu.com/
请求报文:请求行、请求头、请求正文
请求行格式:
- 方法 + URI + 版本
请求头包含客户端在向服务器传递请求时携带的附加信息,包括客户端自身的信息。
对于 GET 请求,不需要请求正文;对于 POST 请求,需要将请求的内容携带在请求正文中,如请求多组图片时会将请求放在请求正文中。
HTTP 响应报文实际上和 HTTP 请求报文的结构类似,包含:状态行、响应头、响应正文。
状态行格式:
- 版本 + 状态码 + 说明
除了状态行外,服务器还需携带对 Request-URI 所标识资源的下一步访问的信息和服务器自身的相关信息,这些信息都放在响应头中。
来源: http://www.bubuko.com/infodetail-2440318.html