测试之路 读书记--《图解HTTP》

最近在看这本《图解HTTP》,巩固下基础。书中讲述了HTTP协议的基本原理,并以图解的方式,形象的画出其工作方式。目前刚看完第九章,想分享一下这几章的内容。好了,废话不多,昊料开始~

01 HTTP





说到http就想到他的大哥,https。我们都知道https比http要安全(http协议中没有加密机制,但可以通过和SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,安全传输层协议)的组合使用,加密http的通信内容。

用SSL建立安全通信线路之后,就可以在这条线路上进行http通信了。与SSL组合使用的HTTP被称为https(http Secure,超文本传输安全协议)或HTTP over SS

除了安全性以外。http还有一些瓶颈,也为解决这些瓶颈。那些牛批的大佬们相处很多解决方法。

http存在的瓶颈

  • 一条连接上只可发送一个请求。

  • 请求只能从客户端开始。客户端不可以接收除响应以外的指令。

  • 请求/响应首部未经压缩就发送。首部信息越多延迟越大。

  • 发送冗长的首部。每次互相发送相同的首部造成的浪费较多。

  • 可任意选择数据压缩格式。非强制压缩发送

Ajax

Ajax(Asynchronous JavaScript and XML,异步JavaScript与XML技术)是一种有效利用JavaScript和DOM(Document Object Model,文档对象模型)的操作,以达到局部Web页面替换加载的异步通信手段。

核心技术是基于XMLHttpRequest的接口。通过JS调用服务端的部分请求,就能在页面中更新局部页面

d8979cea159a61b5c55ab70f1a07887d.png

Comet

服务器响应延迟应答技术,模拟实现服务器向客户端推送(Server Push)功能。常规请求中,服务器接收后会立即返回响应。使用这项技术,也为达到推送功能的效果,Comet会将响应置于挂起状态并在此时检查服务器,如果服务器有更新,则立即返回给客户端。

Comet解决了响应更新的问题,但是连接时效变长,在资源上有了一定的浪费

SPDY(speedy)

SPDY持续开发状态中的协议。在应用层与传输层之间增加会话层。控制对数据的流动。SPDY仍然使用了SSL保证安全性

说白话就是在现有的http协议中追加了一些新的功能,把这些新的功能归类到了一个会话层中。新功能包含:

  • 多路(流)复用:单一TPC连接可以无限处理多个HTTP请求

  • 压缩HTTP首部:压缩请求、响应首部

  • 推送功能:服务器向客户端推送功能

  • 服务器提示功能:服务器提示客户端可以下载的资源

fd15c380df290ff1adf59206b7446be5.png

谷歌在2015年9月的chrome版本中弃用了该协议。改成支持HTTP2.0协议。后续逐渐被HTTP2.0取代了

WebSocket

浏览器与服务器之前的全双工通信。简言之就类似打电话,双方均可以给对方发送数据。其建立链接主要是在http3次握手之后,再次发起一次请求。主要特点:

  • 推送功能:服务器可向客户端推送消息

  • 减少通信量:WebSocket协议首部信息很小

  • 握手、请求:实现WebSocket通信,就需要用到http的upgrade的首部字段,告知服务器通信协议发生编号,以达到握手的效果

  • 握手、响应:再接收到客户端的请求后,会返回一个状态吗为101 Switching Protocols的响应

350adfeb9f4bd32081abb3431759e271.png

  • WebSocket API:一个JS可调用的API

02 认证





认证也就是我们常说的身份证明,所处章节为第九章,这一张主要是围绕了HTTP认证、SSL认证、表单认证等做出了相关解释。

基本概念

认证也就是表明客户端身份的一项技术。在访问客户端时,为了数据安全性。所以需要这项技术来保证数据安全性。基本的认证信息如下:

  • 密码

  • 动态令牌

  • 数字证书

  • 生物认证

  • IC卡等

HTTP认证

HTTP的认证方式有以下四种

  • BASIC认证:基本认证

  • DIGEST认证(摘要认证)

  • SSL客户端认证

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

BASIC认证

BASIC认证(基本认证)是从HTTP/1.0就定义的认证方式。即便是现在仍有一部分的网站会使用这种认证方式。是Web服务器与通信客户端之间进行的认证方式。

bc2b6d7dc8f7627b0a7b5649c4f2c5f6.png

基本认证存在一定的安全性以及不灵活性。由于采用编码格式为Base64的方式进行编码处理。不需要增加任何附加信息就可以解码。所以存在很高的安全性问题。

DIGEST

HTTP1.1中出现的一种方式。这种认证应用了一种叫质询的一种校验方式。就是一方发起一个质询码,另一方接收到质询码以后进行响应码的生成。最后将响应码发送给初始方,进行认证

1d45ae0602c616d497412069549f0a44.png

与BASIC认证方式一样。存在一定的灵活性以及安全性问题

SSL客户端认证

在请求中使用双因素认证,多重保障了安全性。

双因素认证指的是客户端的证书认证以及客户端用户密码认证。即确认了客户端的操作计算机,也确认了客户端操作人。

在SSL中,证书是认证过程中的第一道关卡。

  • 客户端发起请求时,服务器会要求客户端提供证书

  • 客户端提供证书后,会将该证书以Client Certificate(客户端证明)报文的形式发送给服务器

  • 服务器在验证了证书的有效性后,进入用户认证环节,即用户名密码认证环节

表单验证

表单验证主要是由代码层面所谓,不存在协议中。

表单验证常用到的安全验证方法就是存储cookie以及session。

7e55a3a051c44cd0294c3a5b586ec063.png

本期读书分享就先到这里了。各位大佬。我们下期见~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值