计算机网络——在地址栏输入网址(URL)之后都发生了什么

网址,也叫域名,域名就像一个 IP 地址的可读版本,比如,百度的域名 www.baidu.com,他的 ip 是 110.242.68.3,输入 IP 一样可以跳转到百度搜索的页面,我想没有一个人没去记百度的 IP 吧。其实我们真正访问的就是这个IP。

所以输入网址之后,实际就是将网址解析,查询 IP 地址,然后通过 IP 和端口访问到百度的网站。

 

解析网址

当输入到地址栏之后,首先浏览器需要对网址进行解析。

首先看一下 URL 的组成,https://www.baidu.com

9a533f2b7d3e402b835f3cb70497c2d2.png

首先是协议,http 或者 https,

然后 www.baidu.com 就是域名,域名可以理解为 IP 的可读版本。

再然后冒号后面的就是端口。

再后面的是资源路径,表示在服务器上的文件路径。

问号后面的是参数,参数是在发送某些请求时添加在 URL 里的。参数的格式:key=value。

最后井号后面的时锚点。

对 URL 进行解析之后,浏览器就知道了 web服务器,资源地址和资源名,根据这些内容生成 HTTP 的请求信息。

 

DNS获取真实地址

HTTP 请求信息为被操作系统发送到 web 服务器,但在发送之前,需要通过域名获取到真实的 IP 地址。

打个比方,我们保存联系人都是用名字来保存,很少会有人记住几十个电话号码的。但是我们需要打电话时又不能直接通过名字打电话,手机理解不了这个名字,只能理解电话号码,其实就是手机得知你要打电话,比如你要打给张三,手机查到张三的电话是 10086,然后给 10086打电话。

这里的名字和电话就是域名和 IP 的关系。要想通过域名得到对应的 IP,此时就需要 DNS 服务器了。

DNS 服务器-应用层

从大到小有 根服务器、顶级域服务器、权威服务器、本地服务器

DNS 的工作流程

1. 首先客户端发出来一个 DNS 请求,想要直到 www.server.com 的 IP 地址,发送给本地 DNS 服务器。

2. 本地服务器接受到请求之后,会去缓存中查找是否存在,如果有直接返回即可,如果没有,就会去问根服务器。

3. 根服务器接到请求之后,发现后缀域名是 .com,说你去问问 .com 的顶级域服务器,看看他有没有这个 IP

4. 本地服务器拿着请求找到顶级域服务器,询问是否有该域名的 IP 地址,顶级域服务器也不知道,说你去问问 server.com 的权威服务器。

5. 本地服务器有拿着这个域名找到权威服务器,权威服务器查询之后就把对应的 IP 告诉了本地服务器。

6. 本地服务器将 IP 返回给客户端。

f979b884ca5f4c68b9312ca149fe9a12.png

除了上面的迭代式的查询,还有一种递归式的查询,顺序不同,但是这样根服务器的压力会比较大。

同时,浏览器会先看是否存在缓存,如果有缓存就不用发送给本地服务器,直接返回即可。

 

TCP 传输数据--传输层

获取到 IP 地址后,由于 DNS 只指路不带路,所以需要一个协议栈,将 HTTP 传输工作交给协议栈,协议栈使用 TCP 和 UDP 协议来收发数据。

TCP 报文头部格式,首先有源端口号和目标端口号,相当于导航的出发地和目的地,打车的时候司机才知道到哪接你,送你去哪,你就是数据包。

然后是序列号,主要是为了解决包的乱序问题。

还有确认号,目的是确认是否收到,确保不出现丢包的情况。

状态位,例如 SYN、ACK、RST、FIN分别是连接,应答,重新连接,断开连接。

窗口大小,主要用于流量控制,根据接收端的处理能力限制窗口流量。

 

值得一提的是,TCP 传输数据前需要进行三次握手建立连接,计算机网络——TCP 协议的三次握手 / 四次挥手-CSDN博客

TCP 是传输层的协议,会给应用层传下来的 HTTP 报文加上 TCP 的头部,头部包含了上面的各类信息,然后将数据包给网络层处理。

 

IP协议--网络层

IP 协议的主要功能就是寻址和路由,相当于导航,导航最重要的就是起点地址和目的地地址。在 IP 协议中就表现为源 IP 地址和目的地 IP 地址。

还需要记录协议号,表示使用的是 TCP 协议。当目标设备有多个网卡,就会有多个 IP 那么该怎么判断传给哪个网卡,主要是通过 路由表规则来判断,如果都不符合,就会发送给 0.0.0.0。

IP 协议给传输层传下来的 TCP 报文加上 IP 头,之后传递给网络接口层处理。

网络接口层会给 IP 数据报加上MAC头部,用来找到路由器。

最后数据通过网关,交换机,路由器,最终成功发到了服务器。

 

解析请求

服务器接收到了HTTP请求之后,会对请求进行解析,根据请求的内容执行相应的操作,比如数据库查询,读取文件等。

处理完一系列的请求操作后,服务端会发送 HTTP 的响应报文,客户端接收到了响应之后,同样进行解析,获取到 HTML 文件,图片等数据,然后对其进行渲染,生成网页,同时根据网页中其他的 URL 再次请求服务器,直到网页完全渲染。

最后不再传输数据后,关闭 TCP 连接,通过四次挥手的方式。

 

总结

1. 地址栏输入 URL

2. 应用层 DNS 协议解析域名的IP地址

3. 网络层 TCP 协议发起连接,传输对应的 HTTP 请求报文,通过每层模型的不同的协议,生成最终的请求数据包并发送给服务器

4. 服务器接收到了请求数据包后,解析请求,并进行处理,比如读取文件,查询数据库,然后生成响应的 HTTP 报文

5. 浏览器接收到了响应报文之后,同样进行解析,获取其中的 HTML 文件,图片视频的 URL等,然后将这些渲染到页面上,同时根据获取到的图片视频等的 URL 再次请求服务器,直到所有 URL 都解析完成,然后将页面所有内容都渲染完毕。

6. 结束数据传输可以断开 TCP 的连接。

 

 

 

 

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

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

相关文章

部署Prometheus + Grafana实现监控数据指标

1.1 Prometheus安装部署 Prometheus监控服务 主机名IP地址系统配置作用Prometheus192.168.110.27/24CentOS 7.94颗CPU 8G内存 100G硬盘Prometheus服务器grafana192.168.110.28/24CentOS 7.94颗CPU 8G内存 100G硬盘grafana服务器 监控机器 主机名IP地址系统配置k8s-master-0…

符合车规级漏电流检测的磁通门传感器KTD1100

电动车充电桩 在政策出台后,充电桩类产品按要求需装配B端漏电流检测装置。它可以有效防止充电桩等设备中的漏电流对用户造成危害,保障用户的用电安全。其次,它可以促进充电桩等产品的质量提升,提高市场的公平竞争,让消…

无线领夹麦克风哪个品牌好?本期文章揭秘无线麦克风哪个品牌好用

​在当下这个全民皆为媒体的时代大潮中,视频分享已然成为了引领风尚的指向标。在自媒体领域竞争愈发激烈的态势下,若要在这片广阔海洋中扬帆远航,优秀的作品毫无疑问是吸引观众的关键所在。而想要塑造出这样的卓越之作,除了需要创…

K8s 小白入门|从电影配乐谈起,聊聊容器编排和 K8s

来听听音乐 电影,是我们生活中的重要调味剂。 配乐,是电影中不可或缺的一部分。 有的时候,配乐可以跟剧情共振,让你按捺不住自己的情绪,或眼含热泪、或慷慨激昂、或人仰马翻、或怅然若失; 有的时候&…

WebGL技术在教育培训中的应用

WebGL技术在教育培训中的应用非常广泛,通过其强大的三维图形处理能力,能够为教育培训提供更加生动、互动和沉浸式的学习体验。以下是WebGL在教育培训中的几个主要应用及其具体实现。北京木奇移动技术有限公司,专业的软件外包开发公司&#xf…

想用Python做OCR?看看这篇文章

OCR是Optical Character Recognition的缩写,中文名为光学字符识别。它是一种通过计算机技术对图像或扫描文档中的文字进行识别和理解的过程。OCR技术可以将图像中的文字转换为可编辑、可搜索的文本,使得计算机能够理解和处理这些文字信息。 OCR技术通常…

解锁数据的力量:Navicat 17 新特性和亮点

解锁数据的力量:Navicat 17 新特性和亮点 大家好,我是猫头虎。今天我要为大家介绍 Navicat 17 的新特性和亮点。Navicat 是一款专业的数据库管理工具,支持多种数据库类型,包括 MySQL、Oracle、SQL Server、PostgreSQL、MariaDB、…

【智能家居入门1】环境信息监测(STM32、ONENET云平台、微信小程序、HTTP协议)

作为入门本篇只实现微信小程序接收下位机上传的数据,之后会持续发布如下项目:①可以实现微信小程序控制下位机动作,真正意义上的智能家居;②将网络通讯协议换成MQTT协议再实现上述功能,此时的服务器也不再是ONENET&…

解决Springboot服务启动报错:“Reason: Failed to determine suitable jdbc url”

1、错误详情 *************************** APPLICATION FAILED TO START *************************** Description: Failed to configure a DataSource: url attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine sui…

canvas层级太高?解决方法

这个方法主要是依赖于邀请好有页面展示的canvas二维码二维码以及其他容器的图片 有一个保存图片功能,这个保存图片是需要将二维码以及涉及到的其他容器比如下图: 所以这时候需要canvas来绘制一个保存图片的效果,然后对这个canvas绘制的图片保…

web网络安全知多少

web安全性包括: 客户端脚本安全和服务器端应用服务器 客户端脚本安全: ● 跨站脚本攻击(XSS ) ● 跨站点请求伪造(CSRF) ● 点击劫持(ClickJacking) ● HTML 5 安全性 服务端应用安全: ● 注入攻击 ● 文件上传漏洞 ● 认证与会话管理 ● 访问控制 ● DDos攻击 个人意识和个人…

【CALayer-时钟练习-界面-锚点 Objective-C语言】

一、接下来,我们来说这个时钟练习 1.这个里边呢,有这么一个表盘的一个效果,然后呢,这个秒针,跟我们的时间,是同步的, 新建一个项目, Name:05-时钟练习 然后呢,给这个控制器的View,一个背景颜色,先, 背景颜色, 2.接下来,我们开始来做,我们现在这个表盘啊,是我们…

绿色瓶装水“暗战”竞争越发激烈,华润饮料谋上市同时多地扩产能

《港湾商业观察》黄懿 4月23日,纯净水牌“怡宝”母公司华润饮料(控股)有限公司(下称“华润饮料”)向港交所主板提交上市申请,联席保荐人为中银国际、中信证券、美银美林、瑞银集团。 在华润饮料递表不久之…

【ARM+Codesys案例】基于全志T3+Codesys软PLC的3C点胶边缘控制解决方案:整合了运动控制、视觉、激光测高等技术

视觉精密点胶控制方案 针对直交型机构的平面点涂胶应用,基于CODESYS软件平台开发的一站式PC型控制器解决方案,包含运动控制器硬件和点胶应用软件。方案整合了运动控制、视觉、激光测高等技术,高效精密的控制胶水点涂于产品表面或内部&#x…

CHIMA专访美创高级总监丁斐:为医疗数据安全构筑体系化防御新机制

5月17-19日,中国医院信息网络大会(CHIMA 2024)在南京隆重召开。作为结识多年的老友,美创科技再携以数据为中心的全系列安全业务、新一代数字化安全平台、医疗行业解决方案精彩亮相。 会议期间,CHIMA专访美创科技&…

[数据集][目标检测]RSNA肺炎检测数据集VOC+YOLO格式6012张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):6012 标注数量(xml文件个数):6012 标注数量(txt文件个数):6012 标注…

【基础算法总结】前缀和二

前缀和二 1.和为 K 的子数组2.和可被 K 整除的子数组3.连续数组4. 矩阵区域和 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1.和为 K 的子数…

Java语言ADR药物不良反应系统源码Java+IntelliJ+IDEA+MySQL一款先进的药物警戒系统

Java语言ADR药物不良反应系统源码JavaIntelliJIDEAMySQL一款先进的药物警戒系统源码 ADR药物不良反应监测系统是一个综合性的监测平台,旨在收集、报告、分析和评价药品在使用过程中可能出现的不良反应,以确保药品的安全性和有效性。 以下是对该系统的详细…

Modbus工业网关

随着工业自动化程度的不断提高,设备之间的数据通信与交互变得至关重要。在这一背景下,Modbus协议凭借其简单、可靠、开放的特点,成为了工业自动化领域中最常用的通信协议之一。而HiWoo Box网关作为一款支持Modbus协议的工业网关设备&#xff…

【全开源】防伪溯源一体化管理系统源码(FastAdmin+ThinkPHP和Uniapp)

一款基于FastAdminThinkPHP和Uniapp进行开发的多平台(微信小程序、H5网页)溯源、防伪、管理一体化独立系统,拥有强大的防伪码和溯源码双码生成功能(内置多种生成规则)、批量大量导出防伪和溯源码码数据、支持代理商管理…