http理解(中)

作者: Kris_lee | 来源:发表于2018-05-16 15:09 被阅读11次

    title: http 理解(中)
    date: 2018-05-15 14:53:22
    tags: http


    确保Web安全的HTTPS

    在HTTP协议中有可能 存在 信息窃听或身份伪装等安全问题。使用HTTPS通信机制可以有效地防止这些问题。

    HTTP的缺点

    • 通信使用明文(不加密),内容可能会被窃听
    • 不验证通信方的身份,因此有可能遭遇伪装
    • 无法证明报文的完整性,所以有可能已遭遇创思

    当然这些问题不仅仅是在HTTP上出现,其他未加密协议中也会存在这类问题。

    除此之外,HTTP本身还有很多缺点。而且,还有像某些特定的Web服务器和特定的Web浏览器在实际应用中存在的不足。

    加密处理防止被窃听

    通信的加密

    HTTP协议中没有加密机制。但可以通过和SSL 或 TLS 的组合使用,加密HTTP的通信内容。

    • 用SSL建立安全通信路线之后,就可以在这条线路上进行HTTP通信了,与SSL组合使用的HTTP被称之为 HTTPS
    • 查明对方的证书
    • 通过MD5和SHA-1等散列值校验方法

    HTTP + 加密 + 认证 + 完整性保护 = HTTPS

    既然HTTPS那么安全可靠,那为何所有的Web网站不一直使用HTTPS。

    • 与纯文本通信相比,加密通信会消耗更多的CPU和内存资源,如果每次通信都加密,会消耗相当多的资源,平摊到一台计算机上时,能够处理的请求数量必定也会随之减少。

    • 购买证书的开销也是原因之一。

    确认访问用户身份的认证

    谱写web页面指向让特定的人浏览,或者干脆仅本人可见。为达到这个目标,必不可少的就是认证功能。

    通常我们知道的认证 有以下:

    • 密码
    • 动态令牌
    • 数字证书
    • 生物认证
    • IC卡等

    HTTP 使用的认证方式

    HTTP/1.1 使用的认证方式如下所示。

    • BASIC 认证(基本认证)
    • DIGEST 认证(摘要认证)
    • SSL 客户端认证
    • FormBase 认证(基于表单认证)

    前面两个用的不多,在这里就不过多描述,SSL 虽然安全,但是如果是个人网站,则购买证书也需要花费金额。因此大多数会采用基于表单认证。

    Session 管理 及 Cookie 应用

    基于HTTP的动能追加协议

    虽然HTTP协议既简单又简洁,但随着时代的发展,其功能使用上捉襟见肘的疲态已经凸现。

    消除HTTP瓶颈的SPDY

    Google在2010年发布了SPDY,其开发目标旨在解决HTTP的性能瓶颈,缩短Web页面的加载时间

    http标准的瓶颈:

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

    AJAX的方案 和 comet的方案的出现解决一部分问题,但是仍为解决http的瓶颈问题。

    SPDY的目标

    SPDY没有完全改写HTTP协议,而是在TCP/IP的应用层与传输层之间通过新加会话层的形式运作。同时,考虑到安全性问题,SPDY规定通信中使用SSL。

    使用SPDY后,HTTP协议获得额外功能。

    • 多路复用流
      通过单一的TCP连接,可以无限制处理多个HTTP请求。所有请求的处理都在一条TCP连接上完成,因此TCP的处理效率得到提高。

    • 赋予请求优先级
      SPDY不仅可以无限制地并发处理请求,还可以给请求逐个分配优先级。这样主要是为了在发送多个请求时,解决因带宽低而导致响应变慢的问题

    • 压缩HTTP首部
      压缩HTTP请求和响应的首部。这样依赖,通信产生的数据包数量和发送的字节数就更少了

    • 推送功能 支持服务器主动向客户端推送数据的功能。这样,服务器可直接发送数据,而不必等待客户端的请求

    • 服务器提示功能 服务器可以主动提示客户端请求所需的资源,由于在客户端发现资源之前就可以获得资源的存在,因此在资源已经缓存等情况下,可以避免发送不必要的请求

    使用浏览器进行全双工通信的 WebSocket

    利用Ajax和Comet技术进行通信可以提升Web的浏览速度。但问题在于通信若使用HTTP协议,就无法彻底解决瓶颈问题。WebSocket网络技术正是为解决这些问题而实现的一套新协议及API。

    WebSocket的设计与功能

    WebSocket,即Web浏览器与Web服务器之间全双工通信标准。其中,WebSocket协议由IETF定为标准,WebSocket API 由W3C定为标准。扔在开发中的WebSocket技术主要是为了解决Ajax 和 Comet里XMLHttpRequest附带的缺陷所引起的问题。

    成功握手确立WebSocket连接之后,通信时,不再使用HTTP的数据帧,而采用WebSocket独立的数据帧。

    HTTP/2.0

    HTTP/2.0 的目标是改善用户在使用Web时的速度体验。由于基本上都会先通过HTTP/1.1与TCP连接,现在我们以下面这些协议为基础,探讨一下它们的实现方法。

    • SPDY
    • HTTP Speed + Mobiliity
    • Network-Friendly HTTP Upgrade

    **HTTP Speed + Mobiliity **是由微软起草,用于改善并提高移动通信时的通信速度和性能的标准。它建立在Google公司提出的SPDY与WEBSOCKET的基础上。

    Network-Friendly HTTP Upgrade 主要是在移动端通信时改善HTTP性能的标准。

    相关文章

      网友评论

        本文标题:http理解(中)

        本文链接:https://www.haomeiwen.com/subject/amipdftx.html