为什么 HTTP3.0 使用 UDP 协议?

还记得以前我提过的常见面试题么:从浏览器地址栏输入网址,到网页彻底打开,中间都发生了什么?从浏览器输入网址,到网页打开,发生了什么,这题有多经典,很多业内技术大牛说用过这题面试过新人,你说经典不经典。

百度 FEX 前端团队的负责人,T8 前端大佬吴多益写了一篇文章:《从输入 URL 到页面加载完成的过程中都发生了什么事情》。有兴趣的可以翻翻八年前的这位顶尖架构师的旧文,他把整个过程拆成了六个问题:

  1. 从输入 URL 到浏览器接收的过程中发生了什么事情?

  2. 浏览器如何向网卡发送数据?

  3. 数据如何从本机网卡发送到服务器?

  4. 服务器接收到数据后会进行哪些处理?

  5. 服务器返回数据后浏览器如何处理?

  6. 浏览器如何将页面展现出来?

每一个问题,多益都做了深入的讲解,并给出了延伸学习的资料,让人看后受益匪浅,大呼过瘾。有人说他是在炫技,但是没有如此强的技术功底,是没法炫的如此漂亮的。

大部分技术人,可能多多少少都会遇到下面的困惑,比如:

  • AJAX 跨域访问时总被浏览器的同源策略阻止,其背后的原理及符合其设计思想的解决方案是什么?

  • 缓存可以提升性能,但什么样的 HTTP 消息才会被浏览器或者代理服务器缓存呢?

  • 抓包时收到 4xx 或者 5xx HTTP 响应码,这意味着服务器端发生了什么?

  • 当我们维护 HTTPS 连接时,如果要优化TLS/SSL 的卸载性能,应该从哪里入手?

  • 定位问题时,发现本地的 TCP 连接状态中出现了FIN_WAIT、CLOSE_WAIT 或者TIME_WAIT,都是什么原因引起的?应该如何解决?

  • 想要提升 TCP 连接的传输速度,可服务器上相关的系统参数多达数十个,究竟该怎么调整?

  • 时下逐渐普及的 IPv6 ,在报文上到底与 IPv4 协议有何差别?

你会发现,这些问题其实都和 Web 协议密切相关。我常常听到身边人抱怨“学不动了”,之所以会这样,大多是因为没有掌握好互联网体系中的底层知识。这些知识点相对稳定,而其他时刻变化的知识点是构建在这些知识点之上的。一旦掌握好,就可以长久使用,并且保持快速学习的能力。

Web 协议有多重要,前面关于经典面试题的旧文已经提过,如果不能完整掌握协议的特征和目的,很多优化,故障排查,无从谈起,所幸协议层的进化并不如语言和工具那样频繁和激进,只要我们抓住它设计时背后的指导原则,系统地将 Web 协议转化为我们头脑中的结构体知识,就可以对我们学习前后端开发框架、面向连接的编程语言、各种分布式组件、架构设计、微服务编程等都起到事半功倍的效果。

可以说,无论你是前后端工程师,还是运维测试,如果想面试更高的职位,或者要站在更高的角度去理解技术业务架构,并能在问题出现时快速、高效地解决问题,Web 协议一定是你绕不过去的一道坎。甚至会频繁出现在各个重要岗位的面试中,熟练掌握各种常用 Web 协议,可以帮你在工作中轻松应对各种网络难题。

  • 如果你是前端工程师,可以快速定位问题的根源在后端还是前端,对网页性能的提升会有更多的思路。

  • 如果你是后端工程师,可以更清晰地理解Web容器的工作原理,在网络层面快速缩小问题范围。

  • 如果你是运维工程师,可以更明确地规划硬件及网络资源,对于故障节点的恢复也会有更系统的解决方案。

  • 如果你是测试工程师,可以对压测工具的原理有更深入的理解,对RPC测试用例的构造也会更全面。

  • 如果你是架构师,将会对分布式系统下的高可用架构设计和性能优化等问题有更加体系化的认识。

可是,想要真正掌握 Web 协议,并没有想象中那么容易。我发现大部分人在学习时,都卡在下面这些问题上:

  • Web协议的体系庞大,大多概念过于抽象,如果缺乏场景观,很多初学者会很容易从入门到放弃。

  • 很难快速上手,就算勉强弄懂了复杂的概念,工作中一遇到复杂问题,还是一头雾水,不知道如何下手。

  • 网上有很多文章可以参考,但要不就是知识点零散,要不就是解释得蜻蜓点水,无法深入到底层。即便是我前文推荐的顶尖架构师的博客,也需要有一定经验和知识基础,才能掌握其技巧核心。

  • 市面上相关的课程很少,要不就是仅仅讲述某一个协议,要不就是只从理论出发来讲解,实战性不强。

除此之外,很少有人会在文章或课程里通过抓包去把 Web 协议的各个细节呈现出来,然后掰开揉碎了讲给大家。基于此,我推荐你陶辉老师在极客时间开的《Web 协议详解与抓包实战》视频课完全从实战出发,在关键场景中结合抓包工具进行实战分析,为你深入浅出地讲解常见 Web 协议涉及到的核心知识,并彻底掌握这些协议。

新人限时特惠 ¥69.9

老用户用口令「webxieyi6」立省 85 元,

到手仅 ¥ 114,仅限「前 50 人」有效

作者陶辉,现在是智链达 CTO。他曾担任阿里云高级专家,也在华为、腾讯、思科等公司从事过服务器端的研发工作。相信陶辉来讲 Web 协议详解与抓包实战,一定会带给你不一样的收获。为什么这么说?

  • 在华为他负责 iMAP 网管系统的研发,在通过 SNMP 等协议管理众多网络设备的过程中,对路由器交换机如何处理协议栈、选择路由、转发报文等流程有了深入的理解;

  • 在腾讯QQ空间,通过使用自定义的、基于 TCP 的 Qzone 协议传递巨量的数据,他对如何设计出高性能、可扩展的应用协议有了丰富的实践经验;

  • 在思科他从事 Nginx 服务的研发,对 Web 服务器如何高效地处理 HTTP 协议有了全面的认识;

  • 在阿里云作为 VPC 软件自定义网络项目中的管理系统架构师,他通过基于 Intel DPDK 自建网关、自定义网络层协议等工作,对 IDC 内部网络系统有了深刻了解。

在《Web 协议详解与抓包实战》视频课中,陶辉老师会把自己十几年积累的第一手经验毫无保留地分享给大家。

你能获得什么?

陶辉老师会跟你一起从应用层到底层,通过具体问题和场景来学习 Web 协议。具体来说,你可以有下面 4 点收获。

1. 深入理解常用 Web 协议

课程将基于应用场景深入介绍Web协议栈中最常用的HTTP/1.1、Websocket、HTTP/2.0、TLS/SSL、TCP、IP协议,这些协议处在 OSI 网络栈中的不同层级,每一层对上层协议封装、隐藏其下层协议的实现细节,而上层协议必须理解其相邻下层协议解决了什么问题,有哪些约束条件。陶辉老师会带你自上而下的学习这些协议的语法、应用场景,以建立起结构体的知识体系。

2. 快速定位和解决网络疑难杂症

网络问题最为复杂,它涉及到多样化的客户端、技术相对封闭的网络设备、层层可能修改消息的代理服务器、快速迭代中的源服务器等,当客户端与服务器由于编程、配置错误造成系统故障时,相比在某一端使用经验式的排除法查错,从网络层面定位问题更为科学、快速而有效。

3. 掌握常见抓包工具及报文分析方法

陶辉老师会配合抓包实践来带你深入了解协议细节。关于抓包工具的学习,则会遵循“即用即学”的原则,用到什么学什么,让你快速上手。

对于HTTP报文的抓包实践,主要使用 Chrome 浏览器提供的开发者工具 Network 面板,同时也将使用到 curl、telnet 命令行来模拟 HTTP 请求的发送。Wireshark是这门课程的主要抓包工具,包括过滤器、各面板的使用、如何基于统计分析报文等。对于服务器端的抓包我们会使用 tcpdump工具,并配合 Wireshark 分析报文。

4. 熟悉 Web 协议的架构和设计原则

HTTP 最初用于解决人与机器的通讯,了解指导其设计原则的REST架构,就能理解在空间上它如何应对全球性的巨型分布式网络,在时间上如何应对数十年的技术变迁。

在分层架构下各层都有其待解决的核心问题,TLS/SSL协议面对的是如何使用非对称加密协商密钥及验证身份,TCP协议面对的则是可控流量下的可靠传输,IP协议则关注报文在主机间的可达性,带着这些需求及约束,便可从容应对变化。

内容有多干货,看看目录就知道。

给你们申请了粉丝专属优惠

新人限时特惠 ¥69.9

老用户拼团+口令「webxieyi6」立省 ¥85

原价 ¥199,口令仅「前 50 人」有效

金三银四跳槽季,只有把当前级别的事情做好了,才有机会薪资翻倍,这是涨薪的第一条逻辑。在当前级别做下一级别事情的人,才有机会晋升,这是涨薪的第二条逻辑。

一顿饭钱就能跟着技术大牛学会高效解决网络难题,想要升职加薪,我建议你一定要好好看这个视频课。

 

????扫码免费试看

 

???? 点击「阅读原文」

新人限时特惠 ¥69.9

老用户输入粉丝专属口令「webxieyi6」

以 最低价 ¥114 入手,仅限 前 50 人

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

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

相关文章

程序员为啥365天都背电脑包?这答案我服!

全世界只有3.14 % 的人关注了数据与算法之美最近微博上有个最新热门话题“关于报BUG(漏洞)的礼仪”不要跟程序员说程序有BUG他们第一反应是:你的环境有问题吧?接着就是:XXX你会用吗!(此处不可描…

html li 做瀑布流,js实现瀑布流效果(自动生成新的内容)

当滚动条接近底部会自动生成新的内容(色块)效果图:代码如下:Title*{list-style: none;}div{overflow: hidden;}ul{float: left;}li{width:300px; margin-bottom:10px;}function rnd(n,m){return parseInt(Math.random()*(m-n))n;}function cl(){var li …

jquery实现多行滚动效果

2019独角兽企业重金招聘Python工程师标准>>> 有时jquery博客想,整那么多demo有什么用呢? 有些前端新手朋友不会,为他们服务吧。还有喜欢自己留点字迹,也好方便自己回过头看看。 温故而知新嘛。 前端需要那么多js特效&a…

.NET 搭建简单的通知服务

搭建简单的通知服务Intro很多情况下,我们都会遇到一些需要进行通知报警的场景,比如说服务器资源监控报警,抢到火车票后通知用户进行付款。原来主要是用的钉钉群里的机器人来做的通知,周末看到原来做 【Server 酱】的大佬写了一个简…

c#程序设计教程 唐大仕pdf_C# 添加PDF水印

概述一般我们在向文档添加水印时,会分为直接添加文字水印和加载图片添加图片水印两种情况。常见的,在添加文字水印时会多以声明文档版权、权威性的文字、标语或者名称等;同样的,图片水印也通常可以是某组织的LOGO、印章、或者其他…

电脑病毒竟然被程序员当宠物养!网友:这些都是我逝去的青春

全世界只有3.14 % 的人关注了数据与算法之美起电脑病毒,大家第一时间应该是想到的熊猫烧香,木马等等吧。很多电脑病毒破坏力惊人,熊猫烧香在当年也是让全国人民都陷入一种恐慌状态。但对于我们程序员来说,看过的病毒跟吃的米一样多…

.NET5 WPF进阶教程

↑↑↑ 点击左上角蓝字关注我,为您提供技术新动态。本期内容一、概要本系列将继《.net wpf快速入门教程》带领大家了解wpf,帮助各位在初级向中级过渡的中掌握基本该具备的能力。本系列视频长度大约在15分钟到30分钟左右,视频内容不仅仅会讲解…

python二维列表写入excel_用Python实现合并excel列表

python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。安装xlrd模块,在安装好python的环境下,打开cmd,输入pip install xlrd 回车。安装好后,再输入pip install xlrd回车&#x…

C语言入门经典材料领走不谢!

小天从大学开始,便开启资料收集功能。近几年以大数据的飞速发展,计算机科技进入新的发展阶段,再加上日常的深入研究,小天收集整理了丰富的C语言资料,内容涵盖“入门经典”,“考试必备材料”等。截止到今天&…

vue html引入图片,vue引入图片的几种方式

情况1:图片在/public目录下把图片放到与index.html同级的目录下情况1-1.png方式1因为vue编译后会生成index.html,所以我们将图片与index.html放在同一目录下,相当于在index.html中使用引入图片情况2:图片在/src/assets目录下把图片…

WPF 分页控件的简单实现

想做个分页控件,想了想逻辑实现太复杂了,这不,用奇怪的方式实现了它,就如这张图一样。。。看看效果:下面就直接粘代码喽:新建一个Pagination类:using System; using System.Collections.Generic…

两向量点乘坐标运算_高三数学冲刺复习之向量小题的题型总结(含好用的补充公式)...

高考中,向量小题常从以下几个方面来考查:1、平面向量的有关概念与平面向量的线性运算,主要考查向量的加法、减法运算,考查向量的数乘运算及其几何意义。2、考查平面向量的坐标:主要考查平面向量基本定理及其意义&#…

全球最厉害的14位程序员!

全世界只有3.14 % 的人关注了数据与算法之美导读:全球最厉害的14位程序员是谁?一起来看下让我们膜拜的这些大神都有哪些?(排名不分先后)01 Jon Skeet个人名望:程序技术问答网站Stack Overflow总排名第一的大…

.net5或.net6(Preview) 之 顶级语句

创建一个控制台项目,.net5或.net6(Preview),在Program.cs中写如下代码,F5,能顺利跑起来,没有Program类,没有Main函数。这是C#9带来的顶级语句的功能。System.Console.WriteLine("你好,C#");其实这…

班尼机器人维修方法_梅州市ABB机器人控制器维修中心

梅州市ABB机器人控制器维修中心库卡机器人KSP600-3X64库卡KSP控制器驱动器报警KSP600-3X64/00198268KSP600-3x20/ECMAS3D2224BE531/KSP600-3x40/ECMAS3D4444BE531/产品名称:库卡KSP600-3X64伺服包维修库卡KR控制系统伺服包型号:库卡机器人驱动模块KSP600-3x20/ECMAS3D2224BE531…

c# 获取当前活动窗口句柄,获取窗口大小及位置

2019独角兽企业重金招聘Python工程师标准>>> 需调用API函数 需在开头引入命名空间 using System.Runtime.InteropServices; 获取当前窗口句柄:GetForegroundWindow() [DllImport("user32.dll", CharSet CharSet.Auto, ExactSpelling true)] public stat…

Uno 平台 一 WinUI终极跨平台方案(二)

上篇《Uno 平台 一 WinUI终极跨平台方案(一)》简单介绍了Uno平台3.6版本的更新内容,大家评论里持怀疑态度的人很多,主要还是Uno平台非微软官方发布,咱们.net技术方向的已经习惯于在微软一家技术支持下,最多…

java 方法执行结束局部变量释放_Java方法执行的内存模型

Java虚拟机栈:Java方法执行的内存模型Java虚拟机栈:Java方法执行的内存模型Java方法执行的内存模型当前线程:当前栈帧局部变量表操作数栈动态链接返回地址等信息...栈帧3栈帧2栈帧1线程3线程2线程1每个方法一被调用,就会有一个栈帧…

程序员单身真的是有理由的吗?

全世界只有3.14 % 的人关注了数据与算法之美因为特殊职业的缘故程序员身边的女孩可谓是少之又少工作忙碌,没时间谈恋爱所有单身也就不足为奇了不过,通过我们观察,还是有不少程序员早早脱了单至于,脱单失败的各位,那真的…

瞒不住了,难怪.NET进大厂这么难!

六一儿童节,代表着金三银四铜五的跳槽季正式过去了,几家欢喜几家愁!既看到微软腾讯阿里百度的大厂offer,又不禁羡慕30k、40k、50k的高薪,当然更多的,其实还是各种面试被怼的故事。成功的经验五花八门&#…