浏览器输入URL到显示主页的过程通常可以分为以下步骤:
- **URL解析**:
-
当用户在浏览器的地址栏中输入URL时,浏览器会首先对该URL进行解析。
-
解析URL包括识别协议(例如HTTP、HTTPS)、主机名(例如www.example.com)、路径(例如/index.html)等。
- **DNS解析**:
-
浏览器将解析出的主机名发送到DNS(域名系统)服务器,以获取该主机名对应的IP地址。
-
如果该主机名已经被缓存,则直接从缓存中获取IP地址;否则,将向DNS服务器发送DNS查询请求。
- **建立TCP连接**:
-
浏览器使用HTTP或HTTPS协议与获取的IP地址上的服务器建立TCP连接。
-
对于HTTPS协议,还会进行SSL握手过程,确保通信安全性。
- **发送HTTP请求**:
-
一旦TCP连接建立,浏览器会向服务器发送HTTP请求,请求页面或资源。
-
请求头部可能包括信息如请求的方法(GET、POST等)、所需的页面或资源、浏览器的相关信息等。
- **服务器处理请求**:
-
服务器接收到浏览器发送的HTTP请求后,会根据请求的内容和服务器的配置进行相应的处理。
-
处理过程可能包括读取文件、执行脚本、访问数据库等操作。
- **服务器返回响应**:
-
服务器处理完请求后,会生成相应的HTTP响应,包括响应头和响应主体。
-
响应头包括状态码(如200表示成功,404表示未找到页面等)、服务器信息、内容类型等。
-
响应主体则包含请求的页面内容或资源的数据。
- **浏览器接收响应**:
-
浏览器接收到服务器返回的HTTP响应后,开始解析响应内容。
-
如果是HTML页面,浏览器会解析HTML文档,并同时获取并解析页面中引用的外部资源,如CSS样式表、JavaScript脚本、图像等。
- **渲染页面**:
-
浏览器根据HTML文档和相关资源,将页面内容呈现在用户界面上。
-
页面的呈现包括解析HTML结构、应用CSS样式、执行JavaScript代码等步骤。
- **显示页面**:
-
最终,浏览器将渲染好的页面显示给用户。
-
用户可以与页面进行交互,如点击链接、填写表单等。
这些步骤构成了浏览器从接收到用户输入URL到显示网页内容的完整过程。
浏览器中输入: " www.woaijava.com " 之后都发生了什么? 请详细阐述
由域名 → IP 地址 寻找 IP 地址的过程依次经过了浏览器缓存、系统缓存、 hosts 文件、路由器缓
存、 递归搜索根域名服务器。
建立 TCP/IP 连接(三次握手具体过程)
由浏览器发送一个 HTTP 请求
经过路由器的转发,通过服务器的防火墙,该 HTTP 请求到达了服务器
服务器处理该 HTTP 请求,返回一个 HTML 文件
浏览器解析该 HTML 文件,并且显示在浏览器端
这里需要注意:
HTTP 协议是一种基于 TCP/IP 的应用层协议,进行 HTTP 数据请求必须先建立 TCP/IP 连接
可以这样理解: HTTP 是轿车,提供了封装或者显示数据的具体形式; Socket 是发动机,提供了
网络通信的能力。
两个计算机之间的交流无非是两个端口之间的数据通信 , 具体的数据会以什么样的形式展现是以
不同的应用层协议来定义的。
主要包括以下几个基本步骤:
浏览器的地址栏输入URL并按下回车
浏览器查找当前URL是否存在缓存,并比较缓存是否过期
DNS解析URL对应的IP
根据IP建立TCP连接(三次握手)
发送HTTP请求
服务器处理请求
返回HTTP响应
浏览器接受HTTP响应
关闭TCP连接(四次挥手)
浏览器解析HTML
浏览器布局渲染
浏览器地址栏输入 url 并回车:
- 浏览器解析 URL
1.1 查看缓存
1.2 DNS 解析
-
根据 IP 地址三次握手建立 TCP 连接
-
发送 HTTP 请求
-
服务器处理请求
-
服务器返回 HTTP 响应
-
浏览器接受响应
-
四次挥手关闭 TCP 连接
-
浏览器解析 HTML
-
浏览器布局渲染