IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 在浏览器中输入一个URL后会发生什么 -> 正文阅读

[系统运维]在浏览器中输入一个URL后会发生什么

浏览器中输入一个URL后会发生什么

  1. 首先对URL进行解析,提取出服务器A的域名以及要请求的资源,然后根据这些信息构造出HTTP报文
  2. 进行DNS域名解析过程,查询服务器A的域名对应的IP地址:首先查看自己本地的DNS缓存中是否有A的域名对应的记录;如果没有,则向本地DNS服务器发送DNS查询请求,本地DNS服务器的缓存中如果有则返回,否则向根域名DNS服务器发起递归或迭代式的DNS查询请求(此处以递归为例);根DNS收到后,向对应的顶级域DNS发送DNS查询请求;顶级域DNS收到后,向对应的权威域名DNS服务器发送查询请求;权威DNS服务器收到后,返回该域名对应的IP地址,然后一路返回到主机浏览器;
  3. HTTP是基于TCP来传输数据的,所以在有了服务器A的ip地址后就可以与A建立TCP连接了,通过三次握手以后,主机成功和服务器A建立了TCP连接;
  4. 如果HTTP报文的长度大于MSS,则TCP会对数据进行分割,形成多个TCP报文段,并为每个报文段添加上TCP头部,然后将报文段交付给IP;
  5. IP为每个数据报添加上IP头,指明源ip地址和目的ip地址等信息,然后将其交付给链路层;
  6. 链路层需要在IP数据报的头部添加上MAC头,指明源MAC地址和目的MAC地址,源MAC地址就是主机自己的MAC地址,这是网卡在出厂时固化在网卡的ROM中的。至于目的MAC地址,如果是局域网内的主机则为该主机的MAC地址,如果服务器A不在局域网内则目的MAC地址为默认网关(第一条路由器)接口的MAC地址,然后需要通过ARP协议(作用为根据ip地址来查询MAC地址)来查询,如果主机自己的ARP表(格式为<IP地址; MAC地址; TTL>)中有对应的,则可以直接获取到。否则主机需要广播一个查询分组,其中包含默认网关B接口的ip地址,B收到并匹配成功后向向主机单播一个应答,其中就包含了B的MAC地址,此时就拿到了目的MAC地址,同时主机会在自己的ARP表中缓存该记录。然后在末尾添加上CRC校验字段,此时就完成了将数据报封装成帧的过程;
  7. 网卡驱动拿到数据帧后将其复制到网卡内的缓存区中,最后网卡将二进制数据转换为电信号,并通过网线发送出去;
  8. 电信号通过网线到达交换机,被交换机里的模块进行接收后转化为数字信号。然后交换机从自己的MAC地址表(格式为<MAC地址, 端口>,每接收到一个数据就会在该表中插入一条记录)中查询目的MAC地址所对应的端口,如果找到了就将数据发送到对应的端口上,如果找不到则将数据转发给除源端口外的所有端口(泛洪);
  9. 数据包经过交换机的转发来到了路由器(网关路由器),然后路由器从数据包中提取出数据帧并进而提取出ip数据报。每一个路由器都有一张路由转发表(通过运行路由选择算法来维护),然后路由器根据这个数据包的目的ip地址来从路由表中进行匹配,决定要把这个数据包转发到哪个输出端口以及下一跳的ip地址。然后路由器修改ip数据报的头部,将源ip地址从主机的私网地址替换为路由器接口的公网地址,TTL-1,更新首部校验和。并再次将数据报封装成帧,源MAC地址为路由器接口的MAC地址,目的MAC地址为下一跳路由器接口的MAC地址或目的主机的MAC地址(通过ARP协议去查询)。最后路由器将数据包从对应的接口处发送出去。
  10. 经过一系列路由器的转发,数据包最终来到了目的主机。数据包被网卡接收后,沿协议栈向上传递,最终被Web服务器的HTTP进程收到。Web服务器对HTTP请求进行相应,构造了一个HTTP相应报文,然后通过以上过程发送给源主机;
  11. 源主机接收到HTTP相应报文后,交给浏览器去解析、渲染页面;
  12. 当用户主动关闭网页或者HTTP服务器检测到该连接在一定时间范围内没有被使用,则会触发两者之间的TCP四次握手,最后TCP连接被关闭,资源被释放。
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-12-08 14:12:36  更:2021-12-08 14:14:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 22:27:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码