读书笔记:《图解HTTP》第八章、第九章

举报
在逃coder 发表于 2021/11/30 09:33:53 2021/11/30
【摘要】 第一章:了解web及网络基础 ;第二章:简单的HTTP协议  >>第三章:HTTP报文内的HTTP信息;第四章:返回结果的HTTP状态码   >>第五章:与HTTP协作的web服务器;第六章:HTTP首部(上)>>第六章:HTTP首部(下);第七章:确保WEB安全的HTTPS  >>    第八章 确认访问用户身份的认证        何为认证           1.核对信息       ...

第一章:了解web及网络基础 ;第二章:简单的HTTP协议  >>

第三章:HTTP报文内的HTTP信息;第四章:返回结果的HTTP状态码   >>

第五章:与HTTP协作的web服务器;第六章:HTTP首部(上)>>

第六章:HTTP首部(下);第七章:确保WEB安全的HTTPS  >>


    第八章 确认访问用户身份的认证    


    何为认证

           1.核对信息

                 • 密码:只有本人才会知道的字符串信息。

                 • 动态令牌:仅限本人持有的设备内显示的一次性密码。

                 • 数字证书:仅限本人(终端)持有的信息。

                 • 生物认证:指纹和虹膜等本人的生理信息。

                 • IC 卡等:仅限本人持有的信息。

           2. HTTP/1.1 使用的认证方式

                 ▶ BASIC 认证(基本认证)

                 ▶ DIGEST 认证(摘要认证)

                 ▶ SSL 客户端认证

                 ▶ FormBase 认证(基于表单认证)

                 ▶ 等等


    BASIC认证

           Web 服务器与通信客户端之间进行的。

           认证步骤:(1)客户端发送请求Authorization Required;(2)服务器端返回状态码401,带WWW-Authenticate以告知客户端需要进行的认证;(3)客户端将用户ID和密码以Base64方式编码后发送;(4)服务器端接收包含首部字段Authorization,成功200,认证失败返回401

           *注意Base64 是编码方式,不是加密处理

           问题:不灵活、不安全


    DIGEST认证

           同样质询/响应的方式(challenge/response),但不像BASIC认证那样直接发送明文密码。

81.png

           认证步骤:(1)客户端请求;(2)服务器端发送临时质询码(随机数)及认证状态码401;(3)客户端发送摘要及由质询码计算出的响应码;(4)服务器认证,成功200,失败401


    SSL客户端认证

           需要客户端安装证书

           认证步骤:(1)客户端发送认证资源请求;(2)服务器发送Certificate Request报文,要求客户端提供证书。(3)客户端将证书信息以Client Certificate报文方式发送给服务器。(4)服务器验证后领取证书内客户端的公开密钥,开始HTTPS加密通信。

           一般,SSL客户端认证由证书+表单认证的方式,采用双因素认证


    基于表单认证(多数

           此方式认证的登录信息及认证过程都标准化方法,一般用Cookie来管理会话(联系前面),保存用户的登录状态。

           客户端会向服务器上的 Web 应用程序发送登录信息(Credential),按登录信息的验

证结果认证。

           认证步骤:(1)客户端把用户ID和密码放入报文的实体部分,通常用POST方法把请求发送给服务器;(2)服务器在首部字段Set-Cookie内写入Session ID以用于是识别客户;(3)客户端接收Session ID,将其作为Cookie保存在本地。(4)下次想服务器发送请求,Session ID也会发给服务器,浏览器自动发送Cookie



    第九章 基于HTTP的功能追加协议    


    SPDY

           产生举例场景:网站上新内容的及时更新,http需要频繁的确认

           HTTP问题:   (1) 一条连接一个请求

                                 (2)请求只从客户端开始,客户端只接受响应

                                 (3)首部信息未经压缩,首部信息越多延迟越大

                                 (4)首部冗长,每次发送相同首部造成浪费

                                 (5)非强制压缩发送

           解决:1. Ajax(Asynchronous JavaScript and XML,异步JavaScript与XML技术):只更新Web局部页面,减少数据传输,但有大量请求产生。

                     2. Comet:将响应置于挂起的状态,一旦有更新,服务器立刻返回,但是连接时间变长,浪费资源。

                     3. SPDY:没有完全改写HTTP协议,是在 TCP/IP 的应用层与运输层之间通过新加会话层的形式运作。同时,考虑到安全性问题,SPDY 规定通信中使用 SSL。(会话控制数据流动,HTTP建立通信连接)

61.png

图:SPDY的设计

                       使用SPDY后,HTTP获得额外功能:

                       • 多路复用流:通过单一的 TCP 连接,可以无限制处理多个HTTP请求。

                       • 赋予请求优先级

                       • 压缩 HTTP 首部:减少数据包数量和发送字节数

                       • 推送功能:服务器主动先客户端推送数据

                       • 服务器提示功能:主动提示客户端请求所需的数据

                    *SPDY的确是一种可有效消除HTTP瓶颈的技术,但很多Web网站存在的问题并非仅仅是有HTTP瓶颈导致的


    WebSocket

           解决HTTP瓶颈的新协议及API,是Web浏览器和Web服务器之间全双工通信标准。

           主要特点:(1)一旦建立WebSocket协议的通信连接,之后所有的通信都依靠这个专用协议进行。

                          (2)无论客户端或者和服务器端都可直接向对方发送报文

                              (3)推送功能:支持服务器直接发送数据

                          (4)减少通信量:建立连接,保持连接状态,并且WebSocket首部信息很小

           有握手▪请求、握手▪响应

62.png

图:WebSocket通信


    HTTP/2.0  推进中,改善使用Web速度体验


    Web 服务器管理文件的 WebDAV

           WebDAV(即基于万维网的分布式创作和版本控制),是一个可对 Web 服务器上的内容直接进行文件复制、编辑、加解锁等操作的分布式文件系统

           拓展概念:集合(统一管理多个资源的概念)

                            资源(文件或集合)

                            属性(“名称 = 值”的格式)

                            锁(文件不可编辑的状态)

           新增方法与状态码(书182页)



未完待续

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。