浏览器输入谷歌地址, 请描述整个访问过程发生了哪些步骤?

每天进步一点点!

1. DNS解析:

  1. 浏览器首先会检查本地DNS缓存以获取域名(如www.google.com)的IP地址。如果缓存中没有找到对应的IP地址,浏览器将向本地DNS服务器发送解析请求。
  2. 如果本地DNS服务器也没有缓存相关信息,它将向根域名服务器发出请求,逐级查询直到找到域名对应的IP地址。

2. 建立TCP连接:

一旦浏览器获得目标服务器的IP地址,它将通过操作系统的网络功能开始与服务器之间的TCP连接。这包括三次握手过程:

  1. 客户端(浏览器)向服务器发送一个同步(SYN)数据包,表示客户端准备好建立连接。
  2. 服务器收到同步数据包后,会回复一个同时发送和确认(SYN-ACK)数据包,表示服务器也准备好建立连接。
  3. 最后,客户端再发送一个确认(ACK)数据包,表示连接已成功建立。

3. 发起HTTPS请求:

  1. 一旦TCP连接建立,浏览器会发起一个HTTPS请求给服务器。在这个过程中,还要进行TLS握手(TLS(Transport Layer Security)是SSL(Secure Sockets Layer)的继任者,用于加密通信内容)来确保通信内容的加密和安全性:
  2. TLS握手
  1. 客户端向服务器发送支持的加密算法列表和随机数。
  2. 服务器从客户端提供的加密算法列表中选择一种加密套件,并返回给客户端自己的证书(证书中包含公钥)、支持的加密算法、随机数以及用于生成会话密钥的临时公钥。
  3. 客户端验证证书的合法性,然后生成一个随机值,使用服务器的公钥对该随机值进行加密,并发送给服务器作为"预主密钥"。
  4. 服务器使用自己的私钥解密客户端发来的"预主密钥",然后双方基于客户端和服务器的随机数以及"预主密钥"生成会话密钥。
  5. 后续的通信将使用这个会话密钥进行加密解密。
  6. 一旦TLS握手成功,浏览器使用会话密钥对HTTP请求中的内容进行加密,包括要访问的资源路径、HTTP请求头信息等。这些信息被加密后发送给服务器。

4. 服务器处理请求:

一旦服务器接收到浏览器的HTTPS请求,服务器开始处理请求,例如响应网页请求、数据库查询等操作。

5. 浏览器渲染页面:

服务器返回HTML、CSS、JavaScript等资源给浏览器,浏览器解析和渲染这些资源,最终显示页面给用户。

6. 加载其他资源:

页面渲染完成后,浏览器可能需要加载其他资源,如图片、视频、字体等,这些资源可能需要额外的HTTP请求。

7. 显示页面:

最终,浏览器将所有内容组合在一起,显示完整的谷歌页面给用户。用户可以进行搜索、点击链接等操作。

8. 保持连接:

在页面加载完成后,TCP连接可能会被保持一段时间以便后续请求复用,以提高网页加载速度。

总的来说,从用户在浏览器输入谷歌地址到最终显示页面给用户,涉及了DNS解析、TCP连接建立、HTTPS加密通信、服务器响应、页面渲染等多个详细步骤。这些步骤共同构成了用户访问谷歌的完整过程。

相关推荐
小马爱打代码12 小时前
SpringBoot:封装 starter
java·spring boot·后端
STARSpace888812 小时前
SpringBoot 整合个推推送
java·spring boot·后端·消息推送·个推
Marktowin13 小时前
玩转 ZooKeeper
后端
蓝眸少年CY14 小时前
(第十二篇)spring cloud之Stream消息驱动
后端·spring·spring cloud
码界奇点14 小时前
基于SpringBoot+Vue的前后端分离外卖点单系统设计与实现
vue.js·spring boot·后端·spring·毕业设计·源代码管理
lindd91191114 小时前
4G模块应用,内网穿透,前端网页的制作第七讲(智能头盔数据上传至网页端)
前端·后端·零基础·rt-thread·实时操作系统·项目复刻
Loo国昌15 小时前
【LangChain1.0】第八阶段:文档处理工程(LangChain篇)
人工智能·后端·算法·语言模型·架构·langchain
vx_bisheyuange15 小时前
基于SpringBoot的海鲜市场系统
java·spring boot·后端·毕业设计
李慕婉学姐16 小时前
【开题答辩过程】以《基于Spring Boot和大数据的医院挂号系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
大数据·spring boot·后端
源代码•宸16 小时前
Leetcode—3. 无重复字符的最长子串【中等】
经验分享·后端·算法·leetcode·面试·golang·string