- toc
{:toc}
第八章 确认访问身份的认证
何为认证
认证 即为了弄清坐在电脑前的用户的真实身份,需要对用户的信息进行核实的过程
常见的几种认证方式:
- BASIC认证(基本认证)
- DIGEST认证(摘要认证)
- SSL客户端认证
- FormBase认证(基于表单的认证)
BASIC认证
基本步骤
- 请求的资源需要BASIC认证时,服务器返回401,告知客户端需要认证信息
- 客户端在接收到401后,将用户名和密码组成
username:password
形式,并进行Base64编码,然后以BASIC <编码后的字符串>
形式赋给请求头的
Authorization字段,然后再发送给服务器 - 服务器收到验证信息后,进行验证,如果验证通过,则返回200,并返回相应的资源
Base64并非真正的加密,如果具有BASIC认证的请求被窃听,用户名和密钥泄露的几率还是很大的
DIGEST认证
DIGEST认证使用质询/响应的方式进行认证,但不会像BASIC认证那样明文传输密码。因此DIGEST认证的安全等级要高于BASIC认证。
SSL客户端认证
SSL客户端认证是借由HTTPS的客户端证书完成认证的方式。
基于表单的认证
表单认证即我们通常用的在网页上输入密码和账号的认证方式
基本步骤:
- 客户端将用户填写的用户名和密码(会做加密处理)发送给服务器,通常使用POST请求
- 服务器在接收到用户名和密码后,会去和已经登录在服务器上的用户名和密码做匹配,如果匹配通过,则服务器会在Set-Cookie字段中加入用以
识别用户的SessionID - 客户端接收到SessionID会将其作为Cookie保存在本地,下次发送请求时会自动带上Cookie字段,这样服务器就能识别用户身份,不用重新登录认证了
第九章 基于HTTP的功能追加协议
随着时代的发展,HTTP协议上的限制和自身性能有限的缺点越来越明显,因此产生许多基于HTTP协议的功能追加协议
消除HTTP瓶颈的SPDY
Google发布了SPDY,旨在消除HTTP的性能瓶颈。
HTTP协议的瓶颈
- 一条连接上只可以发送一个请求
- 请求只能从客户端开始,客户端不可以接收除响应以外的任何指令
- 请求/响应未经压缩就发送,首部信息越多延迟越大
- 每次互相发送相同的首部造成浪费
- 可任意选择数据压缩格式,非强制压缩发送
解决方式
- 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首部注入攻击
- 邮件首部注入攻击
- 目录遍历攻击
- 远程文件包含漏洞
…
-