从浏览器输入一个URL到最终展示出页面,中间会发送哪些事儿?

news2024/11/26 4:34:02

文章目录

  • 前言
  • 一. DNS域名解析
  • 二. 进行封装
  • 三. 进行传输
  • 四. 到达服务器后层层分用
  • 五. 服务器把响应数据重新封装
  • 六. 响应数据进行传输
  • 七. 到达客户端层层分用
  • 八. 将网页渲染到浏览器上

前言

当你输入一个网址:www.baidu.com时,浏览器究竟做了哪些工作才可以得到以下这个页面呢?
在这里插入图片描述

下面给大家详细介绍:

一. DNS域名解析

网络上的设备都是通过IP地址作为身份标识的,但是IP地址不好记、也不好传播。所以就发明了“域名”来表示这个IP地址,方便人们记忆和使用。

DNS系统的功能就是把域名自动转化成IP地址。

二. 进行封装

在这里插入图片描述

浏览器根据IP地址构造出HTTP数据报,交给传输层TCP协议进行处理;
TCP通过“三次握手”建立连接,再加上TCP报头,交给网络层IP协议进行处理;
IP协议加上IP报头,交给数据链路层以太网协议进行处理;
以太网把数据报分装成对应的数据帧,最终通过网卡传输出去。

三. 进行传输

传输的过程会通过交换机和路由器经过一些局域网。

交换机会把数据分用到数据链路层(更上层的就不分用了),调整源mac地址和目的mac地址,再重新封装继续转发。

路由器会把数据分用到网络层(更上层的就不分用了),把目的IP解析出来,查询路由表。路由器根据数据报中的目的IP地址在路由表中匹配,选择合适的方向转发出去,每次转发TTL减1

四. 到达服务器后层层分用

在这里插入图片描述

服务器经过层层分用得到HTTP数据,根据这个数据找到你想要访问的那个资源(这就是根据请求计算相应的过程),再把资源构造成HTTP响应。

五. 服务器把响应数据重新封装

在这里插入图片描述
服务器根据IP地址构造出HTTP数据报,交给传输层TCP协议进行处理;
TCP协议再加上TCP报头,交给网络层IP协议进行处理;
IP协议加上IP报头,交给数据链路层以太网协议进行处理;
以太网把数据报分装成对应的数据帧,最终通过网卡传输出去。
传输出去后,TCP进行“四次挥手”断开连接。

六. 响应数据进行传输

传输的过程会通过交换机和路由器经过一些局域网。

交换机会把数据分用到数据链路层(更上层的就不分用了),调整源mac地址和目的mac地址,再重新封装继续转发。

路由器会把数据分用到网络层(更上层的就不分用了),把目的IP解析出来,查询路由表。路由器根据数据报中的目的IP地址在路由表中匹配,选择合适的方向转发出去,每次转发TTL减1

七. 到达客户端层层分用

在这里插入图片描述

客户端经过层层分用得到HTTP数据。

八. 将网页渲染到浏览器上

将HTTP数据中传递过来的HTML、CSS、JS和业务数据进行解析,最终渲染在浏览器页面上。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ Qt 学习(四):自定义控件与 qss 应用

1. qss 简介 Qt style sheet(qss,Qt 样式表),不需要用 C 代码控件进行重载,就可以修改控件外观,类似于前端的 css 2. qss 选择器 2.1 通配符选择器 /* 设置后控件窗口背景色都被修改为黄色 */ * {backg…

如何在Android平板上远程连接Ubuntu服务器code-server进行代码开发?

文章目录 1.ubuntu本地安装code-server2. 安装cpolar内网穿透3. 创建隧道映射本地端口4. 安卓平板测试访问5.固定域名公网地址6.结语 1.ubuntu本地安装code-server 准备一台虚拟机,Ubuntu或者centos都可以,这里以VMwhere ubuntu系统为例 下载code serve…

Vue3使用vue-print-nb插件打印功能

插件官网地址https://www.npmjs.com/package/vue-print-nb 效果展示: 打印效果 根据不同的Vue版本安装插件 //Vue2.0版本安装方法 npm install vue-print-nb --save pnpm install vue-print-nb --save yarn add vue-print-nb//Vue3.0版本安装方法: npm install vue3…

CentOS Linux 系统镜像

CentOS Linux具有以下特点: 稳定性:CentOS Linux旨在提供一个稳定、可靠的服务器环境,适合用于关键业务应用和生产环境。高效性:CentOS Linux经过优化和调整,可以充分发挥硬件的性能,提高系统的整体效率。…

2023 年最新腾讯官方 QQ 机器人(QQ 群机器人 / QQ 频道机器人)超详细开发教程

注册 QQ 开放平台账号 QQ 开放平台是腾讯应用综合开放类平台,包含 QQ 机器人、QQ 小程序、QQ 小游戏 等集成化管理,也就是说你注册了QQ 开放平台,你开发 QQ 机器人还是 QQ 小程序都是在这个平台进行部署上线和管理。 如何注册 QQ 开放平台账…

element ui:常用的组件使用情况记录

前言 将element ui使用过程中一些常用的组件使用情况记录如下 组件 el-tree树组件 树父子节点成一列显示 没有进行设置之前显示效果 设置之后显示效果 ​​​​ 主要代码如下 <el-treeicon-class"none"expand-on-click-node"false"style"…

【uniapp/uview】Collapse 折叠面板更改右侧小箭头图标

最终效果是这样的&#xff1a; 官方没有给出相关配置项&#xff0c;后来发现小箭头不是 uview 的图标&#xff0c;而是 unicode 编码&#xff0c;具体代码&#xff1a; // 箭头图标 ::v-deep .uicon-arrow-down[data-v-6e20bb40]:before {content: \1f783; }附一个查询其他 u…

HTML+CSS、Vue+less+、HTML+less 组件封装实现二级菜单切换样式跑(含全部代码)

一、HTMLCSS二级菜单 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Document</title><…

蓝桥杯国一,非ACMer选手保姆级经验分享

目录 一、前言二、蓝桥杯简介三、0基础计算机新手小白&#xff0c;赛前如何准备提高自己的获奖率&#xff1f;3.1 每两周参加一次【蓝桥算法双周赛】3.2 多练真题3.3 参加每一场官方校内模拟赛 四、结语 一、前言 hello&#xff0c;大家好&#xff0c;我是大赛哥(弟)&#xff…

2023.11-9 hive数据仓库,概念,架构

目录 一.HDFS、HBase、Hive的区别 二.大数据相关软件 三. Hive 的优缺点 1&#xff09;优点 2&#xff09;缺点 四. Hive 和数据库比较 1&#xff09;查询语言 2&#xff09;数据更新 3&#xff09;执行延迟 4&#xff09;数据规模 五.hive架构流程 六.MetaStore元…

Could not load library libcudnn_cnn_train.so.8, 解决类似问题的思路与方法

完整报错 Could not load library libcudnn_cnn_train.so.8. Error: /home/ai/anaconda3/envs/ai/bin/../lib/libcudnn_ops_train.so.8: undefined symbol: _ZN5cudnn3ops26JoinInternalPriorityStreamEP12cudnnContexti, version libcudnn_ops_infer.so.8 错误原因 该错误其…

Tcl语言:基础入门(一)

Tcl语言https://blog.csdn.net/weixin_45791458/category_12488978.html?spm1001.2014.3001.5482 Tcl语言是一种脚本语言&#xff0c;类似于Bourne shell(sh)、C shell&#xff08;csh&#xff09;、Bourne-Again Shell(bash)等UNIX shell语言。Shell程序主要作为胶水缝合其他…

[100天算法】-定长子串中元音的最大数目(day 67)

题目描述 给你字符串 s 和整数 k 。请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。英文中的 元音字母 为&#xff08;a, e, i, o, u&#xff09;。示例 1&#xff1a;输入&#xff1a;s "abciiidef", k 3 输出&#xff1a;3 解释&#xf…

Excel和Chatgpt是最好的组合。

内容来源&#xff1a;bitfool1 Excel和Chatgpt是最好的组合。 您可以轻松地自动化数据处理。 我向您展示如何在不打字公式的情况下将AI与Excel一起使用&#xff1a; 建立chatgpt 主要目的是使用Chatgpt自动编写Excel宏。 这消除了键入公式的需求&#xff0c;并让您在自然语言…

53基于matlab的Tamura纹理特征提取

基于matlab的Tamura纹理特征提取&#xff0c;包括粗糙度、对比度、方向度、线性度、规则度、粗糙度六种&#xff0c;可替换自己的数据进行特征提取。程序已调通&#xff0c;可直接运行。 53 方向度、线性度、规则度 (xiaohongshu.com)

axios请求的问题

本来不想记录&#xff0c;但是实在没有办法&#xff0c;因为总是会出现post请求&#xff0c;后台接收不到数据的情况,还是记录一下如何的解决的比较好。 但是我使用export const addPsiPurOrder data > request.post(/psi/psiPurOrder/add, data); 下面是封装的代码。后台接…

系列一、Shiro概述

一、概述 Shiro是一款主流的Java安全框架&#xff0c;不依赖任何容器&#xff0c;可以运行在JavaSE 和 JavaEE项目中&#xff0c;它的主要作用是对访问系统的用户进行身份认证、授权、会话管理、加密等操作。 一句话&#xff1a;Shiro是一个用来解决安全管理的系统框架&#x…

洛谷P4185 离线+并查集

好题&#xff0c;发现没有强制在线&#xff0c;可以离线操作 排序之后带集合点数的并查集就好了 #include<bits/stdc.h> using namespace std; const int N 1e510; int n,m; int p[N],sz[N];int find(int x){if(x!p[x])p[x] find(p[x]);return p[x]; } struct Node{in…

【自动控制原理】时域分析法:稳定性分析(稳)、误差分析和计算(准)

文章目录 第3章 时域分析法3.1 基本概念3.2~4 一阶、二阶、高阶系统的时间响应及动态性能3.6 稳定性分析——稳3.6.1. 稳定性的定义3.6.2 稳定性的条件3.6.3 劳斯稳定判据首列出现0&#xff0c;但该行不全为0首列出现0&#xff0c;且该行全为0 3.5 误差分析和计算——准3.5.1稳…

矢量图形编辑软件Boxy SVG mac中文版软件特点

Boxy SVG mac是一款基于Web的矢量图形编辑器&#xff0c;它提供了一系列强大的工具和功能&#xff0c;可帮助用户创建精美的矢量图形。Boxy SVG是一款好用的软件&#xff0c;并且可以在Windows、Mac和Linux系统上运行。 Boxy SVG mac软件特点 简单易用&#xff1a;Boxy SVG的用…