【网络面试篇】从输⼊ URL 到⻚⾯展示到底发⽣了什么?

目录

一、大致流程

1. 流程概述

2. 全流程描述

二、流程解析

1. URL 解析

2. DNS 查询

3. TCP 连接

4. 渲染页面


一、大致流程

1. 流程概述

(1)URL 解析

(2)DNS 查询

(3)TCP 连接

(4)处理请求

(5)接受响应

(6)渲染页面

2. 全流程描述

      1. 浏览器接收到用户请求,先检查浏览器缓存里是否有缓存该资源,如果有直接返回;如果没有进入下一步网络请求。

      2. 网络请求前,进行 DNS 解析,以获取 请求域名的 IP 地址。如果 请求协议是 HTTPS,那么还需要建立 TLS 连接。DNS 解析时 会按 本地浏览器缓存 -> 本地 Host 文件-> 路由器缓存 -> DNS 服务器 -> 根 DNS 服务器 的顺序 查询域名 对应 IP,直到 找到为止。

      3. 浏览器 与 服务器 IP 建立 TCP 连接。连接建立后,浏览器端会 构建 请求行、请求头 等信息,并把 和 该域名相关的 Cookie 等数据 附加到 请求头中,向服务器 构建请求信息。

      4. 服务器 接收到 请求信息,根据 请求生成 响应数据。

      5. 浏览器 解析响应头。若响应头状态码为 301、302,会重定向到 新地址;若 响应数据类型是 字节流类型,一般会将请求提交给 下载管理器;若是 HTML 类型,会进入 下一部 渲染流程。

      6. 浏览器解析 HTML 文件,创建 DOM 树,解析 CSS 进行样式计算,然后将 CSS 和 DOM 合并,构建渲染树;最后布局和绘制渲染树,完成 页面展示。

二、流程解析

1. URL 解析

        URI 格式由 URI 协议名(例如 http、ftp、maito、file),一个冒号,和 协议对应的 内容所构成。特定的协议 定义了 协议内容的 语法和语义。

URL 的格式由下列三部分组成:

  • 第一部分是 协议(或称为服务方式)。
  • 第二部分是 存有该资源的 主机 IP 地址(有时也 包括 端口号)。
  • 第三部分是 主机资源的 具体地址。

具体 URI 的格式如下:

[协议名]://[用户名]:[密码]@[服务器地址]:[服务器端口号]/[路径]?[查询字符串]#[片段ID]

例如:scheme://host.domain:port/path/filename
① scheme - 定义因特网服务的类型。常见的协议有 http、https、ftp、file。
② host - 定义域主机(http 的默认主机是 www)
③ domain - 定义因特网域名,比如 http://baidu.com
④ port - 定义主机上的端口号(http 的默认端口号是 80)
⑤ path - 定义服务器上的路径(如果省略,则文档必须位于网站的根目录中)。
⑥ filename - 定义文档/资源的名称

2. DNS 查询

        ISP DNS 就是在客户端电脑上设置的首选 DNS 服务器,它们在大多数情况下都会有缓存。

3. TCP 连接

4. 渲染页面

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

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

相关文章

「C/C++」C/C++标准库之#include<cstdlib>通用工具库

✨博客主页何曾参静谧的博客📌文章专栏「C/C」C/C程序设计📚全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…

消息会话—发送消息自动滚动到最底部

背景 在项目开发中,实现用户友好的输入交互是提升用户体验的关键之一。例如,在消息会话页面中,为了确保用户在发送新消息后页面能自动滚动到最底部,从而始终保持最新消息的可见性,需要实现自动滚动功能。这不仅提升了…

【教程】如何查看IEEE会员证书Membership Card

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 1、先打开以下网站,并登录你的账号: https://www.ieee.org/profile/myprofile/myprofile.html 2、如果你没有缴费注册会员&…

ENGAGE SHE连锁品牌盛启,寻找更多城市合伙人

在这个充满个性与品质追求的时代,饰品已悄然超越了单纯装饰的范畴,它成为了每个人独特个性的展现,是生活态度的鲜明宣言。自2021年成立以来,ENGAGE SHE凭借其“自在、自然、清新”的独特品牌风格,以及“简约、品质、设计”的核心理念,迅速在时尚界掀起了一股清新之风,赢得了无数…

Segugio:一款针对恶意软件的进程执行跟踪与安全分析工具

关于Segugio Segugio是一款功能强大的恶意软件安全分析工具,该工具允许我们轻松分析恶意软件执行的关键步骤,并对其进行跟踪分析和安全审计。 Segugio允许执行和跟踪恶意软件感染过程中的关键步骤,其中包括从点击第一阶段到提取恶意软件的最…

中航资本:什么是主板创业板及科创板?主板创业板及科创板有什么区别?

什么是主板创业板及科创板? 主板、创业板和科创板都是股票商场的组成部分。 主板商场分为沪市主板和深市主板,首要服务与有安稳的盈利才华、较大的本钱规划和较强的商场竞争力的企业。 创业板首要服务于成长型、中小型、高新技术企业等,包…

1.3 面向对象 C++面试问题

1.3.1 简述一下什么是面向对象,面向对象与面向过程的区别 什么是面向对象 面向对象(Object-Oriented Programming,OOP)是一种编程范式,它通过将现实世界中的实体抽象为“对象”来组织代码。面向对象编程关注对象及其交互&#x…

酷睿 Ultra 200S核显相当于GTX 1050Ti?4核心表现出人意料

原文转载修改自(更多互联网新闻/搞机小知识): 酷睿 Ultra 200S核显评测,GTX 1050Ti水平能玩3A 酷睿 Ultra 200S系列CPU是真没什么好聊的,不过作为陪衬,毫无存在感的Arc核显倒还算真的有点意思,…

netty之导入源码到idea

写在前面 本文看下如何导入netty源码到idea中。 1:环境准备 idea:IntelliJ IDEA 2021.1 (Ultimate Edition) jdk:1.8 netty:4.1.58.Final os:win102:开始 2.1:下载netty源码 点击。 2.2&…

k8s部署使用有状态服务statefulset部署eureka集群,需登录认证

一、构建eureka集群镜像 1、编写dockerfile文件,此处基础镜像为arm版本,eureka目录中文件内容:application-dev.yml、Dockerfile、eureka-server-1.0-SNAPSHOT.jar(添加登录认证模块,文章最后附上下载连接) FROM mdsol/java8-j…

Spring Boot驱动的厨艺社交平台设计与实现

5 系统实现 5.1食材分类管理 管理员管理食材分类,可以添加,修改,删除食材分类信息。下图就是食材分类管理页面。 图5.1 食材分类管理页面 5.2 用户信息管理 管理员管理用户信息,可以添加,修改,删除用户信…

《性能之巅:洞悉系统、企业与云计算》-应用程序-笔记

《性能之巅:洞悉系统、企业与云计算》第一章(绪论)和第二章(方法)的笔记,请参考Part 1,第三章(操作系统)的笔记,请参考Part 2,第四章(…

Python小游戏14——雷霆战机

首先,你需要确保安装了Pygame库。如果你还没有安装,可以使用pip来安装: bash pip install pygame 代码如下: python import pygame import sys import random # 初始化Pygame pygame.init() # 设置屏幕大小 screen_width 800 scr…

传输层UDP

再谈端口号 端口号:标识了主机上进行通信的不同的应用程序 在TCP/IP 协议中我们用“源IP”"源端口号" “目的IP”“目的端口号” “协议号”五元组来标识一个通信 用netstat -n 查看 查看网络信息,我们有两种命令查看网络通信1.用netsta…

协同推理:模型切分算法;任务调度算法

目录 协同推理 模型切分算法 任务调度算法 优化目标 协同推理 协同推理算法涉及模型切分算法和任务调度算法,它们的主要优化目标包括性能、动态环境中推理延迟的鲁棒性和能耗等。以下是对这两类算法及其优化目标的详细阐述: 模型切分算法 模型切分算法旨在将复杂的深度…

【论文阅读】jina-embeddings-v3: Multilingual Embeddings With Task LoRA

#1024程序员节|征文# jina-embeddings-v3: Multilingual Embeddings With Task LoRA Abstract1 Introduction2 Related Work2.1 General Text Embeddings2.2 Multilingual Embedding Models2.3 Task-Specific Embedding Models 3 Model Architecture4 Training Meth…

虚拟现实在制造业中的应用

当你想到制造业中的虚拟现实技术时,你脑海中闪过的第一个念头是什么?从目前来看,只需几年时间,制造业就将离不开虚拟现实技术的帮助。实施虚拟现实应用对制造业来说都有诸多好处。通常情况下,制造设施都是由各种机器组…

【专题】关系模型的基本理论

1. 关系模型基本概念 1.1 基本术语 关系(Relation):用于描述数据的一张二维表。 表中每一行称为元组; 表中每一列称为属性。 域(Domain):指属性的取值范围。 候选键(Candidate …

六,Linux基础环境搭建(CentOS7)- 安装HBase

Linux基础环境搭建(CentOS7)- 安装HBase 大家注意以下的环境搭建版本号,如果版本不匹配有可能出现问题! 一、HBase下载及安装 HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文…

YoloV8改进策略:Block改进|RFE模块|即插即用

摘要 论文介绍 本文介绍了一种基于YOLOv5的人脸检测方法,命名为YOLO-FaceV2。该方法旨在解决人脸检测中的尺度变化、简单与困难样本不平衡以及人脸遮挡等问题。通过引入一系列创新模块和损失函数,YOLO-FaceV2在WiderFace数据集上取得了优异的表现&…