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

一、相关衍生面试问题:

浏览器输入美团网站,从回车到浏览器展示经历了哪些过程 ?

http输入网页之后的流程?

百度搜索页面,从点开搜索框,到显示搜索页面经历了什么?

二、探究各个过程:

(以下回答针对问题1回答)

1. DNS 解析

  • 浏览器首先会检查本地 DNS 缓存,看是否有美团网站的 IP 地址。如果没有,则会向本地 DNS 服务器发送请求,查询美团网站的域名对应的 IP 地址。
  • 本地 DNS 服务器可能无法直接找到美团网站的 IP 地址,它会向根域名服务器发送请求,根域名服务器会指引本地 DNS 服务器去查询 .com 域名的顶级域名服务器。
  • 顶级域名服务器会指引本地 DNS 服务器去查询美团网站的域名服务器。
  • 美团网站的域名服务器会最终返回美团网站的 IP 地址给本地 DNS 服务器。
  • 本地 DNS 服务器将 IP 地址返回给浏览器,并将其缓存起来。

【涉及到的相关知识:

1.DNS缓存:存储近期浏览、连接过的网站服务器的IP用的一个缓存系统。浏览器会尽可能利用缓存来提高性能,减少不必要的网络请求和DNS解析。

2.域名服务器:根域名服务器、顶级域名服务器(org\com\edu)、权限域名服务器、本地域名服务器[迭代查询(常用) | | 递归查询]。

3.DNS解析:用来把便于人们记忆的主机域名和电子邮件地址映射为计算机易于识别的IP地址。

2. 建立 TCP 连接

  • 浏览器使用获得的 IP 地址,尝试与美团网站的服务器建立 TCP 连接。
  • 浏览器会发送一个 SYN 包(同步请求)到服务器,服务器收到后会回复一个 SYN-ACK 包(同步确认)。
  • 浏览器收到 SYN-ACK 包后,会发送一个 ACK 包(确认),完成三次握手过程,建立 TCP 连接。

【相关知识点:

1.三次握手的原因:首要原因是为了防止旧的重复连接初始化造成混乱,最主要原因就是防止「历史连接」初始化了连接

2.每次建立 TCP 连接时,初始化的序列号都要求不一样:为了防止历史报文被下一个相同四元组的连接接收(主要方面);为了安全性,防止黑客伪造的相同序列号的 TCP 报文被对方接收。

3.SYN攻击属于DDoS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。【最直接的表现就会把 TCP 半连接队列打满,这样当 TCP 半连接队列满了,后续再在收到 SYN 报文就会丢弃,导致客户端无法和服务端建立连接。】

  • 半连接队列,也称 SYN 队列;
  • 全连接队列,也称 accept 队列;

4.避免办法:

  • 调大 netdev_max_backlog;
  • 增大 TCP 半连接队列;
  • 开启 tcp_syncookies;
  • 减少 SYN+ACK 重传次数

3. 发送 HTTP 请求

  • 浏览器向美团网站的服务器发送一个 HTTP 请求,包含以下信息:
    • 请求方法:GET
    • 请求 URL:美团网站的首页地址
    • 请求头:包含一些浏览器信息、语言信息、Cookie 信息等。
  • 服务器收到请求后,会根据请求信息进行处理。

【相关知识点:

1.post、get、put、delete就是对这个资源进行增、删、改、查的操作!

2.URI 用字符串标识某一互联网资源【身份证号】,而 URL 表示资源的地点【居住地址】

3.Cookie为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息

4. 服务器处理请求

  • 服务器会根据请求 URL,找到对应的页面文件。
  • 服务器会根据页面文件的内容,生成 HTML 代码。
  • 服务器会根据请求头中的 Cookie 信息,判断用户是否已登录,并根据用户状态,添加一些个性化的内容到 HTML 代码中。
  • 服务器会根据请求头中的语言信息,选择合适的语言版本。

【相关知识点:

1.跨站请求伪造(Cross-Site Request Forgery,简称CSRF)是指,攻击者可能利用网页中的恶意代码强迫受害者浏览器向被攻击的Web站点发送伪造的请求,篡夺受害者的认证Cookie等身份信息,从而假冒受害者对目标站点执行指定的操作。

2.保护措施主要有:(1 )加入MAC以进行完整性校验;(2)防止非法用户非法截获后的重放,可以让用户对相关信息进行数字签名,加强有效性验证;(3)对Cookie本身进行随机密钥加密,保证Cookie本身的信息安全。

5. 服务器返回响应

  • 服务器将生成的 HTML 代码,以及一些其他信息(例如图片、CSS、JavaScript 文件等),打包成 HTTP 响应,发送回浏览器。
  • 响应头包含一些状态码、内容类型、缓存信息等。

6. 浏览器解析响应

  • 浏览器收到响应后,会解析响应头中的状态码。
    • 如果状态码为 200,表示请求成功,浏览器会继续解析响应内容。
    • 如果状态码为 404,表示页面未找到,浏览器会显示错误页面。
  • 浏览器会解析响应内容中的 HTML 代码,并将其渲染成网页。
  • 浏览器会加载响应内容中的图片、CSS、JavaScript 文件,并将其应用到网页中。

【相关知识点:

  • 1xx(信息性状态码):表示接收的请求正在处理。
  • 2xx(成功状态码):表示请求正常处理完毕。
  • 3xx(重定向状态码):需要后续操作才能完成这一请求。
  • 4xx(客户端错误状态码):表示请求包含语法错误或无法完成。
  • 5xx(服务器错误状态码):服务器在处理请求的过程中发生了错误。

7. 网页展示

  • 浏览器将渲染好的网页展示给用户。

8. 持续交互

  • 用户在网页上进行操作,例如点击链接、提交表单等,浏览器会发送新的 HTTP 请求到服务器,服务器会根据请求进行处理,并返回新的响应,浏览器会继续更新网页内容。

三、面试回答:

  1. 用户在浏览器地址栏输入"meituan.com"并按下回车键。

  2. 浏览器首先会查看自己的缓存,看是否之前已经访问过这个网站并缓存了相关资源。如果缓存中有相关的资源,浏览器就可以直接使用缓存中的内容,无需进行其他操作。

  3. 如果缓存中没有找到所需的资源,浏览器就需要进行DNS解析,查找"meituan.com"对应的IP地址。这个过程中,浏览器会先查看本地DNS缓存,如果没有找到就会向DNS服务器发起查询请求。

  4. 获得IP地址后,浏览器会向该IP地址发起HTTP请求,向web服务器请求获取"meituan.com"网页的内容。

  5. web服务器收到请求后,会处理并生成相应的HTML页面内容,然后将其返回给浏览器。

  6. 浏览器收到HTML页面内容后,会对其进行解析和渲染,构建出网页的DOM树并显示出来。

  7. 在渲染网页的过程中,还可能需要加载额外的资源,如CSS文件、JavaScript文件、图片等。对于这些资源,浏览器也会遵循之前的流程,先检查缓存,再进行DNS解析和网络请求。

  8. 当所有必需的资源都加载完毕后,浏览器就能将完整的网页呈现给用户。

【下图为代码随想录推荐回答:】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/639011.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[Algorithm][回溯][记忆化搜索][最长递增子序列][猜数字大小Ⅱ][矩阵中的最长递增路径]详细讲解

目录 1.最长递增子序列1.题目链接2.算法原理详解3.代码实现 2.猜数字大小 II1.题目链接2.算法原理详解3.代码实现 3.矩阵中的最长递增路径1.题目链接2.算法原理详解3.代码实现 1.最长递增子序列 1.题目链接 最长递增子序列 2.算法原理详解 题目解析:从每个位置&am…

【BUG】Edge|联想电脑 Bing 搜索报错“Ref A: 乱码、 Ref B:乱码、Ref C: 日期” 的解决办法

文章目录 省流版前言解决办法 详细解释版前言问题描述与排查过程解决办法与总结 省流版 我原以为我解决了,才发的博客,晚上用了一下其他设备发现还是会出现这个问题… 这篇博客并未解决该问题,如果评论里有人解决了这个问题不胜感激&#x…

博客说明 5/12~5/24【个人】

博客说明 5/12~5/24【个人】 前言版权博客说明 5/12~5/24【个人】对比最后 前言 2024-5-24 13:39:23 对我在2024年5月12日到5月24日发布的博客做一下简要的说明 以下内容源自《【个人】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作…

Undet for SketchUp 2023.3 点云建模软件 支持支持草图大师sketchup2021-2022-2023

1.Undet for sketchup 2023.3支持草图大师sketchup2021-2022-2023。支持机载雷达扫描、车载扫描还是地面扫描,对AEC行业用户来说,真正需要的是如何将这些数据快速处理为三维模型,这样才能将这些信息延展到BIM领域发挥效用。因此面对这些海量的…

【真实项目中收获的提升】- 前后端联调

场景 小型项目前后端联调,不需要部署到sit或uat环境下。 解决方法 后端部署frp服务 下载frp软件 配置frpc.ini文件,先把文件设置可编辑(可同时配置多个 例如下面的chz 上面打码的是frp服务器地址) 然后起start.bat 其实就是执行frpc -c frpc.ini命令…

4、PHP的xml注入漏洞(xxe)

青少年ctf&#xff1a;PHP的XXE 1、打开网页是一个PHP版本页面 2、CTRLf搜索xml&#xff0c;发现2.8.0版本&#xff0c;含有xml漏洞 3、bp抓包 4、使用代码出发bug GET /simplexml_load_string.php HTTP/1.1 补充&#xff1a; <?xml version"1.0" encoding&quo…

DockerNetwork

Docker Network Docker Network 是 Docker 引擎提供的一种功能&#xff0c;用于管理 Docker 容器之间以及容器与外部网络之间的网络通信。它允许用户定义和配置容器的网络环境&#xff0c;以便容器之间可以相互通信&#xff0c;并与外部网络进行连接。 Docker Network 提供了以…

docker容器安装mysql

linux: centOS-7 hadoop: 3.3.6 前置章节&#xff1a; (图文并茂)基于CentOS-7搭建hadoop3.3.6大数据集群-CSDN博客 可选&#xff1a;zookeeper安装教程-CSDN博客 1.安装docker 1.1 添加docker的repo源 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/…

猫狗电子玩具底层方案开发

物在现代年轻人中的地位已经超越了简单的“宠物”定义&#xff0c;它们已经成为了家庭的一部分&#xff0c;是人们生活中不可或缺的伴侣和朋友。 因此营运而生了很多宠物用品&#xff0c;比如喂食器、电子逗猫棒、饮水机、说话按钮等等宠物电子玩具周边。宠物玩具在宠物生活中…

Python-3.12.0文档解读-内置函数hash()详细说明+记忆策略+常用场景+巧妙用法+综合技巧

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 详细说明 功能描述 参数 返回值 特性 使用示例 注意事项 记忆策略 常用场景 …

【数学建模】储药柜的设计

2014高教社杯全国大学生数学建模竞赛D题目 题目描述 储药柜的结构类似于书橱&#xff0c;通常由若干个横向隔板和竖向隔板将储药柜分割成若干个储药槽(如图1所示)。为保证药品分拣的准确率&#xff0c;防止发药错误&#xff0c;一个储药槽内只能摆放同一种药品。药品在储药槽…

SpringBoot实现增量部署

目录&#xff1a; 1、使用背景2、实现流程3、部署增量包到项目中并启动4、说明 1、使用背景 最近发现公司发布版本时候&#xff0c;很齐全&#xff0c;接口文档&#xff0c;部署方式等都很好&#xff0c;其中有个增量部署包&#xff0c;有点兴趣&#xff0c;不清楚怎么生成增量…

vue3+ts+vant4 实现购物车 前端代码

一、功能效果 二、前端代码 购物车的vue代码 <template><van-nav-bar left-text"返回" title"购物车" click-left"onClickLeft"><template #right><van-popover v-model:show"showPopover" placement"bot…

SQLite数据库免改造透明加密解决方案:给数据加把锁

在数字化时代&#xff0c;信息安全和隐私保护显得尤为重要。TDE透明加密技术&#xff0c;是一种在用户无感知的情况下对数据进行加密和解密的技术。它能够在数据生成、存储、传输和使用过程中自动进行加密处理&#xff0c;无需用户手动操作。透明加密技术的核心在于其透明性&am…

登录接口测试

登录接口测试 数据驱动

java spring cloud 企业工程管理系统源码+二次开发+定制化服务 em

在建筑行业中&#xff0c;工程项目管理软件&#xff08;工程项目管理系统&#xff09;扮演着至关重要的角色&#xff0c;它为建设工程项目管理提供了全方位、全过程的综合管理支持。从项目组织建设、策划决策、规划设计&#xff0c;到施工建设、竣工交付、总结评估&#xff0c;…

丰田精益生产的模板

丰田精益生产&#xff0c;也被称为丰田生产方式&#xff08;Toyota Production System, TPS&#xff09;&#xff0c;是一套完整的生产和管理系统&#xff0c;其核心目标是最大化效率、消除浪费&#xff0c;并通过持续改进来提升产品质量。 学习优秀企业 学习福特 丰田精益生产…

Java对象大小计算与MAT内存泄露分析

文章目录 JVM内存布局对象头实例数据对齐填充 计算实例数组占用内存大小String占用内存大小对象占用内存计算 使用jmap的方式查看Instrumentation计算对象内存方式MAT内存分析示例 JVM内存布局 一个对象主要包含下面3个部分&#xff1a; 对象头(Header)实例数据(Instance Dat…

WAF绕过(下)

过流量检测 这里的流量检测就是在网络层的waf拦截到我们向webshell传输的数据包&#xff0c;以及webshell返回的数据 包&#xff0c;检测其中是否包含敏感信息的一种检测方式。如果是大马的情况下&#xff0c;可以在大马中添加多处判断代码&#xff0c;因此在执行大马提供的功…

最新FinalShell专业版激活

支持的版本 可以激活任意版本的FinalShell为专业版&#xff0c;包括最新版4.3.10 激活方式 打开FinalShell&#xff0c;点击左下角 激活/升级。 账号密码任意输入几个字符&#xff0c;点离线激活。 复制机器码&#xff0c;将机器码发送给微信公众号【小白学算法】见文章末…