-
客户端发起请求:用户输入URL并回车,浏览器解析URL,生成HTTP请求。
-
DNS解析:浏览器查看本地hosts文件是否有域名的IP地址映射,如果没有则向DNS服务器发起解析请求,获取域名对应的IP地址。
-
建立TCP连接(三次握手):浏览器使用得到的IP地址和端口号与服务器进行三次握手,建立TCP连接。
-
发送HTTP请求:TCP连接建立后,浏览器将HTTP请求报文发送给服务器。
-
服务器处理请求:服务器接收请求,找到对应的处理程序,解析请求报文,执行业务逻辑,生成响应数据。
-
服务器发送HTTP响应:服务器构造HTTP响应报文,并通过TCP连接将响应报文发送给浏览器。
-
客户端接收响应:浏览器解析响应报文,根据响应内容进行相应的处理(如根据返回的JSON或HTML文档渲染页面)。
-
关闭TCP连接(四次挥手):根据HTTP版本和连接头部信息,浏览器和服务器可能会关闭TCP连接。
-
缓存和重用:浏览器和中间代理会根据响应中的缓存头部信息来缓存内容,以便后续请求时直接使用。