基于Http协议设计网页应用优势与不足

好处:

1 多路复用

2 二进制分帧

3 首部压缩

4 服务推送

1 介绍
知乎上HTTP/2.0 相比1.0有哪些重大改进?中LeoZhang的回答不错可以看看。本文简单总结下。

2 优点
主要优点肯定就是性能提升大了。但是为什么性能提升大,其实主要还是由以下方面的改进带来的。

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

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

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

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

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

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

不足:

**
知识点的梳理:
HTTP的不足:
通信使用明文,内容可能会被窃听;
不验证通信方的身份,因此有可能遭遇伪装;
无法证明报文的完整性,有可能已遭篡改;
通信使用明文可能会被窃取
HTTP本身不具备加密的功能,无法做到对通信整体进行加密。
按TCP/IP协议族的工作机制,通信内容在所有的通信线路(即互联网)上都有可能遭到窥视;
通信即使加密,也会被窥视到,只不过窥视到的是密文;
窃听相同段上的通信非常简单。只需要收集流动在互联网上的数据包(帧)就可以了。解析这些包的工作,可以交给抓包(Packet Capture)或嗅探器(Sniffer)工具;
加密处理防止被窃听,加密的对象有以下几个:
通信的加密:可通过SSL(安全套接层)或TLS(完全层传输协议)的组合使用,加密HTTP的通信内容;
用SSL建立安全铜线线路之后,就可以在这条线路上进行HTTP通信了。与SSL组合使用的HTTP被称为HTTPS(超文本传输安全协议)或HTTP over SSL.
内容的加密:对HTTP协议传输的内容本身加密。即把HTTP报文里所含的内容进行加密处理;
有效加密的前提是,要求客户端和服务器同时具备加密和解密机制。主要应用在Web服务中。该方式不同于SSL或TLS将整个通信线路加密处理,所以内容仍有被篡改的风险。
不验证通信放的身份就可能遭遇伪装
HTTP协议中的请求和响应不会对通信方进行确认;
也就是说,"服务器是否就是发送请求中URI真正指定的主机,返回的响应是否真的返回到实际提出请求的客户端"等问题;
任何人都可发起请求
HTTP协议通信不存在确认通信方的处理步骤,任何人都可以发送请求;
服务器只接收到请求,不管对方是谁都会返回一个响应(前提:仅限于发送端的IP地址和端口号没有被Web服务器设定限制访问的前提下),这样会存在以下隐患:
无法确定请求发送至目标的Web服务器是否是按真实意图返回响应的那台服务器。有可能是已伪装的Web服务器;
无法确定响应返回到的客户端是否是按真实意图接收响应的那个客户端。有可能是已伪装的客户端;
无法确定正在通信的对方是否具备访问权限;
无法判定请求是来在何方,出自谁手;
即使是无意义的请求也会照单全收。无法阻止海量请求下的Dos攻击(拒绝服务攻击);
查明对手的证书
虽然HTTP协议无法确定通信方,但SSL可以。SSL不仅提供加密处理,而且还使用了一种被称为证书的手段,应用于确定方;
证书由信赖的第三方机构颁发,用以证明服务器和客户端是实际存在的;
伪造证书从技术角度来看是及其困难的;
客户端持有证书即可完成个人身份的确认,也可用于Web网站的认证环节;
无法证明报文完整性,可能已遭篡改
完整性是指信息的准确度。如果无法证明其完整性,通常也就意味着无法判断信息是否准确;
接收到的内容可能有误
HTTP协议无法证明通信的报文完整性,在请求或响应送出之后直到对方接收之前的这段时间内,如果请求或响应遭到篡改,是没有办法获悉的;

如何防止篡改
确定报文完整性常用的方法是MD5和SHA-1等散列值校验的方法,以及确认文件数字签名的方法;
提供文件下载服务的Web网站也会提供相应的以PGP创建的数字签名及MD5算法生成的散列值;
PGP是用来证明创建文件的数据签名;
MD5是单向函数生成的散列值;
这两种方式,都需要操作客户端的用户本人亲自检查,浏览器无法参与;
但是,如果PGP和MD5本身被改写的话,用户是没有办法意识到的;
综上,有必要使用HTTPS
SSL提供认证和加密处理及摘要功能;仅靠HTTP自身确保安全性非常困难,应与其他协议组合达成目标;

//下面是一些理论知识了解即可

减少开发时间。你可以用外部CSS文件来控制整个设计,避免像这样的重复代码。
降低维护时间。改变某个外部CSS文件的变化就可以影响整个网站。
提高设计能力。有一些高级设计功能CSS可以实现,而HTML不行。
开发更清楚的代码。XHTML将格式化、结构和行为分开,更容易阅读和维护。
用单独的样式表.使其能在多种格式下传递同样的XHTML内容。一个XHTML文件可以适应屏幕、手持设备和打印显示。
开发更稳定的代码。标准兼容的代码可能适用于未来版本的浏览器,也适用于老的浏览器。
Web标准帮助企业:
节省开发成本。通过减少网站开发时间,可大大降低开发成本。
节省服务器带宽成本。因为结构、格式化和行为分别放置在标准兼容的网站上,当用户点击链接页面时.CSS和JavaScript只需要下载一次。
帮助开发人员按时交付。当开发人员能够有效地建立和维护网站,就更有可能赶上紧迫的最后期限。
Web标准帮助用户:
加快加载速度。外部CSS和JavaScript只需要加载一次,而不需要在每次页面加载时都加载。
改善易访问性。残疾用户与备选设备用户都可获取网站内容。
开发者、企业和用户都将从Web标准获益,但还有一个更令人信服的理由:Web标准有助于优化搜索引擎,并可吸引更多的流量。在索引你的网站时,组织的很差的代码可能会给搜索引擎带来问题。

发布了51 篇原创文章 · 获赞 172 · 访问量 2891

猜你喜欢

转载自blog.csdn.net/weixin_45519387/article/details/103930795