前端基础--网络

http1到http2有哪些新增和区别

HTTP/1.0版本主要增加了

1,增加了HEAD,POST等方法

2,增加了状态码

3,增加了请求头和响应头

4,引入content-type,传输不在仅限于文本

5,在请求中加入了HTTP版本号

HTTP/1.1版本新增了

1,新增链接管理keepalive,允许持久链接

2,支持pipeline,无需等待上一个请求返回就可以发送下一个请求

3,支持数据分块

4,新增缓存控制和管理

5,加入host头,一台服务器有多个服务,因为ip相同所以需要区分,使用host头就可以确定访问的到底是哪个服务 ,Host:服务器域名+:端口号

HTTP/2.0版本新增了

1,二进制传输,不在是纯文本

2,支持一个TCP链接发送多个请求,移除了pipelin

3,利用HPACK压缩头部,减少数据传输量

4,允许服务端主动推送数据

TCP链接是什么

TCP是一个面向链接的、可靠的数据传输层协议,广泛用于计算机网络中进行数据传输。TCP协议为应用程序提供了可靠的,循序的,无差错的字节流服务。

TCP的特点

面向链接:TCP是一个面向链接的传输协议,也就是在传输之前需要先建立链接,建立链接的方式是通过三次握手,终止链接的方式是四次挥手

可靠性:TCP在传输数据包的过程中如果产生了丢包或者损坏,会重新发送这些包

顺序传输:TCP会按顺序发送数据包,如果数据包顺序错误会重排顺序,这里的顺序是按照应用层传输来自动排列的,是有序但随机的,比如应用层发送“holle word”,TCP传输排序是按照32位排序,上述例子就可以是“holle”排序1000 “word”排序10005,然后按照序列号依次传输。

流量控制:TCP使用流量控制机制来确保发送方发送的数不会超出接收方的处理能力(滑动窗口:这个滑动窗口可以理解为一个入口通道的放大缩小,就像是一个水阀,口越大可以通过的即时水量越多,大概的过程就是,发送方发送一个10K的数据,然后这时候的窗口就是10K,然后接收方接收到后返回一个ack,此时的窗口还是10K,如果接收方的处理能力是10k,则发送方再发送一个5K的数据,检测到接收方不能在处理了,这时候窗口就会变为0,当接收方处理完一部分数据后,释放了内存,并更新窗口5K,然后发送ack包给发送方,发送方接收到通知后重新发送这个5K的数据包) 

阻塞控制:在发送过程中,TCP会根据网络和接收方处理能力来调节拥塞控制和流量控制,以避免网络拥塞和数据丢失。

说说三次握手和四次挥手

TCP通过三次握手来和服务端建立连接,

就像串门一样,客户端拿着礼物SYN来服务器串门,服务器收下了礼物并且做了一些修改,换换包装里面塞点自己的东西,然后准备走的时候服务器跟客户端一顿寒暄推让,不只是没收礼甚至还回了礼物表示友好,SYN+ACK,后来两个人又一顿墨迹,最后客户端临走前又把回礼丢给了服务器并且往里面塞了100块钱,变成新的ACK,然后达成了友好联系。

客户端                     服务器
    |------SYN--------->|
    |<-----SYN-ACK-----|
    |------ACK--------->|
    | <----连接建立成功----|

TCP通过四次挥手来结束链接

就像两口子吵架一样,客户端说这个衣服(FIN)是你买的,还给你,然后服务器说这个玩具熊(ACK)是你买的是你给的还给你,然后客户端更上头了,扯下了内裤(FIN)还给了服务器,服务器也生气了,退回了化妆品(ACK),然后冷战开始。相互不理了。

客户端                     服务器
    |------FIN--------->|
    |<-----ACK---------|
    |<-----FIN---------|
    |------ACK--------->|
    | <----连接关闭成功----|

http2和http3的区别

1,传输层协议不同,http2使用的tcp协议,http使用的是QUIC协议,解决了TCP头部阻塞的问题(一个数据丢失会导致后续所有数据的延迟)

2,链接建立过程和安全性不同,http2使用三次握手达成建立链接,需要额外的TLS握手来加密链接,而http3只一次握手就可以达成链接。

3,性能和效率,http2使用HPACK压缩,减少头部大小,提升效率,http3使用QPACK压缩,进一步优化了压缩体积。效率更高。由于QUIC的特性,在高丢包和网络延迟较高的环境下http3的表现更好。

4,兼容性,http2向后兼容,能够在支持http1.1的环境下使用,http3不向后兼容。

小知识----查看当前网络链接http版本

http和https的区别是什么

1,安全性,http是一个无状态,不加密的协议,也就是说这意味着在客户端和服务器进行数据传输的时候数据都是明文未加密的,容易被篡改或者泄露。https是利用了ssl或者tls加密传输数据。数据传输更安全

2,端口号,http端口号默认是80,https默认是443

3,证书,http不需要证书,https需要CA签发的证书

4,url格式不同,http以 http:// 开头,https 以 https:// 开头

5,性能,http不需要加密在有些时候可能较快,

6,搜索引擎优化(SEO),搜索引擎更倾向于https协议,所以在搜索的时候排名更靠前一些。

TCP和UDP的区别

1,链接方式,TCP是面向链接的传输协议,传输数据必须通过建立链接传输,UDP是面向报文的传输协议,不需要建立链接,可以直接向目标发送数据。

2,可靠性,TCP是提供可靠传输,在传输过程中数据包不会丢失,丢失了会重新传输,而且数据到达后接收方会重新排序,而UDP是不可靠传输,传输的数据可能丢失,错乱,重复等情况。而且接收方不知道是否已经成功接收

3,数据传输顺序,TCP是有序传输,UDP是无序的

4,流量控制和拥塞控制,tcp可以提供流量控制和拥塞控制,UDP不提供

5,数据包大小,TCP将应用层数据流分割成适合网络传输的数据段,并且为每段添加头部信息,UDP则是每个数据包都是独立单位,包含UDP头部信息。

6,头部开销,tcp的头部开销大,一般为20K,UDP的头部开销小,固定8K

7,应用场景不同,TCP应用web应用,电子邮件,文件传输等,UDP适用于游戏,视频流,通话等。

为什么TCP链接关闭后需要有TIME-WAIT状态

当发送方主动关闭(第四次挥手发送了FIN)后,就会关闭当前链接,因为TCP是面向链接传输数据,可以理解为是一根水管,关闭了水龙头以后如果立马断开当前链接,那么水管内的水就会停留在水管中,而数据传输我们希望的是水管内的水完全流向外面。这个状态主要是用来确保最后的ACK被接收,处理延迟的数据,还有防止端口冲突。

确保ACK被接收和处理延迟数据都可以用水管来说明,也容易想象,这个防止端口冲突说一下,当TCP链接断开后,是不允许在TIME-WAIT状态下再次重用这个源端口号的,防止端口号冲突传输的数据混在一起。这里的端口号说的是发送方的IP端口号。举个例子,我们请求了一个8080的接口,然后关闭了TCP协议,然后很快的重新请求该8080的接口,看似同一个接口我们可以访问,实际上发送端的接口已经重新分配了。

TCP的超时重传机制解决了什么问题

一句话概括,保证了数据完整性,确定接收方可以接收到数据

TCP的滑动窗口的作用是什么

上面也有滑动窗口的说明,作用就是确保不超出接收方处理能力的情况下发送数据过去。

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

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

相关文章

Maven 详细配置:Maven 项目 POM 文件解读

Maven 是 Java 开发领域中广泛使用的项目管理和构建工具&#xff0c;通过其核心配置文件——POM&#xff08;Project Object Model&#xff09;文件&#xff0c;开发者能够定义项目的基本信息、依赖关系、插件配置以及构建生命周期等关键要素。POM 文件不仅是 Maven 项目的核心…

加速物联网HMI革命,基于TouchGFX的高效GUI显示方案

TouchGFX 是一款针对 STM32 微控制器优化的先进免费图形软件框架。 TouchGFX 利用 STM32 图形功能和架构&#xff0c;通过创建令人惊叹的类似智能手机的图形用户界面&#xff0c;加速了物联网 HMI 革命。 TouchGFX 框架包括 TouchGFX Designer (TouchGFXDesigner)&#xff08;…

服务器漏洞修复解决方案

漏洞1、远程桌面授权服务启用检测【原理扫描】 Windows Remote Desktop Licensing Service is running: Get Server version: 0x60000604 1、解决方案&#xff1a;建议禁用相关服务避免目标被利用 方法一&#xff1a;使用服务管理器 打开“运行”对话框&#xff08;WinR&am…

Centos源码安装MariaDB 基于GTID主从部署(一遍过)

MariaDB安装 安装依赖 yum install cmake ncurses ncurses-devel bison 下载源码 // 下载源码 wget https://downloads.mariadb.org/interstitial/mariadb-10.6.20/source/mariadb-10.6.20.tar.gz // 解压源码 tar xzvf mariadb-10.5.9.tar.gz 编译安装 cmake -DCMAKE_INSTA…

基于SpringBoot实现的保障性住房管理系统

&#x1f942;(❁◡❁)您的点赞&#x1f44d;➕评论&#x1f4dd;➕收藏⭐是作者创作的最大动力&#x1f91e; &#x1f496;&#x1f4d5;&#x1f389;&#x1f525; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4dd;欢迎留言讨论 &#x1f525;&#x1f525;&…

Vue进阶(贰幺叁)node 版本切换

文章目录 一、前言1.1 什么是nvm? 二、查看已安装好的 node 版本三、下载 node 版本四、切换 node 版本五、查看在用 node 版本六、拓展阅读 一、前言 项目开发阶段&#xff0c;会涉及多node版本切换应用场景&#xff0c;可应用nvm实现node版本切换。 1.1 什么是nvm? nvm是…

Java-数据结构-链表-高频面试题(1)

在上一篇文章中&#xff0c;我们学习了链表中的"单向链表"&#xff0c;但学可不代表就是学会了&#xff0c;能够运用链表的地方比比皆是&#xff0c;解题方法也是层出不穷&#xff0c;今天就让我们巩固一下"单向链表"的知识吧~ 第一题&#xff1a;相交链表…

低空管控技术-无人机云监视技术详解!

一、无人机监听技术的原理 无人机监听技术主要依赖于射频&#xff08;RF&#xff09;探测、光学和红外传感器等技术手段。这些技术通过被动监听和监测无人机与飞行员&#xff08;或控制器&#xff09;之间的通信链路传输&#xff0c;以确定无人机的位置&#xff0c;甚至在某些…

STM32-WWDG/IWDG看门狗

WWDG/IWDG一旦开启不能关闭&#xff0c;可通过选项字节在上电时启动硬件看门狗&#xff0c;看门狗计数只能写入不能读取。看门狗启用时&#xff0c;T6bit必须置1&#xff0c;防止立即重置。 一、原理 独立看门狗-超时复位 窗口看门狗-喂狗&#xff08;重置计数器&#xff0c;…

【形式篇】年终总结怎么写:PPT如何将内容更好地表现出来

——细节满满&#xff0c;看完立马写出一篇合格的PPT 总述 形式服务于内容&#xff0c;同时合理的形式可以更好地表达和彰显内容 年终总结作为汇报型PPT&#xff0c;内容一定是第一位的&#xff0c;在内容篇(可点击查看)已经很详细地给出了提纲思路&#xff0c;那如何落实到…

分享3个国内使用正版GPT的网站【亲测有效!2025最新】

1. molica 传送入口&#xff1a;https://ai-to.cn/url/?umolica 2. 多帮AI 传送入口&#xff1a;https://aigc.openaicloud.cn?inVitecodeMYAAGGKXVK 3. 厉害猫 传送入口&#xff1a;https://ai-to.cn/url/?ulihaimao

使用免费内网穿透(p2p)网络环境搭建小型文件管理服务器(简单操作)

目录 前言 “节点小宝” 使用环境&#xff1a; 应用场景&#xff1a; 准备工作 安装 …

在macOS上安装MySQL

macOS的MySQL有多种不同的形式&#xff1a; 1、本机包安装程序&#xff0c;它使用本机macOS安装程序&#xff08;DMG&#xff09;引导您完成MySQL的安装。有关详细信息&#xff0c;请参阅第2.4.2节&#xff0c;“使用本机包在macOS上安装MySQL”。您可以将包安装程序与macOS一…

汽车信息安全 -- S32K1如何更新BOOT_MAC

目录 1.安全启动模式回顾 2.为什么要讨论BOOT_MAC 3.S32K1如何更新? 1.安全启动模式回顾 之前提到过,S32K1系列提供了Crypto Service Engine硬件加密模块(简称CSEc),大家可以通过该芯片系统寄存器SDID.FEATURES(System Device Identification Register)来判断自己的片子…

STM32-笔记35-DMA(直接存储器访问)

一、什么叫DMA&#xff1f; DMA&#xff08;Direct Memory Access&#xff0c;直接存储器访问&#xff09;提供在外设与内存、存储器和存储器之间的高速数据传输使用。它允许不同速度的硬件装置来沟通&#xff0c;而不需要依赖于CPU&#xff0c;在这个时间中&#xff0c;CPU对于…

从零开始开发纯血鸿蒙应用之实现起始页

从零开始开发纯血鸿蒙应用 一、前言二、主要页面三、应用起始页四、MainPageContent 实现1、一级结构2、二级结构2.1、EmptyContent2.2、FileListContent2.2.1、ViewAction&#xff1a;2.2.2、EditAction2.2.3、DeleteAction2.2.4、ShareAction 五、载入起始页的时机五、总结 一…

Pytorch初学

创建虚拟环境 python控制台&#xff0c;jupyter notebook,python文件运行的差异&#xff0c;后续结合使用三者。 jupter主要可以对代码进行分割单独运行&#xff0c;主要做一些探索性工作。 数据集的常见存储模式 1、以标签命名图像。 2、单独存储图像的地址。 加载数据集…

Anthropic 的人工智能 Claude 表现优于 ChatGPT

在人工智能领域&#xff0c;竞争一直激烈&#xff0c;尤其是在自然语言处理&#xff08;NLP&#xff09;技术的发展中&#xff0c;多个公司都在争夺市场的主导地位。OpenAI的ChatGPT和Anthropic的Claude是目前最具影响力的两款对话型AI产品&#xff0c;它们都能够理解并生成自然…

【Linux系列】并发与顺序执行:在 Linux 脚本中的应用与选择

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

更换WordPress主题的基础知识及注意事项

更换WordPress主题是优化和升级网站的重要步骤&#xff0c;不仅能够增强网站的视觉效果&#xff0c;还能改进用户体验并提高网站性能。然而&#xff0c;在进行该操作时&#xff0c;必须格外谨慎&#xff0c;避免数据丢失或功能失调的风险。本文将介绍在更换主题前需要采取的基本…