【网络】浏览器输入URL到页面显示经历的过程

本文详细阐述了从用户在浏览器输入URL到页面完整显示的过程,包括DNS域名解析、TCP三次握手、HTTP请求发送、服务器处理及HTTP响应、浏览器解析渲染画面和TCP四次挥手断开连接。重点介绍了DNS的工作原理以及HTTP请求和响应的结构。此外,还涉及浏览器如何构建DOM树、CSS规则树和渲染树以绘制页面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

流程

总体来说分为以下几个过程

  • NDS解析:将域名解析为IP地址
  • TCP连接:TCP三次握手
  • 发送HTTP请求
  • 服务器处理请求并返回HTTP报文
  • 浏览器解析渲染画面
  • 断开链接:TCP四次挥手

什么是URL

URL就是我命平时俗称的网址,遵循下面的语法规则

scheme://host.domain:port/path/filename

各部分解释如下

  • scheme - 定义因特网的服务类型。常见的协议有http、https、ftp、file
  • host - 定义域主机(默认www)
  • domain - 域名,比如baidu.com.cn
  • port - 端口号(默认为80端口)
  • path - 服务器上的路由
  • filename - 定义文档/资源的名称

一、域名解析(DNS)

DNS协议运行在UDP协议之上,使用端口号53,在浏览器输入网址后,首先要进行域名解析,将类似于baidu.com转换为对应的域名类似于

104.193.88.123

至于为什么不一开始就赋予一个IP地址,还能省去解析的麻烦,是因为我们更习惯通过单词或字母而非数字来记忆网站,而计算机更擅长处理数字,所以DNS应运而生

浏览器如何通过域名去查询URL中的IP呢

  • 浏览器缓存:浏览器会按照一定的频率缓存DNS记录
  • 操作系统缓存:如果浏览器找不到,就去操作系统找==(个人理解是去找操作系统中的hosts文件)==
  • 路由缓存:路由器也有DNS缓存
  • ISP的DNS服务器:ISP是互联网服务提供商的建成,ISP有专门的DNS服务器对应DNS请求
  • 如果都找不到,他就会想跟服务器发出请求,进行递归查询(先访问根域名服务器.com域名服务器的IP地址,然后再访问.baidu域名服务器,以此类推)

二、TCP三次握手

这篇文章

三、发送HTTP请求

三次握手结束后,开始发送HTTP报文请求
请求报文由请求行、请求头、请求体三个部分组成
在这里插入图片描述

  • 请求行:包含请求方阿福、URL、协议版本
    • 请求方法包含八种:GET,POST,PUT,DELETE,HEAD,OPTIONS,TRACE
    • URL
    • 协议版本,既HTTP版本号
  • 请求头:包含请求的附加信息,由关键 字/值 对组成每行一对,由英文的:隔开
  • 请求体:可以承载多个请求参数的数据,但是并不是所有请求都具有请求数据

四、服务器处理请求并返回HTTP报文

1.服务器

对于不同用户发送的请求,会结合配置文件,把不同的请求委托给服务器上处理相应请求的程序处理,然后返回后台程序处理产生的效果作为响应

2.MVC后台处理阶段

MVC将程序分为三个核心组建:模型(MODEL)–视图(view)–控制器(controller)

视图

给用户提供操作界面,是程序的外壳

模型

主要负责数据的交互

控制器

负责根须用户从视图层传入的指令,选取模型层中的数据,然后进行相应的操作,呈现最终结果

3.HTTP响应报文

响应报文由响应行、响应头部、响应主体三个部分组成
在这里插入图片描述

  • 响应行包含:协议版本,状态码,状态码描述
    状态码规则可以看这篇文章
  • 响应头部包含响应报文的附加信息,由 名/值 对自称
  • 响应主体包含回车符、换行符和响应返回数据,不是所有响应报文都有相应数据

五、浏览器解析渲染画面

分为五个步骤

  • 根据 HTML 解析出 DOM 树
  • 根据 CSS 解析生成 CSS 规则树
  • 结合 DOM 树和 CSS 规则树,生成渲染树
  • 根据渲染树计算每一个节点的信息
  • 根据计算好的信息绘制页面

六、断开链接

四次挥手

参考文章
浏览器输入一个url到整个页面显示出来经历了哪些过程?

URL页面显示中间会经历以下过程: 1. 解析URL浏览器首先会解析输入URL,包括协议(例如HTTPHTTPS)、域名、端口号和路径等信息。 2. 域名解析:浏览器将域名发送给DNS(域名系统)服务器进行解析,以获取对应的IP地址。DNS服务器将返回一个或多个IP地址,浏览器将使用其中一个IP地址来建立与服务器的连接。 3. 建立连接:浏览器使用HTTPHTTPS协议与服务器建立连接。对于HTTP浏览器将发送一个包含请求的报文给服务器;对于HTTPS,还需要进行SSL/TLS握手过程来建立加密通信。 4. 发送请求:浏览器向服务器发送HTTP请求,请求可以包含HTTP方法(如GET、POST等)、请求头、请求体信息。请求头中包含了一些元数据,例如用户代理、Accept-Language等。 5. 服务器处理请求:服务器接收到浏览器发送的HTTP请求后,开始处理请求。这可能涉及动态生成页面内容、从数据库中获取数据、处理业务逻辑等。 6. 返回响应:服务器生成HTTP响应,并将其发送回浏览器。响应包含状态码、响应头和响应体等信息。状态码表示请求的处理结果,如200表示成功,404表示未找到页面等。 7. 浏览器渲染:浏览器收到服务器返回的响应后,开始解析响应。它会根据响应头中的内容类型确定如何处理响应体,例如渲染HTML页面、执行JavaScript脚本、加载CSS样式等。 8. 页面显示浏览器根据解析和渲染的结果,将页面显示给用户。这包括显示文本、图片、视频、表单等内容,并且可能触发一些交互行为,如点击链接、提交表单等。 总结起来,URL页面显示过程包括解析URL、域名解析、建立连接、发送请求、服务器处理请求、返回响应、浏览器渲染和页面显示等步骤。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值