HyperText Transfer Protocol 超文本传输协议 -->用于传输HTML等内容的应用层协议,规定了浏览器和服务器之间如何通信和通信时的数据格式
图片说明

HTTP-浏览器和服务器通信步骤:

  1. 建立TCP连接
  2. 发送HTTP报文(请求报文)
    GET / HTTP/1.1 //方法,路径,协议类型
    Host: developer.mozilla.org//请求头:请求域名
    Accept-Language: fr//请求头:语言
    ...//这里是请求体
    图片说明
  3. 读取服务器返回的报文(响应报文)
    HTTP/1.1 200 OK //状态行:协议版本 状态码/状态码
    Date: Sat, 09 Oct 2010 14:28:02 GMT
    Server: Apache
    Last-Modified: Tue, 01 Dec 2009 20:18:22 GMT
    ETag: "51142bc1-7449-479b075b2891b"
    Accept-Ranges: bytes
    Content-Length: 29769
    Content-Type: text/html //响应头:服务器相关消息
    <!DOCTYPE html... (here comes the 29769 bytes of the requested web page)//业务数据
    图片说明
  4. 关闭连接或为后续请求重用连接

问题:为何一个网页刷新有多次请求-->网页依赖多种资源造成的
图片说明
解释:服务器向浏览器返回HTML文件后发现该网页代码中还需要引用了很多比如js,css,图片等资源,因此需要想服务器发送请求以加载这些资源。我们重点关注第一个返回网页的请求,如果网页没问题其他的请求问题不大。