返回首页

http2协议详解?

147 2024-11-14 10:48 admin

一、http2协议详解?

和http1兼容。HTTP/2 没有改动 HTTP 的应用语义。 HTTP 方法、状态代码、URI 和标头字段等核心概念一如往常。 不过,HTTP/2 修改了数据格式化(分帧)以及在客户端与服务器间传输的方式。因此,所有现有的应用都可以不必修改而在新协议下运行。

传输方式改变。在HTTP/1.x中,每个 TCP 连接同时只能处理一个请求 - 响应,一个请求就会独占一个链接,用户想要多个并行的请求来提高性能,必须得使用多个TCP连接(对于同一个域名Chrome最多只能同时创建 6 个 TCP 连接)。这也是被人吐槽的原因,也是http2 要解决的一个痛点,解决方法是在链接的基础上提出了stream的概念,通过stream 来区别不同的请求 。

二、http2优缺点?

优点

2.1 多路复用

多路复用 (Multiplexing):多路复用允许同时通过单一的 HTTP/2 连接发起多重的请求-响应消息。

也就是说一个TCP连接可以一次发送和接受多个请求拉。

这样实际上就避免了突发性和短时性的HTTP连接性能差的问题了(因为TCP协议里面有慢启动,开始都很慢的).

2.2 二进制分帧

就是多加了一层,专门将消息分成了更小的二进制编码的帧。减少了传输量。

2.3 首部压缩

新的压缩算法,减小首部大小,提升发送效率。

2.4 服务推送

客户端请求一个资源,服务端把客户端可能需要请求的其他资源一起主动发给它,减少了交互次数。另外服务端还能缓存这样的资源,提升效率。

缺点

1. http2是基于tcp协议的,tcp协议在设计之初并非是以现在优质、高带宽的网络基础设施基础上设计的,他充分考虑了数据的可靠性,显得小心谨慎,在传输速率的表现,也已经跟不上现时的网络基础设施。未来是否有更优化的网络层协议发展出来,可以拭目以待,包括像基于udp协议的QUIC协议。个人认为下层协议还是由os内核来实现比较好,QUIC协议实现在应用层而非操作系统的内核层,始终是一个软肋。

2. 大部分的http2实现和应用(包括浏览器和web服务器),事实上都必须基于TLS(SSL)安全套接层。对于一个承载互联网内容的基础协议来说,这样的安全考量是合理的,也是必须的。有利就有弊,TLS的握手和数据加密过程必然给通信及通信双方带来一些负担。这些负担和额外的耗费,对于一些内部应用,比如说后端的微服务之间,有时候并不是必须的,是可以简化的。

3. 由于现实世界已经基于http1建立起来,一些通讯链路上的基础设施,比如说http代理,暂不能支持http2,因此这会对http2的铺开造成阻碍,且这种阻碍可能是长期的过程。

4. 由于http2是二进制的,传输又是多路复用的,在不同帧的设计上考虑到了压缩、优先级控制、流量控制、服务端推送,这导致http2的协议可以说比较复杂了。因此在协议的实现、应用的调试上将显然会比简单明文的http1增加一些难度。简单和直观,对于人类来说,具有天生的亲和力。

三、http2优点和缺点?

http2优势

http2基于sdpy协议 ,专注于性能,目标是在用户和服务器间只用一个连接

sdpy协议是google2009研发出来的,主要就是为了解决http1效率不高的问题

1.二进制帧数据

http2采用二进制进行数据传输,它把原来的header+body的数据格式拆分为一帧帧的二进制数据进行发送,而且收发都是无顺序的,这意味着不会出现堵塞。一帧帧数据上有个标识id,能够区分数据 ,浏览器可以据此组合出数据

2.header头数据压缩,和同一域名请求,只发送请求头不同的部分,这样就解决了http1中的问题 请求头过大而且重复发送

3.支持服务器端推送技术

4.传输内容加密

http2不强制加密,但是chrome firefox都公开宣布只支持加密的http2 所以实事上http2是加密的

http2缺点

主要是底层支持的tcp协议造成的问题

tcp 以及tcp+tls建立连接延时,两个握手延时

tcp队头阻塞

四、如何判断nginx是否支持http2?

nginx从1.9.5版本开始支持http2 可以通过nginx -v命令来查看当前nginx的版本

五、php是什么?php的基本介绍?

PHP原始为Personal Home Page的缩写,现已正式更名为Hypertext Preprocesso,中文名称为超文本预处理器。

是一种通用开源脚本语言,PHP是在服务器端执行的脚本语言,主要适用于Web开发领域,随着移动应用的兴起,PHP也可用于开发API接口。

六、如何学好PHP?PHP该怎么去学?

说一说我个人的学习历程吧,可以当做参考。

首先,我是买了一本PHP零基础的书籍,结合着一本HTML的书籍开始学习的,按照书籍上的操作,把代码都敲了一遍,当时确实只能大概熟悉一下,其实真正了解还是需要之后的回顾才能真正掌握。

其次,就是要多问,尤其是刚开始学习的时候,好多问题一时间根本搞不懂,需要多问身边的高手,或者通过其它渠道方式多交流问题,记得解决后做好总结。

最后,就是要做到成长,扩展,要知道不能只局限于PHP,比如HTML,JS,Linux,MySQL,服务器配置等很多相关的知识要同步掌握,这样才会逐渐掌握PHP工程师日常要涉及到的工作。

七、.php文件的开头是php吗?

PHP文件名以php为后缀。PHP代码以“<?php”开头,以“?>”结束,中间为php代码,代码行都必须以分号结束。

八、php中add.php的作用?

add.php 的作用是用于将用户输入的数据添加到数据库中。它可以在前端页面的表单中获取用户输入的数据,并将这些数据传递到后端的 add.php 文件中,通过服务器端脚本语言 PHP 处理和验证数据的合法性,然后将数据存储到相应的数据库表中。

通过 add.php,我们可以方便地实现数据的添加、修改和删除等操作,使网站的数据操作功能更加完善和易用。同时,可以通过添加一些安全机制,确保前端传递的数据的安全性和可靠性。

九、PHP培训-成都php入门培训,成都php上岗培训,成都php培训机构哪个学校好?

这些机构没有一千也有八百了。。。太多了,去年就为我弟选来选去,后来我想明白了反正你不是这行业的肯定是只能看个热闹,然后就选一些硬指标,规模是不是大,最好是上市公司,起码放心不会随便倒闭师资和资源肯定不会缺,然后我考研的时候就在中公感觉还成,后来他们说中公也有it培训,果断就去考察了一下还成,也不贵就让他去了,个人经历仅供参考,自己最好去试听考察之类的,自己定

。。

十、PHP怎么运行?

PHP程序需要放在服务器上才能正常运行,一般使用Apache或Nginx等Web服务器作为运行环境。下面介绍PHP程序的运行过程: 

1. 客户端(一般是浏览器)向服务器发送HTTP请求。 

2. 服务器接收到HTTP请求之后,会调用PHP解释器来解释PHP程序,并将结果发送回给客户端。 

3. PHP解释器通过解析HTTP请求,将相应的代码片段(通常是一个PHP文件)加载到内存中,然后执行这些代码并生成HTML响应。 

4. 服务器将经过解析的代码的输出作为HTTP响应传回给客户端,客户端将其呈现为网页或其他形式的响应。 

总之,PHP程序的运行需要在服务器环境下,由Web服务器调用PHP解释器解析执行代码,并将执行结果发送给客户端浏览器。

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
用户名: 验证码:点击我更换图片

网站地图 (共30个专题254767篇文章)

返回首页