当我们在地址栏输入网址并按下回车键时,发生了以下一系列步骤:
-
DNS解析: 浏览器会提取输入的网址(URL)中的域名部分,然后通过 DNS(Domain Name System)解析将域名转换为对应的 IP 地址。DNS解析是为了找到对应网站服务器的IP地址,以便后续建立连接。
-
建立TCP连接: 通过解析得到的IP地址,浏览器会尝试建立与目标服务器的TCP连接。TCP(Transmission Control Protocol)是一种传输层协议,用于在网络上建立可靠的连接。
-
发送HTTP请求: 一旦TCP连接建立成功,浏览器将发送一个HTTP请求给目标服务器。HTTP请求包含了用户请求的具体资源(比如网页、图片等)以及其他的一些元信息。
-
服务器处理请求: 服务器收到浏览器发送的HTTP请求后,会根据请求的内容进行相应的处理。这可能包括查询数据库、处理业务逻辑等。
-
服务器发送HTTP响应: 服务器在处理请求后会生成相应的HTTP响应,包含了请求的资源内容以及其他响应的元信息。
-
浏览器接收HTTP响应: 浏览器接收到来自服务器的HTTP响应后,会根据响应的内容进行相应的处理。如果是一个网页,浏览器会渲染网页并显示在用户界面上。
-
关闭TCP连接: 在请求和响应的过程结束后,TCP连接会被关闭。在未来的请求中,如果需要获取其他资源,浏览器会重新建立新的TCP连接。
-
渲染页面: 浏览器将接收到的HTML、CSS和JavaScript等内容解析并渲染出完整的网页。这包括将HTML结构转换为DOM(Document Object Model),应用CSS样式,执行JavaScript代码等过程。
-
加载其他资源: 在渲染网页的过程中,可能还会发现页面引用了其他资源,比如图片、样式表、脚本文件等。浏览器会重复上述的HTTP请求过程,以加载这些额外的资源。
-
网页显示: 最终,浏览器将渲染好的网页呈现给用户,用户可以在浏览器中浏览和与网页进行交互。