在浏览器输入URL并获取响应的过程,其实就是浏览器和该url对应的服务器的网络通信过程。

  1. URL解析:判断是否是合法url、HSTS会强制判断是否是安全的协议、是否存在访问限制、检查本地是否有缓存

  2. DNS解析:浏览器将解析得到的域名发送给DNS服务器,以获取对应的IP地址。DNS服务器会返回一个或多个IP地址,浏览器会选择其中一个作为目标服务器的IP地址。

  3. 建立TCP连接:浏览器使用HTTP协议与目标服务器建立TCP连接。这个过程涉及到三次握手,即客户端向服务器发送连接请求,服务器回复确认,最后客户端再次回复确认。

  4. 发送HTTP请求:建立TCP连接后,浏览器会向服务器发送HTTP请求。请求中包含了请求方法(如GET、POST)、请求头(如User-Agent、Cookie)和请求体(对于POST请求)等信息。

  5. 服务器处理请求:服务器接收到浏览器发送的HTTP请求后,会根据请求的内容进行处理。这可能涉及到读取文件、查询数据库或执行其他操作。

  6. 服务器发送HTTP响应:服务器处理完请求后,会生成一个HTTP响应。响应中包含了状态码(如200表示成功、404表示未找到)和响应内容等信息。

  7. 接收HTTP响应:浏览器接收到服务器发送的HTTP响应后,会根据响应的内容进行处理。这可能包括解析HTML、CSS和JavaScript等资源,并进行渲染。

  8. 关闭TCP连接:浏览器在完成页面渲染后,会关闭与服务器的TCP连接。这个过程涉及到四次挥手,即客户端和服务器分别发送关闭连接的请求和确认。

以上是浏览器输入URL后发生的主要步骤。在实际过程中还可能涉及到缓存、重定向、HTTPS加密等其他操作。