
超文本传输协议(HTTP)是一个非常成功的协议,但是HTTP/1.1及之前版本的HTTP协议均是针对20世纪90年代之期网络与Web应用需求而设计,其一些特点已经对现代应用程序的性能产生了负面影响,比如:
SPDY正是Google在HTTP即将从1.1向2.0过渡之际推出的协议,长期以来一直被认为是HTTP 2.0可行选择。
SPDY与HTTP相比,具有如下优点:
HTTP/2协议通过定义一个HTTP语义向底层连接的优化映射,来解决这些问题。HTTP/2允许在同一连接上交错地发送/接收请求报文和响应报文,使用高效的HTTP报头字段编码,还支持请求优先级悔肢隐,使让更重要的请求能更快速被处理,从而进一步提升性能。另外,HTTP/2通过使用二进制的消息帧,实现消息的高效处理。
HTTP/2 提供了HTTP语义的优化传输。HTTP/2支持所有HTTP/1.1的核心特征,并且在不同的方面做的更高效。
HTTP/2的基本协议单元是帧(frame),每个类型帧用于不同用途。例如, HEADERS帧和DATA帧构成基本的HTTP请求报文和响应报文,其他类型帧,如SETTINGS帧、WINDOW_UPDATE帧和PUSH_PROMISE帧用于支持HTTP/2的其他特性。
HTTP/2的请求多路复用是通过将每个HTTP请求/响应交换与其自身的流进行关联来实现的。流在很大程度上是相互独立的,因此一个阻塞或终止的请求/响应并不会影响其他饥中流。
HTTP/2的流量控制和优先级能确保高效地使用复用流。流量控制有助于确保只传输接收方使用的数据,优先级可以确保有限的资源被优先用于最重要的流。
HTTP/2添加了一种新的交互模式,即服务器可以向客户端推送消息。服务器推送允许服务端预测客户端需要来发送数据给客户端,平衡网络利用率以及潜在的延迟。
HTTP/2帧包含的HTTP报头字段是压缩的。HTTP请求有可能是高度冗余的,因此压缩能显著减少请求和响应的大小。
HTTP/2使用与HTTP/1.1相同的“http”和“https”URI方案,并且共享相同的默认端口号:“http” URI的默认端口号为80,“https” URI的默认端口号为443。HTTP/2可以使用加密(推荐),也可以不使用加密,“h2”标识使用TLS的HTTP/2(即安全的HTTP/2),“h2c”则标识运行在明文TCP之上的HTTP/2(即非加密的HTTP/2)。
例题:
下面关于HTTP/2的描述中,错误的碧厅是?
A.HTTP/2基于SPDY协议,充分解决了TCP连接的限制,它允许多个并发HTTP请求公用一个TCP会话
B.针对只能由客户端发起请求的问题,HTTP/2添加了一种新的交互模式,即服务器推送
C.HTTP/2提供了HTTP语义的传输优化,支持HTTP/1.1的所有核心特征,并且在其他方面做得更高效
D.HTTP/2是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层
该题为楚楚街笔试题,根据前文的分析,可见选项A、B、C均是正确叙述,只有选项D的叙述不准确。
《横扫offer---程序员招聘真题详解700题》,开点工作室著,清华大学出版社出版,天猫、京东等各大网上书店及实体书店均已开始发售。
1. 一个好的程序员是那种过单行线马路都要往两边看的人。(Doug Linder)2. 程序有问题时不要担心。如果所有东西都没问题,你就失业了。(软件工程的Mosher定律)
3. 程序员的麻烦闷辩岩在于,你无法弄清他在捣腾什么,当你最终弄明白时,也许已经晚了。(超级计算机之父Seymour Cray)
4. 我想大部分人都知道通常一个程序员会具有的美德。当然了,有三种:懒惰,暴躁,傲慢。(Perl语言发明者Larry Wall)
5. 编程时要保持这种心态:就好象将灶旁来要维护你这些代码的人是一位残暴的精神病患者,而且他知道你住在哪。(Martin Golding)
6. 一个人写的烂软件将会给另一个人带来一份全职工作。(Jessica Gaston)
7. 如果建筑工人像程序员写软件那样盖房子,那第一只飞来的啄木鸟就能毁掉人类文明。(Gerald Weinberg)
8. 这世界最有可能毁灭的方式——大多数专家都同意——是次意外。这就是为什么会有我们,我们是计算机专家,我们创造意外。(Nathaniel Borenstein)
9. 我们这个行业有个特别奇怪的现象:不仅我们不从失败里吸取教训,同时也不从成功中学习经验。 (Keith Braithwaite)
10. 一种新技术一旦开始流行,你要么坐上压路机,要么成为铺路石。(Stewart Brand)
11. 如果没能一次成功,那就叫它1.0版吧。(unknown)
12. 所有的程序员都是编剧,所有的计算机都是烂演员。(Anonymous Hack Actor)
13. 工作进度上越早落后,你就会有越充蚂御足的时间赶上。(Anonymous Scheduler)
14. 当有这样的一种编程语言出现:它能让程序员用简单的英语编程,你将会发现,程序员都开始不会说英语。(Anonymous Linguist)
15. 为什么我们没有时间把事情做对,却总有时间把事情做过头?(Anonymous)
16. 傻瓜都能写出计算机能理解的程序。优秀的程序员写出的是人类能读懂的代码。
17. 任何你写的代码,超过6个月不去看它,当你再看时,都像是别人写的。(Eagleson’s law)
作为一个程序员,在找工作的这一段时间里面,我遇到了非常多奇葩的事情。我第一次去参加面试的时候,这个面试官直接看了,穗纯我看了我的头发,然后说:“你可以走啦,我们有什么消息会通知你的。”
本以为我只是这个巧合,但是在我接下来的几次面试过程中,都发生同样的事情,当时我就觉得奇怪了。
直到我最后一次找工作的时候,我问了问腊含我的面试官:“为什么其他人看我一眼就让我走了呢?”
“因为你头发太多了,不像一个程序耶。”面试官轮族笑笑了笑对我说。
这是我遇到过最大的一个梗。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)