从URL输入到页面展示之间发生了什么

面试官:从浏览器输入URL到页面展示出来,中间发生了什么? 前言 这应该算是一个很经典的面试题了,前端工程师,后端工程师,包括网络工程师都有可能被问到。开放度很高,每个人都可以针对自己熟悉的部分,进行深入的讲解。 总体来说,分为如下几个部分 1.DNS解析 2.建立TCP连接,发送HTTP请求 3.服务端处理请求并返回HTTP响应 4.浏览器解析渲染页面 5.关闭连接 DNS解析 DNS解析就是获取服务器IP地址的过程。互联网上每一台计算机的唯一标识是它的IP地址,但是IP地址并不方便记忆。用户更喜欢用方便记忆的网址去寻找互联网上的其它计算机,例如www.baid. 阅读详情

本文参考:

https://www.bilibili.com/video/BV1QG4y1Y7vj?vd_source=77bab8f46de2b84d605769e73f8f90c4

小林coding(2.2 键入网址到网页显示,期间发生了什么? | 小林coding)

仅用于自用整理复习

从URL输入到页面展示之间主要分以下几个步骤

  1. URL输入
  2. DNS解析
  3. 建立TCP连接
  4. 发送http/https连接请求
  5. 服务器端响应请求
  6. 浏览器解析渲染链接
  7. 断开TCP连接
  • URL输入

URL,全称统一资源定位符,用于定位互联网上的资源,俗称网址。

在地址栏输入URL后点击回车,浏览器会对输入的信息进行判断。第一步检查输入的内容是否是一个合法的URL链接。如果不合法,则将输入内容作为搜索条件,使用用户默认的搜索引擎来进行搜索。大部分的浏览器会在历史记录,书签等地开始查找我们输入的内容,并给出智能提示。第二步判断输入的URL是否完整。如果不完整,那么浏览器可能会对地址进行猜测,补全地址的前缀和后缀。

  • DNS解析

由于浏览器不能直接通过域名找到对应的服务器所在的IP地址,所以需要进行DNS解析,找到对应的IP地址进行访问。DNS是通过以下步骤来解析域名的:

首先用户在浏览器中输入域名,操作系统会检查缓存和本地的hosts文件中是否存在这个网址记录,如果有,就从记录中找到对应的IP地址完成域名的解析。如果不存在则使用TCP/IP参数中设置的DNS服务器进行查询,如果要查询的域名包含在本地配置区域资源中,则返回解析结果完成域名解析。如果还是没有的话,继续检查本地的DNS服务器中是否缓存有该网络记录,如果有返回解析结果完成域名解析。如果还是没有,本地DNS服务器则会发送查询报文到根DNS服务器,根DNS服务器收到请求后返回顶级域DNS服务器地址,然后本地DNS服务器再发送查询报文到顶级域DNS服务器,顶级域DNS收到请求后返回权威DNS服务器的地址,然后本地DNS服务器再发送查询报文到权威DNS服务器,权威DNS服务器收到请求后返回最终的IP地址,完成域名解析。

  • 建立TCP连接

当浏览器获取到服务器的IP地址后,浏览器会用一个随机的端口号向服务器80/443端口(http端口号为80,https端口为443)发起TCP连接请求,连接请求到达服务器端后,通过TCP三次握手建立TCP连接。

  • 发送http请求

建立连接后就可以通过http/https进行数据的传输了,若使用了https,会在TCP和http之间多增加一层协议作为加密和认证的服务。https使用SSL和TLS协议,保证了信息的安全,SSL协议的作用是认证客户端和服务器,确保数据发送到正确的客户端和服务器,加密数据防止数据被窃取,维护数据的完整性,确保数据在传输过程中不被改变。TLS协议的作用是用于两个通信应用程序之间提供数据保密性和数据完整性。TLS协议有两层,组成TLS记录协议和TLS握手协议

  • 服务端响应请求

当浏览器到Web服务器的连接建立后,浏览器会发送一个初始的HTTP GET请求,请求目标通常是HTML文件,服务器收到请求后,将发回一个HTTP响应报文,内容包括相关的响应头和HTML正文

  • 浏览器解析渲染界面

不同的浏览器渲染过程是不一样的,这里以谷歌浏览器(chrome)举例,第一步处理HTML标记并构建DOM树。第二步处理CSS标记并构建CSSOM树。第三步,将DOM树以CSSOM树合并为渲染树。第四步,根据渲染树来布局以计算每个节点的几何信息。第五步,将各个节点渲染到屏幕上,这样就完成了页面的渲染。

  • TCP断开连接

现在的浏览器界面为了优化请求的耗时默认都会打开持久连接,也就是标签页关闭时,TCP连接才会关闭,这个关闭的过程就是TCP四次挥手

避开这5个坑!Tushare金融数据获取与分析的常见错误排查指南 本文详细解析了使用Tushare进行金融数据获取与分析时常见的5个问题,包括Token失效、数据缺失、频率限制、数据一致性和性能瓶颈,并提供了实用的解决方案和优化策略。通过Python代码示例和最佳实践,帮助金融数据分析师和量化开发者高效避开这些陷阱,提升工作效率。 阅读详情

相关推荐

OpenNARS开源通用人工智能系统:非公理推理引擎实践指南

人工智能系统从基于规则推理到深度学习模型,始终围绕如何让机器具备智能决策能力。传统逻辑系统依赖公理和完备知识,而现实世界智能体需要在资源受限、信息不完备环境下进行推理。非公理推理系统(NARS)通过动态真值计算和信念修正机制,实现了在不确定性环境下的自主学习和决策。这种推理引擎的技术价值在于模拟人类思维的核心机制——归纳、演绎和学习,为通用人工智能(AGI)提供了不同于数据驱动的新路径。在应用场景上,NARS适用于游戏NPC决策、复杂系统故障诊断和自适应机器人控制等领域。OpenNARS作为NARS理论的开

weixin_31961675的博客 406

从浏览器输入网址到页面显示, 经历了什么?

当我们在浏览器中输入网址并按下回车键,从输入网址到页面显示这个过程包含了多个步骤。什么步骤???

洪晓鸿 3103

【SEED Labs 2.0】V*N Tunneling Lab

本文为 SEED Labs 2.0 - V*N Tunneling Lab 的实验记录。本实验工作量较大,但难度不大,重点在于搞清是谁发给谁,走的什么路径。另外,本次实验由于网络中的设备较多,修改了环境变量方便分清哪个窗口是哪个设备。这样操作起来就方便多了。...

Chenyang的博客 6971

从输入URL到浏览器显示页面的过程中都发生了什么?

用户在浏览器中输入一个 url 或直接点开一个 url 后,就可以看到网页内容了。虽然可以直接显示,但在这背后却经过了非常复杂的操作,主要有五大过程:

forever__fish的博客 1928

S.BUS协议及编解码,C语言源码

1、简介 SBUS本质是一种串口通信协议,采用100K的波特率,8位数据位,两位停止位,偶效验,即8E2的串口通信。 值得注意的有三点: 1.SBUS采用负逻辑,所以无论接收还是发送都要进行硬件取反(注意,一定要硬件取反),电路如下 这是我在网上看资料时看到的电路,实际上我用的是下面这个电路 2.SBUS有两种模式, a.高速模式:每4ms发送一次 b...

qq_31232793的博客 1万+

学习Python,小白如何搭建Python环境?

学习Python,首先需要搭建好Python环境,主要分为【运行环境搭建】、【开发环境搭建】以及【Python环境配置】三个环节,接下来我将对Python环境搭建这三个部分进行介绍。

weixin_72923265的博客 8997

从输入URL到页面显示发生了什么?

5. 客户端向服务器发送HTTP请求:客户端构建请求报文行和请求报文头,发送给服务器。在这个过程中,将Cookie等与请求域名相关的文件写入报文头中。如果是HTTPS连接,则还涉及到HTTPS的加密与解密;3.域名解析:进行域名解析,将网址请求的域名解析成IP地址。DNS解析会按照:本地浏览器缓存->本地Host文件->路由器缓存->DNS服务器->根DNS服务器的路径进行域名解析;2.检查本地缓存,若含有请求资源则直接返回,否则进行下一步网络请求;1. 输入网址,解析URL信息,准备发送网络请求;

Garvin_的博客 240

基于YOLO-world训练模型的完整教程:从数据准备到微调训练

本文提供了YOLO-world模型训练的完整教程,涵盖从环境配置到微调训练的全流程。首先介绍了YOLO-world项目的安装与配置步骤,包括依赖安装和CUDA环境设置;接着详细说明了数据集的准备方法,包括COCO格式数据集的组织结构和自定义数据集的类别定义;然后阐述了配置文件的修改要点,包括超参数调整和数据集路径设置;最后讲解了训练命令的使用方法及常见问题的解决方案。本教程旨在帮助读者快速掌握YOLO-world模型的训练技能,适用于计算机视觉领域的研究人员和开发者。

FJN110的博客 1107

输入网址到页面显示发生了什么(Spring)?

从输入网址到页面显示的详细过程

Ayden的博客 1428

ZeroClaw安装、使用方法详细全解

ZeroClaw 是一个用 Rust 编写的轻量级、高性能、完全自主的 AI 助手运行时框架

洛星核的博客 616

Jetson agx Orin 适配Xenomai4

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。

xiaoning132的专栏 465

当输入网址后,到网页显示,期间发生了什么

当输入网址后,到网页显示,期间发生了什么,你想知道数据包在中间经过了什么吗,仔细看看,对你应该会有帮助,干货建议反复阅读

小金的博客 886

【知识图谱】neo4j安装与配置_社区版_2025(附完整安装软件包)

(经历过各种版本NEO4J,遇见杂七杂八的各种问题,也看过非常多很好的教程,特此来分享一下,为大家排排坑。

知识靠谱的博客 2万+

(大众版本)从用户开始输入URL到最后屏幕上页面展示之间到底发生了什么?

当在计算机的浏览器输入URL(https://www.baidu.com)后,用户的计算机开始处理输入的URL,在本地查找是否有对应域名的IP地址,如果没有则向DNS服务器请求解析https://www.baidu.com对应的IP地址。计算机拿到对应域名的IP地址,然后向该IP地址的服务器发起请求,请求网址为:https://www.baidu.com。 该IP地址所对应的服务器对请求网址处理,然后向用户计算机返回相应的资源(一般包括HTML文档,CSS样式表,JS脚本文件,以及其他的图片资源,XHR请求

在前端路上 173

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

从输入URL到页面展示到底发生了什么

刚开始写这篇文章还是挺纠结的,因为网上搜索“从输入url到页面展示到底发生了什么”,你可以搜到一大堆的资料。而且面试这道题基本是必考题,二月份面试的时候,虽然知道这个过程发生了什么,不过当面试官一步步追问下去的,很多细节就不太清楚了。本文的目的是通过输入url之后发生的事情来做知识的总结和扩展。所以文章可能会很杂。

qq_38470315的博客 1093

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

从输入URL到展示出页面发生了什么

本文简单的描述了从输入URL到页面展示中间发生了什么

m0_49991895的博客 518

从输入URL到页面展示到底发生了什么?

这是一个老生常谈的问题,笔者今天对这个问题进行一个总结。整个过程可分为4个步骤,分别如下所示: 1. 域名解析 当我们在浏览器的输入框中输入网址的时候,浏览器其实已经在智能地匹配可能的URL了,它会从历史或者书签等地方查找可能对应的URL,给出一些智能提示,方便智能补全,部分浏览器甚至会直接从缓存中把网页显示出来。 请求一旦发起,浏览器首先要做的事情就是解析这个域名,即找到对应的 IP。...

黄飞的博客专栏 1388

从输入URL到页面展示中间发生了什么

其实这就是前端面试最常见的一道题,从输入URL到页面展示,这中间发生了什么? 在开始之前,我们先了解一下HTTP请求流程,下面是一个大体的流程: 构建请求 构建请求行信息 查找缓存 如果有请求的资源则拦截请求,返回资源,如果没有则继续请求。 准备IP地址和端口号 在网络请求之前,我们要建立TCP连接。因为HTTP其实就是把请求的文本信息封装起来,依靠TCP/IP传输。 建立TCP连接之前还需要IP地址和端口号。那这些又怎么来呢,就需要DNS域名解析。通常DNS域名解析也会被浏览器缓存。 等待TCP队列 当

qq_43558459的博客 267

输入一个url到呈现一个页面,到底发生了啥?

1. 输入阶段 输入第一个字符开始,浏览器会检索历史记录,显示匹配的地址(如果有的话) 输入完毕之后,浏览器会根据URL的规则判断输入的内容是搜索内容还是URL,如果是搜索内容,则回车之后通过默认的搜索引擎,拼接url跳转。如果是URL,则会加上协议(如果缺少的情况下),拼成完成的URL进行访问。 2. URL请求阶段 浏览器通过进程间的通信(IPC)把URL请求发送到网络进程,网络进程发起真正的URL请求。 发起请求前,网络进程根据请求的URL查询是否缓存了该资源。如果有,那么直接返回资源给浏览

ky1in93的博客 4625

从输入 URL 到页面展示,这中间发生了什么?

从输入 URL 到页面展示,这中间发生了什么?

KaiSarH 714

从输入URL到页面展示,这中间发生了什么?

文章目录1. 开篇小结2. 从输入URL到页面展示2.1 用户输入 1. 开篇小结 “在浏览器里,从输入 URL 到页面展示,这中间发生了什么? ”这是一道经典的面试题,其中涉及到了网络、操作系统、Web 等一系列的知识。 今天我们就一起来探索下这个流程,下图是我梳理出的“从输入 URL 到页面展示完整流程示意图”: 从图中可以看出,整个过程需要各个进程之间的配合,所以在开始正式流程之前,我们还是先来快速回顾下浏览器进程、渲染进程和网络进程的主要职责。 浏览器进程主要负责用户交互、子进程管理和文件储存等

鸭绒的博客 689

面试必问:从输入URL到页面展示,这中间发生了什么?(详细易懂,条理好记)

导航流程:从输入URL到页面展示,这中间发生了什么? 一 进程介绍 整个过程需要各个进程之间的配合。 进程与线程是两个概念,程序启动时,操作系统为程序创建内存,用以存放代码、运行中的数据和执行任务的线程,这样的一个运行环境叫进程。 目前浏览器皆为多进程浏览器,也就是浏览器的运行需要多个进程同时协作,共同运行。 1.1 浏览器进程 浏览器进程主要负责用户交互、子进程管理和文件储存等功能。 1.2 网络进程 网络进程是面向渲染进程和浏览器进程等提供网络下载功能。 TCP请求就是在网络进程中完成的。 1.3

技术圈 1141

一·从输入url到页面展示到底发生了什么

第一步·在浏览器的地址栏中输入URL   首先我们要知道URL是什么,URL(Uniform Resource Locator),统一资源定位符,用于定位互联网上的资源,实际上就是网站网址。url的格式一般为: 协议类型://主机名>:端口>//文件名   其中协议类型可以是http(超文本传输协议)、https、ftp(文件传输协议)、telnet(远程登录协议)、file等等、.//

侯建豪的博客 564

从输入url到页面展示到底发生了什么

当前文章转载自:https://www.cnblogs.com/xianyulaodi/p/6547807.html 刚开始写这篇文章还是挺纠结的,因为网上搜索“从输入url到页面展示到底发生了什么”,你可以搜到一大堆的资料。而且面试这道题基本是必考题,二月份面试的时候,虽然知道这个过程发生了什么,不过当面试官一步步追问下去的,很多细节就不太清楚了。   最近刚好也在看http协议相关的东西,...

码小呆的博客 412

简述从URL输入到页面展现发生了什么

简述 简单来说,发生了三件事情 浏览器将请求发送到服务器 服务器根据请求返回对应的内容 浏览器将返回的内容解析成我们所见的页面 面试的时候有些面试官会问这个问题,可按如下流程作答: 1、首先,在浏览器地址栏中输入url 2、浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容。若没有,则跳到第三步操作。 3、在发送http请求前,需要域名解析(DNS...

Neekky的博客 215
上一篇: TCP/IP模型和OSI模型
下一篇: http请求报文和响应报文是怎样的
himselfd
博客等级 码龄4年 135粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值