输入一个url后,会发生什么事?

        Internet上的每一个网页都具有一个唯一的名称标识,通常称之为URL(Uniform Resource Locator,统一资源定位器)。它是www的统一资源定位标志,简单地说URL就是web地址,俗称“网址”。

        所以当我们在浏览器上输入一个url后,会发生什么事呢?如果只是看表面,应该都会认为显示的是我们想请求的网页,但是如果从上往下看,在我们知道了网络中OSI分层后,这个网页究竟是如何请求来的?在底层发生了什么事呢?

         我们知道数据在网络中并不是简单的端到端传送,而是在每个主机中,都有七层的OSI,自上到下分别是应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。而我们不关心表示层、会话层和物理层,所以在我们的角度来看,OSI只有四层。

        假设有一个人使用IE浏览器,在搜索框输入:www.csdn.net.com,并且登陆自己的账号密码

己端:

        应用层:由于浏览器默认使用的是http/https协议,所以由会话层自上向下交付数据,先是由应用层的http/https协议打上自己的报头,并且使用http的POST方法,将用户的账号密码通过正文部分进行提交,这样使得用户的信息更加私密,并且在用户端使用cookie将用户输入的账号密码,通过请求用户的方式来进行保存进服务端的session,并且使用一些列非对称+对称方案,通过服务端在CA证书机构的权威认证,对双方的密钥进行加密,最后加上自己的报头,例如正文长度,编码方式等。

        传输层(tcp为例):准备好数据后,由http/https协议将数据打进tcp协议的发送缓冲区,并且由tcp根据网速,双方接收情况,使用滑动窗口的概念来决定何时发送,发送多少,并且tcp针对自己的数据都带有编号,而且对端收到时也带有编号回应,这样就可以通过确认序号的方式得知双方都收发了哪些数据,最后加上自己的tcp报头,例如正文长度,tcp窗口大小,确认序号等。

        网络层:准备好数据后,将数据向下交付给网络层,由网络层使用ip协议,来执行最后的转发动作,而ip协议最重要的任务就是选择一跳一跳的路由,使用严格的路由算法将数据通过最合理、最短路径将数据发送至对端,而这些路径的选择算法又要考虑到网络问题,路径问题等,如果待发送数据过大,一般以1500字节为一个包,如果超过了,就要进行分片发送,一般并不建议ip分片,因为分片后,对端收到后就要涉及到合并,并且在几十亿主机参与的网络中,网络状态不稳定是常有的,所以为了不造成数据的丢失,尽量不分片,在ip最好一切准备好活动后,最后也是要加上自己ip报头,例如自己的ip版本,片偏移,源ip地址,目的ip地址等。

        数据链路层:数据在这一层其实就已经由虚拟的网络接近现实的网络了,在这一层主要是将ip准备好的报文加上自己主机的MAC地址,交由物理层进行路由选择。

        通过重重路由的长度跋涉,报文终于在对端的数据链路层找到了对应的主机,而由于发送数据是自上向下交付,到了对端就要自下向上交付。

对端:

        数据链路层:收到数据后,确认是自己的MAC地址,进行解包,将自己的MAC地址拆下,交给上层的ip协议进行下一步解包。

        网络层:ip收到报文后,继续解包,剩下的数据就是带有tcp协议的报文,并且继续向上交付。

        传输层:tcp收到报文后,继续解包,交由上层的应用层,由http/https处理最后的请求。

        应用层:收到请求后,http/https分析对端主机的请求,并且将请求的服务进行返回,返回的过程跟上边的过程一样。

        在对端收数据的过程中,并不是一味的收数据,因为tcp协议是全双工协议,其中有很多确认是需要双方收发的,比如确认序号,所以在任何两台主机进行通信时,手法动作都是在同一时间内双方都在做的。

 

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

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

相关文章

工作十年+的测试应该具备什么能力?

大概是2014年的时候,我开始接触面试工作,就是从应聘者转为面试官,记得印象深刻的是面试了一位做了8年的测试。对方气场很足,嗯,毕竟那时的我还只是一个3、4年经验的小测试,相反,印象深刻的并不是…

TikTok影响力经济:解锁社交媒体的商业机遇

社交媒体平台的崛起改变了我们与世界互动的方式,而TikTok作为其中的一员,已经成为全球范围内的现象。这个短视频应用不仅让用户在几秒钟内分享创意和娱乐,还为企业和创作者提供了巨大的商业机会。本文将深入探讨TikTok的影响力经济&#xff0…

【Go入门】struct类型

【Go入门】struct类型 struct Go语言中,也和C或者其他语言一样,我们可以声明新的类型,作为其它类型的属性或字段的容器。例如,我们可以创建一个自定义类型person代表一个人的实体。这个实体拥有属性:姓名和年龄。这样…

Ubuntu 20.04编译Chrome浏览器

本文记录chrome浏览器编译过程,帮助大家避坑qaq 官网文档:https://chromium.googlesource.com/chromium/src//main/docs/linux/build_instructions.md 一.系统要求 一台64位的英特尔机器,至少需要8GB的RAM。强烈推荐超过16GB。至少需要100…

基于Matlab+ AlexNet神经网络的动物识别系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 基于Matlab和AlexNet神经网络的动物识别系统可以用于自然图像识别等场景,以下是一个基本的介绍设计步骤…

项目笔记记录

一、node下载版本报错:npm install --legacy-peer-deps 二、Scheduled: 任务自动化调度 Scheduled 标记要调度的方法的注解,必须指定 cron,fixedDelay或fixedRate属性之一 fixedDelay:固定延迟 延迟执行任务,任务在…

stm32单片机无法驱动sg90舵机

如果使用调试器调试sg90的时候,也许会遇到舵机没有反应的情况,这个时候可以把调试器断开,直接使用usb线接到单片机上面,舵机就会开始动,需要注意的是3.3V也是可以驱动sg90的,虽然标的是5V

Linux 图形化界面

Part I: Linux 系统概述 什么是 LinuxLinux 的历史和版本Linux 发行版介绍Linux 的优缺点 Part II: Linux 安装与配置 5. 硬件要求与准备工作 6. 安装 Linux 操作系统 7. Linux 系统初始化设置 8. Linux 系统更新与升级 9. Linux 基础配置 Part III: Linux 命令行 10. Linux…

论文笔记:Deep Trajectory Recovery with Fine-Grained Calibration using Kalman Filter

TKDE 2021 1 intro 1.1 背景 用户轨迹数据对于改进以用户为中心的应用程序很有用 POI推荐城市规划路线规划由于设备和环境的限制,许多轨迹以低采样率记录 采样的轨迹无法详细说明物体的实际路线增加了轨迹中两个连续采样点之间的不确定性——>开发有效的算法以…

高频SQL50题(基础班)-4

文章目录 主要内容一.SQL练习题1.1789-员工的直属部门代码如下(示例): 2.610-判断三角形代码如下(示例): 3.180-连续出现的数字代码如下(示例): 4.1164-指定日期的产品价格代码如下(示例&#x…

Java实现音频转码,WAV、MP3、AMR互转

1.背景 最近在集成一款产品支持语音双向对讲,首先是采集小程序的音频下发给设备端,然后可以控制设备录音生成音频链路让小程序播放。在这个过程中发现,设备除了AMR格式的音频外,其他的音频都不支持,而微信小程序有不支…

【Linux】虚拟机连不上外网 (ping www.baidu.com不通)

进入linux系统,打开终端,ping www.baidu.com 发现ping不通 首先我连接的是nat模式 查看是否连接上自己本机的网 切换root用户 使用 ifconfig 命令查看是eth0 还是 ens33 vi /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTOstatic ONBOOTyes …

蓝桥杯每日一题2023.11.10

“蓝桥杯”练习系统 (lanqiao.cn) 题目描述 题目分析 对于此题:我们看到题目要求尽可能大,会联想到二分,注意切出的一定为正方形,其能切出的个数为(h[i] / x) * (w[i] / x),将所有的个数与要求的个数进行对比&#x…

uniapp在IOS手机下解决时间nan-an-nan问题

废话不多说,直接上代码 if (uni.getSystemInfoSync().platform ios) {// 解决ios手机时间格式化NaN问题date date.replace(/-/g, /);}

springcloudalibaba入门详细使用教程

目录标题 一、简介二、SpringCloud Alibaba核心组件2-1、Nacos (配置中心与服务注册与发现)2-2、Sentinel (分布式流控)2-3、RocketMQ (消息队列)/RabbitMq/kafka2-4、Seata (分布式事务)2-5、Dubbo (RPC) 三、为什么大家看好 Spring Cloud Alibaba3-1、阿里巴巴强大的技术输出…

k8s安装ingress-nginx

目录 前言准备helm安装包修改values.yaml安装ingress测试功能 前言 k8s集群搭建参考: https://blog.csdn.net/centrl/article/details/134291473 整合helm参考: https://blog.csdn.net/centrl/article/details/134293363 安装loadbalance参考&#xff1…

(头哥)多表查询与子查询

目录 第1关:查询每个学生的选修的课程信息 第2关:查询选修了“数据结构”课程的学生名单 第3关:查询“数据结构”课程的学生成绩单 第4关:查询每门课程的选课人数 第5关:查询没有选课的学生信息 第6关&#xff1a…

大语言模型的关键技术(二)

一、Transformer 语言模型存在明显的扩展效应: 更大的模型/数据规模和更多的训练计算通常会导致模型能力的提升。 1、扩展效应的原因: 模型规模:增加模型的规模,即增加模型的参数数量和层数,通常会提高模型的表示能力…

ROS基础知识复习

【置顶】感谢参考:https://zhuanlan.zhihu.com/p/662074088 0.背景 工作一年多没有做 ROS 相关的开发了,最近找工作想做回这一块来,根据参考内容,抽时间给这边的基础知识敲一遍复习一下 1.环境检查 打开了之前的笔记本&#x…

mysql讲解2 之事务 索引 以及权限等

系列文章目录 mysql 讲解一 博客链接 点击此处即可 文章目录 系列文章目录一、事务1.1 事务的四个原则1.2 脏读 不可重复读 幻读 二、索引三,数据库用户管理四、mysql备份 一、事务 1.1 事务的四个原则 什么是事务 事务就是将一组SQL语句放在同一批次内去执行 如果一个SQ…