《图解HTTP》读书心得(三)

本文紧跟上文《图解HTTP》读书心得(二)

最后是关于HTTP安全方面的知识:

HTTP的安全隐患

1.通信适用铭文可能被窃听
2.不验证通信方的身份可能遭遇伪装
3.无法验证报文完成性,可能已遭篡改

相对安全的HTTPS

HTTPS不是应用层的新协议,只是HTTP通信接口部分用SSL(secure socket layer)和TLS(Transport Layer Security)协议替代。

通常,HTTP直接和TCP通信,而使用SSL时,则先和SSL通信,再由SSL和TCP通信。关于HTTPS的介绍 参见HTTPS详解

HTTP使用的认证方式

  • BASIC认证 userName:Pwd
  • DIGEST认证 质询/响应
  • SSL客户端认证 证书+form认证
  • FormBase认证

HTTP 1.1的性能瓶颈

  • 一条连接上只可发送一个请求
  • 请求只能从客户端开始 客户端不可以接收除了响应以外的指令
  • 请求响应首部未经过压缩就发送 首部信息越多延迟越大
  • 发送冗长的首部 每次互发相同的首部信息
  • 可以任意选择数据压缩格式 而非强制压缩发送

解决方案 追加协议

  • Ajax 通过XMLHttpRequest API 实现局部更新
  • Comet 服务器推送
  • SPDY

    SPDY以会话层的形式加入,控制对数据的流动,但还是采用了HTTP建立通信连接。

    好处:
    实现多路复用 单一的tcp连接上处理所有的请求;
    赋予请求的优先级;
    压缩HTTP首部;
    推送功能;
    服务器提示功能;

    但是由于SPDY基本上只是将单个域名(IP地址)的通信多路复用,所以当一个Web网站上使用多个域名下的资源,改善效果就会受到限制。

  • WebSocket 浏览器与服务器之间全双工通信标准

    利用Ajax和Comet技术进行通信可以提升Web的浏览速度。但问题在于通信如果继续使用HTTP协议,就无法彻底解决瓶颈问题。WebSocet网络技术正是为了解决这些问题而实现的一套新的协议及API。
    原本计划是讲WebSocket作为HTML5的一部分,而现在逐渐成了独立的协议标准。

WebSocket协议

一旦服务器与客户端之间建立WebSocket协议的通信连接,之后所有的通信都依赖这个专有协议进行。通信过程中可以实现相互发送JSON、XML、HTML、图片、语音、视屏等等任意格式的数据。

主要特点:
* 推送功能
* 减少通信量

只要建立起WebSocket连接,就希望一直保持连接状态。和HTTP相比,不但每次连接时的总开销减少,而且由于WebSocket的首部信息很小,通信量也减少了。为了实现WebSocket通信,在HTTP连接建立之后,需要完成一次握手的步骤。(我也不知道为啥图片不能旋转o(>﹏<)o)

WebSocket通信流程

WebSocket API

JavaScript可以调用The WebSocket API内提供的程序接口,以实现WebSocket协议下的全双工通信。

期盼已久的HTTP/2.0

HTTP/2.0主要围绕7项技术进行讨论
表9-1

压缩 SPDY、Friendly
多路复用 SPDY
TLS义务化 Speed + Mobility
协商 Speed + Mobility,Friendly
客户端拉拽(Client Pull)/服务器推送(Server Push) Speed + Mobility
流量控制 SPDY
WebSocket Speed + Mobility

注:HTTP speed + Mobility简写为Speed+Mobility,Network-Friendly HTTP Upgrade 简写为Friendly。

附一篇介绍HTTP/2.0详解

(完)

猜你喜欢

转载自blog.csdn.net/qq_30164225/article/details/78702028