美文网首页
《图解HTTP》读书笔记

《图解HTTP》读书笔记

作者: 管弦_ | 来源:发表于2017-11-25 17:22 被阅读0次

    《图解HTTP》读书笔记

    TITLE:《图解HTTP》
    AUTHOR:上野宣
    TRANSLATOR:于均良
    SHOP:http://csdn.com/
    BUY:2017-11-03
    READ:2017-11-10
    NOTE:2017-11-25
    INTENT:学习HTTP协议
    

    TCP/IP协议簇分层:

    应用层:

    应用层决定了向用户提供应用服务时通信的活动。

    例如:HTTP,FTP 和 DNS

    传输层:

    传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。

    例如:TCP和UDP

    网络层:

    网络层用来处理在网络上流动的数据包。

    例如:IP协议

    数据链路层:

    用来处理连接网络的硬件部分。

    例如:操作系统、硬件的设备驱动、网卡

    TCP/IP协议簇分层
    负责传输的IP协议

    IP 协议的作用是把各种数据包传送给对方。

    使用ARP协议凭借 MAC地址进行通信,ARP是一种用以解析地址的协议,根据通信方的 IP 地址就可以反查出对应的 MAC 地址。

    IP协议
    确保可靠性的TCP协议

    TCP协议为了更容易传送大数据才把数据分割,而且TCP协议能够确认数据最终是否送达到对方。

    TCP协议三次握手
    负责域名解析的DNS服务

    DNS 协议提供通过域名 查找IP地址,或逆向从IP 地址反查域名的服务。

    DNS服务

    各种协议与 HTTP 协议的关系

    各种协议与 HTTP 协议的关系

    HTTP协议的内容:

    在两台计算机之间使用HTTP协议通信时,在一条通信线路上必定有一端是客户端,另一端则是服务器端。

    通过请求和响应的交换达成通信。

    通过请求和响应的交换达成通信
    告知服务器意图的 HTTP 方法
    HTTP方法
    HTTP报文

    请求报文

    请求报文

    响应报文

    响应报文

    通用首部字段:

    通用首部字段

    请求首部字段:

    请求首部字段

    响应首部字段:

    响应首部字段

    实体首部字段:

    实体首部字段

    返回码:

    返回码

    提升编码传输速率:

    持久连接

    持久连接

    管线化

    管线化

    代理

    代理是一种有转发功能的应用程序,它扮演了位于服务器和客户端“中间人”的角色,接收由客户端发送的请求并转发给服务器,同时也接收服务器返回的响应并转发给客户端。

    代理服务器 缓存服务器

    压缩传输的内容编码

    1. gzip(GNU zip)
    2. compress(UNIX 系统的标准压缩)
    3. deflate(zlib)
    4. identity(不进行编码)

    分割发送的分块传输编码

    在传输大容量数据时,通过把数据分割成多块,能够让浏览器逐步显示页面。

    使用 Cookie 的状态管理

    使用 Cookie 的状态管理

    HTTP安全性和HTTPS协议:

    HTTP安全性的缺陷

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

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

    HTTPS

    HTTPS 是身披 SSL 外壳的 HTTP

    共享密钥加密

    共享密钥加密

    公开密钥加密

    公开密钥加密

    HTTPS采用混合加密机制

    HTTPS采用混合加密机制

    证明公开密钥正确性的证书

    [图片上传失败...(image-9e4651-1511602975677)]

    由自认证机构颁发的证书称为自签名证书

    自签名证书

    HTTPS 通信步骤

    HTTPS通信步骤

    步骤 1: 客户端通过发送 Client Hello 报文开始 SSL通信。报文中包 含客户端支持的 SSL的指定版本、加密组件(Cipher Suite)列表(所使用的加密算法及密钥长度等)。

    步骤 2: 服务器可进行 SSL通信时,会以 Server Hello 报文作为应 154 答。和客户端一样,在报文中包含 SSL版本以及加密组件。服务器的加密组件内容是从接收到的客户端加密组件内筛选出来的。

    步骤 3: 之后服务器发送 Certificate 报文。报文中包含公开密钥证书。

    步骤 4: 最后服务器发送 Server Hello Done 报文通知客户端,最初阶段的 SSL握手协商部分结束。

    步骤 5: SSL第一次握手结束之后,客户端以 Client Key Exchange 报 文作为回应。报文中包含通信加密中使用的一种被称为 Pre-master secret 的随机密码串。该报文已用步骤 3 中的公开密钥进行加密。

    步骤 6: 接着客户端继续发送 Change Cipher Spec 报文。该报文会提示服务器,在此报文之后的通信会采用 Pre-master secret 密钥加密。

    步骤 7: 客户端发送 Finished 报文。该报文包含连接至今全部报文的整体校验值。这次握手协商是否能够成功,要以服务器是否能够正确 解密该报文作为判定标准。

    步骤 8: 服务器同样发送 Change Cipher Spec 报文。

    步骤 9: 服务器同样发送 Finished 报文。

    步骤 10: 服务器和客户端的 Finished 报文交换完毕之后,SSL连接 就算建立完成。当然,通信会受到 SSL的保护。从此处开始进行应用 层协议的通信,即发送 HTTP 请求。

    步骤 11: 应用层协议通信,即发送 HTTP 响应。

    步骤 12: 最后由客户端断开连接。断开连接时,发送 close_notify 报 文。

    上图做了一些省略,这步之后再发送 TCP FIN 报文来关闭与 TCP 的通信。

    相关文章

      网友评论

          本文标题:《图解HTTP》读书笔记

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