【计算机网络基础 七】输入URL到浏览器发生了什么
这篇blog实际上就是对整个计算机网络学习内容的的一个总结和归纳,这里举个实际的例子,来尽可能的覆盖全学习到的一些知识,把这些知识都串联起来。首先描述下背景:
之前我在京东商城看中一个戴森吹风机想要在一周年的时候送给女朋友小郭,但是当时看的价格比较高,想要在20分钟后秒杀的时候再买于是
就把它放入到了购物车,然后在到时间后我登录后点击链接 https://www.jd.com/ 请求数据,发出请求到看到页面的整个过程是什么样的?
网络通信流程
互联网内各网络设备间的通信都遵循TCP/IP协议,利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。分层由高到低分别为:应用层、运输层、网络层、数据链路层、物理层。发送端从应用层往下走,接收端从物理层往上走
- 在请求的时候我的浏览器是发送端而京东服务器为接收端
- 在响应的时候我的浏览器是接收端而京东服务器为发送端
接下来分层次的探讨一下这个问题。
应用层
首先我在浏览器客户端发出了请求,请求携带了Cookie信息,而Cookie记录了SessionID,为一个标准的https请求:
那么这一层要做的最重要的事情就是域名解析,用域名服务器将域名解析为对应的标准IP地址。主机向本地域名服务器发起解析请求,本地域名服务器则采用迭代的方式按顺序去询问:根域名服务器【DNS域名服务器】->顶级域名服务器【COM域名服务器】->权限域名服务器【JD.COM域名服务器】,最后权限域名服务器告诉了本地域名服务器站点的IP地址【120.52.30.30】,本地域名服务器返回给了主机。
运输层
在拿到了主机地址【127.0.0.1】京东的服务器的IP地址【120.52.30.30】、运输层的HTTP协议端口【443】以及请求的应用层HTTP数据报文后,运输层的TCP协议将应用层HTTP数据报文按照顺序切割为多个运输层TCP报文段。准备进行可靠连接:
- TCP使用三次握手将通信双方的机器进行连接,当然数据传输完毕后要使用四次挥手断开连接
- TCP使用滑动窗口来保证每次传输都是有序可靠的
- TCP使用拥塞控制来保证发送的传输速率可控,防止接收方扛不住
建立好连接后就要开始进行数据传送了,这里需要做的就是配置好网关
网络层
每个运输层TCP报文段在传送的时候都会被加上IP的首部作为网络层IP数据报来进行传送,那么每个报文段需要被配送到哪个地址呢?这个由分组转发算法来决定,例如我的请求被转发到了华南区,到了华南区某个京东的机房里的一台服务器
而在确定好了下一跳要被转发到哪个路由器或者目的主机后,使用ARP地址解析协议来将逻辑的IP地址转化为实际的物理MAC地址,以上三层实现了虚拟地址到真实物理地址的转化,接下来就是真实物理地址的字节传递,上边部分可以归纳下:
数据链路层
明确了数据要传送到的实际物理地址后,网络层IP数据报被加上首部和尾部组装成了一个数据链路层PPP帧,通过数据链路层的传输,可以实现差错控制的透明传输,通常使用交换机来加快传输速率。
物理层
每一个数据链路层PPP帧在物理层均被解析为物理层二进制位码流,然后通过电信号、光信号或者无线信号来进行传输,这样整个数据就实现了交换。
这样整个流程就实现完成了,请求到达了京东的服务器,并且通过redis拿到了购物车信息,获取到了戴森吹风机,这个时候我下单购买了戴森吹风机,女朋友就很happy!
信件的传递
还想举个例子来聊聊在整个流程中我们传递的内容该怎么理解,举个例子:一个小区里(主机)里住着很多住户(不同的应用进程),各自有门牌号(端口号),现在一个叫万维网的用户要给远方的另一个小区(目标主机)里的万维网亲戚写信:
把信(HTTP请求报文)放到信封(端口号)里,并且告诉邮局对方的邮编(URL),接下来会有怎样的流程?
邮局拿到邮编后首先查表(DNS域名服务器)将其解析为对方小区的地址(IP地址),选择好双方的连接方案(运输层传输协议)。然后依据客户要求选择中国邮政EMS(提供TCP可靠分组交付),并且把信的三页纸分装到三个相同的信封包括:信封(TCP数据报)包括:(TCP数据报首部,保存源目的端口地址)+信纸部分(切割的HTTP请求报文段)
EMS(TCP协议)承包了该客人的业务,它拿到客户的信后依据之前邮局对照表(路由表)里对应的(IP地址)把这封信放到一个包裹里(IP数据报)包括:包裹外壳(IP数据报首部,保存源目的IP地址)+完整的信(TCP数据报)。然后快递公司站点把包裹投递出去,经过服务站点的层层转发(使用了下三层:数据链路层,物理层)送到对应住户(进程)所在的小区(主机),因为只知道地址(IP地址),而不知道具体怎么过去,但是快递员认路(ARP协议)
送到所在小区后,快递员取出包裹,拿出信,对照着信封的格式送到了具体的住户家里,信件的传递也就是上三层的寻址过程。
【计算机网络基础 七】输入URL到浏览器发生了什么相关推荐
- 计算机网络基础||从输入URL到打开页面到底发生了什么(待完善)
文章目录 从输入URL到打开页面到底发生了什么 1 应用层 1.1 解析URL 1.2 生成HTTP请求消息 1.3 向DNS服务器查web服务器的ip地址 1.3.1 通过解析器向dns服务器查询 ...
- 从输入 URL 到浏览器接收的过程中发生了什么事情
从输入 URL 到浏览器接收的过程中发生了什么事情? 原文:http://www.codeceo.com/article/url-cpu-broswer.html 从触屏到 CPU 首先是「输入 U ...
- 在浏览器输入url回车后发生了什么
在浏览器输入url回车后发生了什么 转载 https://www.cnblogs.com/tisikcci/p/5866753.html
- 在浏览器输入url回车之后发生了什么?
在浏览器输入url回车之后发生了什么? 浏览器解析URL(https://www.baidu.com/dist/test.html),获得协议(https).web服务器名(baidu.com)和文件 ...
- 输入URL之后都发生了什么
输入URL之后都发生了什么 这个标题印象中已经有很多讨论了.也来说说这个话题. 从头开始,当你的电脑使用网线连接到网络的时候,我们都知道,这个时候你的电脑会获取一个IP,这个IP就是你的唯一标识了.好 ...
- 从输入URL到浏览器显示页面到底经历了什么?
文章目录 从输入URL到浏览器显示页面到底经历了什么? DNS解析 1.DNS解析过程 2.DNS优化 建立TCP连接 1.什么是TCP? 2.TCP的连接建立--三次握手 3.为什么是三次握手? 发 ...
- 输入URL后浏览器的渲染过程
铅笔头课堂,有态度的前端培训 输入URL后浏览器的渲染过程 背景 作为前端开发,浏览器是与我们日常相伴的工具,以chrome为例,我们可以利用它调试页面的element节点.network网络.con ...
- 【前端问题分析】从输入 URL 到浏览器接收的过程中发生了什么事情?
从触屏到 CPU 首先是「输入 URL」,大部分人的第一反应会是键盘,不过为了与时俱进,这里将介绍触摸屏设备的交互. 触摸屏一种传感器,目前大多是基于电容(Capacitive)来实现的,以前都是直接 ...
- 从输入 URL 到浏览器接收的过程中发生了什么事情?
写得很全面,有待进一步展开.. 从触屏到 CPU 首先是「输入 URL」,大部分人的第一反应会是键盘,不过为了与时俱进,这里将介绍触摸屏设备的交互. 触摸屏一种传感器,目前大多是基于电容(Capaci ...
最新文章
- 论文原文解读汇总(持续更新中)
- Strom小实例,大小写转换
- 15分钟,教你用Python爬网站数据,并用BI可视化分析!
- PyTorch 深度学习:30分钟快速入门
- [原创]物探小宽线坐标快速生成(平行线坐标互算 、点到线距离计算、两线交点计算等)...
- idea 未实现接口红线提示,重复代码波浪线提示,自动换行,控制台输出内容自动换行...
- form里面的action和method(post和get的方法)使用
- mbedtls库ssl/tls握手
- sql连接查询语句中on、where筛选的区别总结
- Gmail对比Outlook哪个更好
- 深圳大学数学文化赏析MOOC答案
- xsd文件 -- 伤痛
- yolov4中的route和shortcut层
- 2022年内蒙古最新高级消防员模拟试题题库及答案
- matlab khatri rao,一种低复杂度高准确度的Khatri-Rao 积分解算法
- MySQL 服务正在启动 MySQL 服务无法启动解决办法
- android appium 页面如何跳转,【appium实战】appium混合页面点击方法tap的使用
- 解决计算机后台结束不了的问题(卡死,抱死等问题)
- 异星工厂机器人教程_《异星工厂》建设机器人怎么用?建设机器人机制介绍
- OpenCV——问题解决:error: #error “This header with legacy C API declarations has been removed from OpenCV.