《图解HTTP》读书笔记(3)

  • toc
    {:toc}

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

何为认证

认证 即为了弄清坐在电脑前的用户的真实身份,需要对用户的信息进行核实的过程

常见的几种认证方式:

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

BASIC认证

基本步骤

  1. 请求的资源需要BASIC认证时,服务器返回401,告知客户端需要认证信息
  2. 客户端在接收到401后,将用户名和密码组成username:password形式,并进行Base64编码,然后以BASIC <编码后的字符串>形式赋给请求头的
    Authorization字段,然后再发送给服务器
  3. 服务器收到验证信息后,进行验证,如果验证通过,则返回200,并返回相应的资源

Base64并非真正的加密,如果具有BASIC认证的请求被窃听,用户名和密钥泄露的几率还是很大的

DIGEST认证

DIGEST认证使用质询/响应的方式进行认证,但不会像BASIC认证那样明文传输密码。因此DIGEST认证的安全等级要高于BASIC认证。

SSL客户端认证

SSL客户端认证是借由HTTPS的客户端证书完成认证的方式。

基于表单的认证

表单认证即我们通常用的在网页上输入密码和账号的认证方式

基本步骤:

  1. 客户端将用户填写的用户名和密码(会做加密处理)发送给服务器,通常使用POST请求
  2. 服务器在接收到用户名和密码后,会去和已经登录在服务器上的用户名和密码做匹配,如果匹配通过,则服务器会在Set-Cookie字段中加入用以
    识别用户的SessionID
  3. 客户端接收到SessionID会将其作为Cookie保存在本地,下次发送请求时会自动带上Cookie字段,这样服务器就能识别用户身份,不用重新登录认证了

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

随着时代的发展,HTTP协议上的限制和自身性能有限的缺点越来越明显,因此产生许多基于HTTP协议的功能追加协议

消除HTTP瓶颈的SPDY

Google发布了SPDY,旨在消除HTTP的性能瓶颈。

HTTP协议的瓶颈

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

解决方式

  • Ajax(异步Javascript与XML技术)的解决方法
    • 只更新一部分页面,因此传输的数据量大大减少
    • Ajax仍未解决HTTP协议本身存在的问题
  • Comet的解决方式
    • 一旦服务器有内容更新,Comet不会让请求等待,而是直接给客户端返回响应,这是一种延迟应答,模拟实现服务器向客户端推送的功能
    • 客户端发送请求后,不会立即得到响应,相应的请求会在服务器挂起,等到有内容更新时,响应才会返回客户端
    • 服务器为了维持链接会消耗更多资源
  • SPDY的目标
    • 从协议层面消除HTTP的瓶颈

SPDY的设计与功能

SPDY没有完全改写HTTP协议,而是在TCP和HTTP之间加入了一个会话层。SPDY的功能

  • 多路复用 单一的TCP链接可以处理多个HTTP请求
  • 赋予请求优先级 给请求追加优先级,解决因带宽低而导致响应变慢的问题
  • 压缩HTTP首部
  • 推送功能 支持服务器主动向客户端推送数据的功能
  • 服务器提示功能 服务器可主动提示客户端请求所需的资源

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

一旦建立WebSocket链接,不论是服务器还是客户端,任何一方都可以直接向对方发送报文。

WebSocket的特定:

  • 推送功能
  • 减少通信量,WebSocket的首部信息量很少

HTTP2.0

第十章 构建Web内容的技术

  • HTML
  • CSS
  • 动态HTML
  • Web应用
  • XML
  • JSON

第十一章 Web的攻击技术

针对Web的攻击技术

攻击模式

  • 主动攻击:SQL注入,OS命令注入
  • 被动攻击:

攻击方式

  • 跨站脚本攻击
  • SQL注入攻击
  • OS命令注入攻击
  • HTTP首部注入攻击
  • 邮件首部注入攻击
  • 目录遍历攻击
  • 远程文件包含漏洞

-