从输入网址到看到网页发生了什么?

目录

一、HTTP请求过程

1.1、请求行

1.2、请求头

1.3、请求体

二、DNS解析过程

2.1、浏览器缓存

2.2、本地DNS解析

2.3、根DNS解析

2.4、顶级DNS解析

2.5、权限DNS解析

三、TCP连接过程

3.1、三次握手

3.2、数据传输

3.3、四次挥手

四、HTTP响应过程

4.1、状态行

4.2、响应头

4.3、响应体

五、渲染过程

5.1、HTML解析

5.2、CSS解析

5.3、布局计算

5.4、绘制渲染

5.5、交互事件处理

总结


本文将从输入网址到看到网页的整个过程,详细介绍计算机网络中的各种协议和技术,以及它们是如何协同工作的。读者可以通过本文了解到Web应用程序的工作原理和网络通信的细节。

一、HTTP请求过程

在输入网址后,浏览器需要向Web服务器发送HTTP请求,才能获取到网页的内容。HTTP请求通常包括以下几个部分:

1.1、请求行

请求行包括HTTP请求的方法、URL和协议版本。常用的HTTP请求方法有GET、POST、PUT、DELETE等。URL是指要请求的资源的地址,协议版本通常是HTTP/1.1。

1.2、请求头

请求头包括HTTP请求的各种参数和选项,例如User-Agent、Accept、Cookie等。User-Agent是指浏览器的名称和版本号,Accept是指浏览器支持的数据类型,Cookie是指浏览器存储的会话信息。

1.3、请求体

请求体包括HTTP请求的主体内容,例如表单数据、文件数据等。请求体通常只在POST请求中出现。

二、DNS解析过程

在发送HTTP请求前,浏览器需要将URL转换成IP地址,才能与Web服务器建立连接。DNS(Domain Name System)是一种将域名解析成IP地址的协议。DNS解析通常包括以下几个步骤:

2.1、浏览器缓存

浏览器会先检查自己的缓存中是否已经有该域名的IP地址,如果有,则直接使用缓存中的IP地址,否则进入下一步。

2.2、本地DNS解析

浏览器会向本地DNS服务器发送一个DNS查询请求,请求解析该域名的IP地址。如果本地DNS服务器缓存中有该域名的IP地址,则直接返回缓存中的IP地址,否则进入下一步。

2.3、根DNS解析

本地DNS服务器会向根DNS服务器发送一个DNS查询请求,请求解析该域名的IP地址。根DNS服务器会返回一个包含下一级DNS服务器地址的DNS响应报文,本地DNS服务器将使用该地址继续向下查询。

2.4、顶级DNS解析

本地DNS服务器会向顶级DNS服务器发送一个DNS查询请求,请求解析该域名的IP地址。顶级DNS服务器会返回一个包含下一级DNS服务器地址的DNS响应报文,本地DNS服务器将使用该地址继续向下查询。

2.5、权限DNS解析

本地DNS服务器会向权限DNS服务器发送一个DNS查询请求,请求解析该域名的IP地址。权限DNS服务器会返回一个包含该域名的IP地址的DNS响应报文,本地DNS服务器将缓存该IP地址,并将该IP地址返回给浏览器。

三、TCP连接过程

在获取到Web服务器的IP地址后,浏览器需要建立TCP连接才能发送HTTP请求。TCP(Transmission Control Protocol)是一种面向连接的传输层协议,用于保证数据可靠传输。

TCP连接通常包括以下几个步骤:

3.1、三次握手

三次握手是指客户端和服务器之间的三次通信,用于建立TCP连接。首先,客户端发送一个SYN(同步)报文给服务器,服务器接收到报文后回复一个SYN/ACK(同步/确认)报文,表示已经收到了客户端的请求并准备好发送数据。最后,客户端回复一个ACK(确认)报文,表示已经收到了服务器的回复,连接建立成功。

3.2、数据传输

TCP连接建立成功后,浏览器就可以发送HTTP请求了。HTTP请求会被分成多个TCP数据包进行传输,每个TCP数据包都有一个序号和一个确认号,用于保证数据的可靠传输。

3.3、四次挥手

四次挥手是指客户端和服务器之间的四次通信,用于关闭TCP连接。首先,客户端发送一个FIN(结束)报文给服务器,表示已经发送完了所有数据。服务器接收到报文后回复一个ACK报文,表示已经收到了客户端的请求。然后,服务器发送一个FIN报文给客户端,表示已经发送完了所有数据。最后,客户端回复一个ACK报文,表示已经收到了服务器的请求,连接关闭成功。

四、HTTP响应过程

当Web服务器收到浏览器发送的HTTP请求后,会根据请求的URL和参数,生成相应的HTTP响应。HTTP响应通常包括以下几个部分:

4.1、状态行

状态行包括HTTP响应的状态码、状态描述和协议版本。常见的HTTP状态码有200(成功)、404(未找到)和500(服务器内部错误)等。

4.2、响应头

响应头包括HTTP响应的各种参数和选项,例如Content-Type、Content-Length、Cache-Control等。Content-Type是指响应的数据类型,Content-Length是指响应的数据长度,Cache-Control是指缓存的控制选项。

4.3、响应体

响应体包括HTTP响应的主体内容,例如HTML、CSS、JavaScript等。响应体的内容可以是静态文件,也可以是动态生成的数据。

五、渲染过程

当浏览器收到Web服务器发送的HTTP响应后,会根据响应的内容进行渲染,最终呈现给用户。渲染过程通常包括以下几个步骤:

5.1、HTML解析

浏览器首先将HTML代码解析成DOM树,DOM树表示了HTML文档的结构和内容。

5.2、CSS解析

浏览器接下来,浏览器会根据HTML文档中的样式信息解析CSS代码,生成CSSOM树。CSSOM树表示了HTML文档的样式信息。

5.3、布局计算

浏览器根据DOM树和CSSOM树进行布局计算,确定每个元素在页面中的位置和大小。

5.4、绘制渲染

浏览器根据布局计算结果,将每个元素绘制在页面上。在绘制过程中,浏览器还需要考虑各种效果,例如渐变、阴影等。

5.5、交互事件处理

最后,浏览器还需要处理交互事件,例如点击、滚动等。当用户进行交互操作时,浏览器会根据事件类型和目标元素,执行相应的JavaScript代码,实现交互效果。

总结

从输入网址到看到网页的整个过程,其实是一个非常复杂的过程,涉及到了多个环节和技术。首先,浏览器需要解析URL,建立TCP连接,并发送HTTP请求;然后,Web服务器收到HTTP请求后,生成HTTP响应,返回给浏览器;最后,浏览器根据HTTP响应的内容,进行渲染和交互处理,最终呈现给用户。

在这个过程中,涉及到了多个重要的技术,例如DNS解析、TCP协议、HTTP协议、HTML、CSS、JavaScript等。对于Web开发者来说,理解这些技术的原理和实现方法,可以帮助我们更好地理解Web开发的本质,提高我们的开发效率和代码质量。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端筱悦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值