浏览器输入url到底发生了什么
在浏览器输入URL并获取响应的过程,其实就是浏览器和该url对应的服务器的网络通信过程。
URL解析
:判断是否是合法url、HSTS会强制判断是否是安全的协议、是否存在访问限制、检查本地是否有缓存DNS解析
:浏览器将解析得到的域名发送给DNS服务器,以获取对应的IP地址。DNS服务器会返回一个或多个IP地址,浏览器会选择其中一个作为目标服务器的IP地址。建立TCP连接
:浏览器使用HTTP协议与目标服务器建立TCP连接。这个过程涉及到三次握手,即客户端向服务器发送连接请求,服务器回复确认,最后客户端再次回复确认。发送HTTP请求
:建立TCP连接后,浏览器会向服务器发送HTTP请求。请求中包含了请求方法(如GET、POST)、请求头(如User-Agent、Cookie)和请求体(对于POST请求)等信息。服务器处理请求
:服务器接收到浏览器发送的HTTP请求后,会根据请求的内容进行处理。这可能涉及到读取文件、查询数据库或执行其他操作。服务器发送HTTP响应
:服务器处理完请求后,会生成一个HTTP响应。响应中包含了状态码(如200表示成功、404表示未找到)和响应内容等信息。接收HTTP响应
:浏览器接收到服务器发送的HTTP响应后,会根据响应的内容进行处理。这可能包括解析HTML、CSS和JavaScript等资源,并进行渲染。关闭TCP连接
:浏览器在完成页面渲染后,会关闭与服务器的TCP连接。这个过程涉及到四次挥手,即客户端和服务器分别发送关闭连接的请求和确认。
以上是浏览器输入URL后发生的主要步骤。在实际过程中还可能涉及到缓存、重定向、HTTPS加密等其他操作。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 不练剑的温不胜!