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发生了什么

孤单小弟 HTTP

一个URL的组成
在这里插入图片描述

首先浏览器需要对URL进行解析,从而生成发送给web服务器的请求信息。
在这里插入图片描述

URL是就是请求服务器的文件资源。
在这里插入图片描述
假如不带文件路径呢?通常服务器会在根目录下放置一个默认的Index.html,返回他即可。

浏览器解析出URL,确定了对方的web服务器和文件名。生成请求。
在这里插入图片描述
一个孤单的HTTP数据包背起了行囊。

真实地址查询DNS

通常输入的服务器域名是字符串,因为直接输入IP难以记忆。DNS服务器(端口为53)专门保存了web服务器域名和IP之间的对应关系。

就像外国人说一个地点,xx街道xx区xx市xx省一样。他们的习惯与我们相反。

在这里插入图片描述
根域处于互联网任意一个DNS服务器中。

讲清楚这些再看。

  • 此时浏览器发出一个dns请求,询问本地DNS服务器,域名对应的IP是啥。假如本地有缓存过它对应的IP,直接返回。
  • 假如没有,本地DNS服务器会向根域DNS服务器询问,“大哥,请问这个域名的IP地址是啥”
  • 根域收到它请求,看见后缀为.com,指明一条道路,归.com管,我给你.com的顶级域服务器地址,你去问他。
  • 它(本地DNS服务器)找到了顶级域服务器,“二哥请问这个域名对应的IP地址是啥”
  • 二哥一看,这个域名,归权威DNS服务器管,你去问他
  • 它又找到了权威DNS服务器,问道"三哥,这个域名对应的IP是啥",权威服务器一查,本地DNS服务器拿到对应的IP,返回给自己的浏览器。

经过不断的问路,终于找到了目的地。接下来该怎么发呢?

可靠传输TCP

数据链路层确定点到点,中间经过一个个源mac地址,目的mac地址的区间,不断跳转

首先,三次握手,建立链接。浏览器就可以发送自己的请求报文,假如数据大小大于MSS还会进行分段之后加报头,同时TCP还有保证可靠性,效率的一些机制。
有了TCP的保证,很心安,可是我该往哪走?

远程定位IP

IP协议将数据拿到,假如数据大小大于MTU,会进行分片后加IP报头,IP报头中拥有源IP,目的IP这两个IP始终是不会变化的。

  • 源IP:客户端有多个网卡,就有多个IP,经过route-n查看路由表,根据目的ip按位与子网掩码,算出网段。观察与哪个网卡相匹配,填入网卡的IP。假如没有填默认的。
  • 目的IP:就是之前DNS解析拿到的。
    知道了源IP,目的IP,经过多次路由选择,就确定了本主机到另一台主机之间的路径。
    路由选择:
    目的IP,按位与子网掩码。算出网段。观察本主机路由表,假如有找到下一跳,假如没有转发给默认路由1。路由器1在路由表匹配到了转发给下一跳路由器,路由器匹配到了而且发现是自己局域网主机,将IP数据报经过交换机转发至目标主机。
    在这里插入图片描述

有了IP,不再迷茫,可是那么远,我下一站在哪?

两点传输MAC

数据链路层根据MAC地址在一个接一个的区间中进行传输,每个区间的起始地址就是源MAC地址,目的地址就是目的MAC地址。

源MAC地址:直接从网卡的ROM里读取。经过路径选择,我们知道了各个路由器的IP,同时经过ARP协议,拿到他们的MAC地址。然后在两点之间传输数据。所以源MAC,目的MAC是不断变化的。

ARP协议:以广播的形式对所有设备询问,这个IP地址是谁的,请把你的MAC地址告诉我。同时划分一个ARP缓存存储IP地址到MAC地址的映射。
谢谢大家的帮助,现在我终于可以出门了。

最终

自底向上不断分离报头,可靠地收到这些数据后,处理请求,返回响应。经过同样的步骤,将响应报文送给客户端浏览器。浏览器收到响应后,渲染数据。四次挥手断开链接。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-01 14:51:53  更:2021-08-01 14:53:23 
 
开发: 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年12日历 -2024/12/27 10:53:14-

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