图解HTTP随笔

用户请求资源基本流程

客户端部分:
    1.HTTP协议的职责:生成针对目标Web服务器的HTTP请求报文,比如:请求获取http://XXX.YY/index 页面的资源
    2.TCP协议的职责:为了方便通信,将Http请求报文分割成报文段(按序号分为多个报文段)然后将每个报文段可靠的传给对方

路由器部分(多个):
    IP协议的职责: 搜索对方的地址,一边中转一边传送。详细介绍
服务器部分:
    1.TCP协议的职责: 从对方那里接收到的报文段——> 重组报文(按照序号以原来的顺序重组请求报文)
    2.HTTP协议的职责:对Web服务器请求的内容的处理(目标资源)
处理结果同样利用TCP/IP通信协议想用户进行回传。

HTTP 报文内的HTTP信息

    HTTP报文包含请求和效能感应的各种条件和属性的各类首部,一般来说有四种首部,分别是:通用首部、请求首部、响应首部和实体首部。可以看出,请求首部和响应首部是对应存在的,一个在请求报文中,一个在响应报文中。
    HTTP压缩传输常用的内容编码有gzip(GUN zip),compress(UNIX系统的标准压缩), deflate(zlib), identity(不进行编码)

返回结果的HTTP状态码

在这里插入图片描述

确保Web安全的HTTPS

通信加密:
    通过和SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,安全层传输协议)的组合使用,加密HTTP的通信内容。与SSL组合使用的HTTP称为HTTPS。

内容加密:
    这是由于HTTP协议中没有加密机制,那么久对HTTP协议传输的内容本身加密。加密对象是报文主体。主要应用在Web服务中,由于此方式不同于SSL或TLS将整个通信线路加密处理,所以内容仍有被篡改的风险。

风险1:
    不验证通信方的身份,任何人都可以发起请求。HTTP协议通信时,不存在确认通信方的处理步骤,收到任何请求都会返回一个响应(只要IP和port没有被服务器限制)。DOS攻击(Denial of Service,拒绝服务攻击)
风险2:
    无法验证报文完整性,接收到的内容可能有误。中间人攻击(Man-In-The-Middle attack, MITM)。

HTTPS改进:
    使用SSL进行加密处理,而且通过查看证书(第三方机构颁发)来确认对方是实际存在的。HTTP 加上加密处理和认证以及完整性保护后即是 HTTPS。

HTTPS并不是应用层的一种新协议。只是HTTP通信接口部分用SSL(Secure Socket Layer)和TLS(Transport Layer Security)协议代替而已。

对称秘钥加密: 加密解密使用同一个秘钥,传输的时候需要将解密的秘钥也发送给对方。
非对称加密:使用对方的公钥加密,接收方收到数据的时候使用自己的私钥进行解密。

    HTTPS采用混合加密机制,因为公开密钥加密比共享秘钥加密处理速度慢,所以充分利用两者各自的优势,将多种方法组合起来用于通信。在交换秘钥缓解使用公开秘钥加密方式,之后的建立通信交换阶段则使用共享秘钥加密方式。

怎样保证公钥的正确性?
    使用数字证书认证机构(CA,Certificate Authority)和其相关颁发的公开秘钥证书。

HTTPS通信过程:
在这里插入图片描述

既然 HTTPS 那么安全可靠,那为何所有的 Web 网站不一直使用 HTTPS ?
    加密通信会消耗更多的 CPU 及内存资源。如果每次通信都加密,会消耗相当多的资源,平摊到一台计算机上时,能够处理的请求数量必定也会随之减少。

基于 HTTP 的功能追加协议
SPDY:

    SPDY没有完全改写HTTP协议,而是在TCP/IP 的应用层与运输层之间通过新加会话层的形式运作。同时,考虑到安全性问题,SPDY规定通信中使用SSL
    多路复用流:
        通过单一的TCP连接,可以无限制处理多个HTTP请求。所有请求的处理都在一条TCP连接上完成。因此TCP的处理效率得到提高。
    赋予请求优先级:
        主要是为了在发送多个请求的时候,解决因带宽低而导致响应变慢的问题。
    压缩HTTP首部:
        通信产生的数据包数量和发送的字节数变少了。
    推送功能:
        支持服务器主动向客户端推送数据的功能。这样,服务器可直接发送数据。而不必等待客户端的请求。
    服务器提示功能:
        服务器可以主动提示客户端请求所需的资源。
        由于在客户端发现资源之前就可以获知资源的存在,因此在资源已经缓存等情况下,可以避免发送不必要的请求。

WebSocket协议:

    一旦 Web 服务器与客户端之间建立起 WebSocket 协议的通信连接, 之后所有的通信都依靠这个专用协议进行。通信过程中可互相发送 JSON、XML、HTML或图片等任意格式的数据。
   由于是建立在 HTTP 基础上的协议,因此连接的发起方仍是客户端, 而一旦确立 WebSocket 通信连接,不论服务器还是客户端,任意一方 都可直接向对方发送报文。
   WebSocket 协议的主要特点:
      推送功能、减少通信量
   为了实现WebSocket通信,需要用到HTTP的Upgrade首部字段,告知服务器通信协议发生改变,以达到握手的目的。服务器返回状态码101 Switching Protocols响应。

完整版文档
小结:《图解HTTP》已经读完了,下一步把买的《HTTP权威指南》读一下。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值