键入网址发生什么--基础网络知识

news2025/1/29 14:05:55

浏览器解析URL生成请求信息,发送给web服务器

一、浏览器解析URL

& 浏览器解析URL作用:确定了 Web 服务器和文件名

URL组成:http: + // + web服务器域名 + /目录名/ + / 目录名/ ....文件名

当没有具体文件路径名时,就代表访问根目录下事先设置的默认文件,也就是 /index.html 或者 /default.html 这些文件。

二、生成HTTP请求信息

三、查询真实地址--DNS

 操作系统将http消息发给web服务器,是要知道web服务器IP地址!由域名解析出IP地址

浏览器自身查看缓存有没有域名对应的IP,没有问操作系统,再没有查看hosts文件,再没有就开始问域名服务器。

本地DNS问根DNS,根DNS直接说顶级DNS,顶级DNS说权威DNS,得到结果后本地DNS返回IP

协议栈:

 浏览器通过调用socket库来委托协议栈工作。

四、TCP--可靠传输

TCP报文头部格式:

端口号:确定数据从哪个应用发到那个应用;

序号:解决包乱序;

确认号:确认对方收到。解决丢包问题;

状态位:ACK回复、SYN连接、RST重新连接、FIN结束连接;

        TCP面向连接,带状态位包发送,会引起双方状态变更;

窗口大小:TCP要做流量控制,不可太快太慢;

TCP连接的建立--三次握手

三次握手目的:保证双方都有发送和接受的能力。

在 Linux 可以通过 netstat -napt 命令查看TCP链接状态。

TCP分割

若HTTP请求信息超过MSS,TCP就将HTTP的数据拆分。

  • MTU:一个网络包的最大长度,以太网中一般为 1500 字节。
  • MSS:除去 IP 和 TCP 头部之后,一个网络包所能容纳的 TCP 数据的最大长度。

五、IP--远程定位

IP报文头部格式:

HTTP 是经过 TCP 传输的,所以在 IP 包头的协议号,要填写为 06(十六进制),表示协议为 TCP。

六、MAC--两点传输

一般在 TCP/IP 通信里,MAC 包头的协议类型只使用:

  • 0800 : IP 协议
  • 0806 : ARP 协议

网络包报文:

七、网卡--出口

将内存中二进制数字信息转为电信号;

网卡获取网络包:开头加上报头和起始帧分界符,在末尾加上用于检测错误的帧校验序列。

  • 起始帧分界符是一个用来表示包起始位置的标记
  • 末尾的 FCS(帧校验序列)用来检查包传输过程是否有损坏

最后网卡会将包转为电信号,通过网线发送出去。

接下来就是交换机送别、路由器出境。

八、互相扒皮--服务器与客户端

@发送:服务器检查MAC头部,符合再检查IP头,符合再检查TCP序列号,符合返回ACK不是就丢弃,符合就返回给http进程,将请求信息封装在http响应报文,http响应报文再穿上TCP、IP、MAC头部 返回出去。

@接收:客户端收到,再逐层扒,将服务器返回信息交给对应的http进程。

@结束:最后,客户端要离开了,向服务器发起了 TCP 四次挥手,至此双方的连接就断开了。

 

协议概念对比补充:面试:HTTP协议与TCP协议的区别和联系_bug 的博客-CSDN博客

TCP是底层通讯协议,定义的是数据传输和连接方式的规范 ,HTTP是应用层协议,定义的是传输数据的内容的规范 HTTP协议中的数据是利用TCP协议传输的,所以支持HTTP也就一定支持TCP HTTP支持的是www服务 而TCP/IP是协议 它是Internet国际互联网络的基础。 TCP/IP是网络中使用的基本的通信协议。 TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如:远程登录、文件传输和电子邮件等, 而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。 通常说TCP/IP是Internet协议族, 而不单单是TCP和IP。 http协议是应用层协议,主要是解决如何包装数据。 而tcp协议是传输层协议,主要解决数据如何在网络中传输。

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

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

相关文章

SRT对比TCP协议的优缺点

主流的流媒体协议,如HTTP,HLS,RTMP是TCP协议,而RTSP既可以基于TCP也可基于UDP协议进行数据传输。 从趋势来看,新的流媒体协议大都选择UDP作为底层传输协议,其主要原因和流媒体业务本身的特性及TCP特性有关。…

[相遇 Bug] - ImportError: numpy.core.multiarray failed to import

背景: 因为最近在看点云模型, 在自己的环境上部署该项目: https://github.com/open-mmlab/OpenPCDet/tree/master 执行命令: 这里执行github项目给的demo.py文件, 命令格式如下: python demo.py --cfg_file cfgs/kitti_models/pointpillar.yaml --ckpt xxx/pointpillar_772…

找回删除的照片?这4招很简单!

“电脑上删除的照片还能找回来吗?我的照片刚刚被误删了很多张,现在想把它们恢复回来,还有成功的可能性吗?” 对于很多朋友来说,将照片保存下来是一件很美好的事。当我们想起某个场景时,我们能通过这些照片来…

Vue3 – 高级语法补充

1 Vue中自定义指令 2 Vue内置组件Teleport 3 Vue内置组件Suspense 4 Vue中安装插件的方式 5 Vue中渲染函数的使用 6 Vue中编写jsx的语法 Vue中自定义指令 自定义指令的绑定方法有两种,一种是局部的,一种是全局的。 指令可以将部分js代码转换成指令的…

前端 | (四)CSS基础及CSS选择器 | 尚硅谷前端html+css零基础教程2023最新

学习来源:尚硅谷前端htmlcss零基础教程,2023最新前端开发html5css3视频 文章目录 📚CSS基础🐇CSS简介🐇CSS编写位置⭐️行内样式⭐️内部样式⭐️外部样式 🐇样式表的优先级🐇CSS语法规范&#…

Appium 全新 2.0 全新跨平台生态,版本特性抢鲜体验!

关于Appium V2 Appium V2 beta版本在2021年发布,从2022年1月1号开始,Appium核心团队不会再维护Appium 1.x版本了,所有近期官方发布的平台驱动(如Android平台的UIAutomator,IOS平台的XCUITest)不再兼容Appi…

大数据分析案例-基于随机森林算法构建心力衰竭预测模型

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

云原生周刊:6 项 K8s 成本控制策略 | 2023.7.17

开源项目推荐 Base Image Finder 当使用容器扫描工具来识别已知漏洞(CVE,或常见漏洞和暴露)时,可能很难理解漏洞在容器中的位置,以及如何缓解这些漏洞。通常,最简单、最有效的缓解方法是更新 "基本映…

EasyPoi实战系列集合

历史文章(文章累计480) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 导…

【黑马头条之对象存储服务MinIO】

本笔记内容为黑马头条项目的对象存储服务MinIO部分 目录 一、MinIO简介 二、MinIO特点 三、开箱使用 1、安装启动 2、管理控制台 四、快速入门 1、创建工程,导入pom依赖 五、封装MinIO为starter 1、创建模块heima-file-starter 2、配置类 3、封装操作mi…

VBA命令及语法列表之字典Dictionaries相关

【分享成果,随喜正能量】真正的修佛之人。首先,得明白自己的来处和归宿,懂得敬畏自己的生命和他人的生命,尽其所能释放善意。学会悲天悯人,渡人的同时渡己,始终走在止于至善的路上。真正的慈悲为怀&#xf…

有哪些方法可将PPT转成PDF?分享三个方法给大家!

将PPT(演示文稿)文件转换为PDF(便携式文档格式)是一种常见的需求,特别适用于共享演示文稿、打印或以静态格式保存的情况。本文将介绍三种简单易用的方法来实现PPT转PDF的操作,其中方法一是使用记灵在线工具…

MarkDown 生成目录的树结构

1. tree 命令的使用 Markdown没有办法直接生成目录的树结构,需要借助Windows下的tree命令,具体如下: 显示所有目录,不包含目录下的文件,tree 文件夹路径 显示所有目录,包含目录下的文件,tree …

命令行查看numpy版本

问题 查看numpy版本 解决方法 python -c "import numpy;print(numpy.version.version)"成功

OpenCV中reshape()函数详解-改变矩阵的通道数,对矩阵元素进行序列化

文章目录 1、函数原型2、示例3、结论: OpenCV中reshape()函数详解-改变矩阵的通道数,对矩阵元素进行序列化 在opencv中reshape函数,既可以改变矩阵的通道数,又可以对矩阵元素进行序列化 1、函数原型 Mat Mat::reshape(int cn, in…

echarts_雷达图

目录 雷达图(radar)需求[1] 复制案例[2] 色调统一[3] 配置项实现代码 雷达图(radar) 需求 [1] 复制案例 如上图,先复制一个最简单的雷达图 [2] 色调统一 直角系坐标都是使用xAxis/yAxis配置项,但是雷达图使用的是radar配置项配置坐标系。 配置项注解区…

GoFrame v2.5 版本发布,企业级 Golang 开发框架

大家好啊,GoFrame 框架今天发布了 v2.5.0 正式版本啦!👏👏👏👏 本次版本主要是对已有功能组件以及开发工具上的改进工作。其中,开发工具新增了 gf gen ctrl 命令,以规范化定义、开发…

【C#】并行编程实战:使用并发集合

在上一章的并行编程实现里,为了保护资源,我们对共享资源加锁(各种同步原语)来进行保护,避免多线程同时访问(主要是写入)。但一般来说,共享资源是一个可以由多个线程读写的集合&#…

AR气象博物馆模拟体验提升青少年认知

国际气象节主要目的是唤起人们对气象工作的重视和热爱。近年来,极端天气频发,人们需要提高警惕,AR气象远程普利用ar技术特有的沉浸式的体感互动,通过模拟演练提升体验者的安全防范意识和求生技巧。 系统结合VR虚拟现实、AR增强现实…

【多模态】1、几种多模态 vision-language 任务和数据集介绍

文章目录 一、Phrase Grounding1.1 概念介绍1.2 常用数据集介绍 二、Referring Expression Comprehension(REC)2.1 概念介绍2.2 常用数据集介绍 三、Visual Question Answer(VQA)3.1 概念介绍 四、Image Caption4.1 概念介绍 现在…