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之后都发生了什么,我们要先认识以下几个知识

1.1 TCP/IP五层模型

在这里简单介绍一下TCP/IP的五层模型
TCP/IP是一组协议的代名词,他还包括许多协议,组成了TCP/IP协议簇

TCP/IP通讯协议采用了5层 的层次结构,每一层都呼叫他的下一层所提供的的网络来完成自己的需求,主要分为一下五层

  • 物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的 的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理 层.
  • 数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网 线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校 验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.
  • 网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.
  • 传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机 发送到目标主机.
  • 应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等.

在这里插入图片描述

1.2 DNS协议

什么是DNS协议?

DNS(域名系统)协议是一个应用层协议,可以将域名和IP地址相互映射的以层次结构分布的数据库系统,简单来说就是域名和ip之间相互转换的协议。

什么是域名?

比如www.baidu.com ,就是我们经常用的百度的域名,域名主要是为了人们方便记忆而设置的,而在网络传输中,是通过ip寻找主机的而不是域名,所以每一个域名都会对应一个ip ,我们可以通过ping的方式来获取到域名对应的ip:
在这里插入图片描述
其中14.215.177.38就是百度的域名对应的ip地址,ping 的时候使用ip地址和使用域名会有同样的效果
在这里插入图片描述

1.3 ARP协议

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址(MAC);收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

1.4 NAT技术

NAT是路由器使用的一种技术,NAT能够将私有ip对外通信是转为全局ip,也就是一种将私有ip和全局ip相互转换的一种技术,可以很好地解决ip地址数量不够的问题。
对于NAT还存在着一个问题,就是当同一局域网内,有多个主机都访问同一外网服务器,那么对于服务器返回的数据中,目的ip都是相同的,那么NAT路由器如何判断这个数据包发送给局域网的那个主机?
为了解决这个问题又有了新技术就是NAPT技术,NAPT技术使用ip+端口来建立这个关联关系

2. 输入URL,发送请求流程

2.1域名解析

在浏览器输入一个URL之后,第一步就是基于DNS域名转IP协议获取到请求的IP也就是目的IP

2.2封装

得到了目的IP之后,就要对请求的数据进行封装,封装是时从上到下进行封装,封装的顺序就是应用层、传输层、网络层、数据链路层、物理层

  1. 应用层:
    当发送一个请求时,第一步封装就是在应用层,在应用层中,会根据应用层的HTTP协议将请求封装成HTPP格式,然后将封装好的数据交给传输层进一步封装
  2. 传输层:
    传输层得到应用层封装好的数据之后,传输层基于TCP协议进一步封装,在原有的数据中加上源端口和目的端口,然后发送给网络层
  3. 网络层:
    网络层得到传输层的数据之后,基于IP协议继续封装,加上源IP和目的IP,然后发送给数据链路层
  4. 数据链路层:
    得到网络层的数据之后基于以太网帧封装,加上帧头和帧尾,其中包含源MAC和目的MAC
  5. 物理层:
    将封装好的数据包通过硬件设备传输

封装的时候时不知道MAC地址的,获取方式就是使用ARP地址解析协议,首先查看目的主机和源主机是否在同一网段,将目的IP和子网掩码按位相与得到网段,如果在同一网段就直接通过ARP获取目的MAC,如果不在同一网段就将数据交给网关处理,使用APR查找网关的MAC,目的MAC就是网关的MAC

2.3分用

网关得到数据报之后先进行从下到上分用

  1. 数据链路层
    在数据链路层解析出数据帧,剥离帧头帧尾,取出IP数据报交给网络层
  2. 网络层
    网络层拿到网络层数据报之后,再解析,去掉网络层协议报头,再交给传输层
  3. 传输层
    传输层得到传输层协议报之后,解析,去除传输层包头,交给应用层
  4. 应用的得到应用层数据报之后,解析应用层数据包,得到请求内容

分用完成之后,继续封装,这次封装时,进行以下操作

  1. 要修改源IP、源端口、源MAC、目的MAC
  2. 然后基于NAPT技术,将局域网IP,端口修改为公网IP,端口
  3. 基于路由技术,在路由表中查询下一跳设备IP
  4. 在通过ARP查找MAC地址

2.4 响应

在路途中经过的设备,都需要经过以上的封装和分用,最后一步将请求消息成功交给目的主机后,先分用,然后交给目的端口对应的应用程序处理响应
当应用时tomcat时:首先解析HTTP请求,然后判断URL请求的时静态资源还是动态资源

  1. 当请求资源时静态资源时,直接返回静态的响应数据
  2. 当请求时servlet时,首先将HTTP协议数据封装为HTTPServletRequest,然后调用service()方法,调用子类重写的doXXX()方法
  3. 执行完毕之后,tomcat将HTTP响应基于HTTPServletResponse封装
  4. 返回响应,从上到下封装,然后返回响应给请求的主机
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-07-27 16:35:43  更:2021-07-27 16:36:01 
 
开发: 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年5日历 -2024/5/4 6:26:02-

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