- http优缺点
优点
由于ssl是在tcp上层添加的一层 所以除了进行tcp连接http连接还必须进行ssl连接,因此整体上处理通信量不可避免增加
由于ssl必须进行加密传输所以服务器、客户端必须消耗硬件资源进行解密 导致负载增强
缺点
明文通信
不验证通信双方身份 :证书
无法证明报文完整性 :md5、SHA-1生成散列值校验(但是实际上这个散列值在传输中也有可能被改变) - 完善http
①http + ssl、tls
②报文内容加密(加密后的内容还是会不安全看 因为这些数据包是可能被篡改 尽管数据报的内容是加密的)
http + 加密 + 认证 + 完整性保护 = https = http + ssl、tls
共享密匙:传输这个密匙可能会有风险
公开密匙:公开密匙加密、私有密匙解密( 传递的公开密匙可能被截获替换成伪装者的公开密匙每次发送之后伪装者用自己私匙解密)
混合加密:效率低 先用公开密匙方法传递共享密匙 在使用共享密匙加密传输
证书: 保证第一次发送的公开密匙正确性 - 认证
basic认证(用户名:密码) Base64 编码放在请求头去请求传输到服务器 由于没有加密获取到这个报文的人能解码后获取用户名和密码铭文
digest认证:客户端请求认证;服务器生成nonce(盐值)传递回客户端 ;客户端根据盐值加密密码生成加密后的字符串放在response传递到服务器跟服务器存储的加密后的密码进行比对
ssl客户端认证:
基于表单的认证:
session-cookie认证 - web攻击
主动攻击:sql注入(拼接sql改变原意) os命令注入
被动攻击:预设陷阱,客户点击后发送含有攻击代码的http请求给web应用
跨站脚本攻击:form表单输入<script>name<script>直接显示在html没有经过转义可能会有攻击脚本内嵌在输入框让服务器运行这个攻击代码;利用预先设好的陷阱伪造登录界面拿到登录密码
对用户cookie窃取攻击
Dos攻击:发送大量合法请求,使服务器过载
后门程序:开发者debug;开发为自身利益植入;攻击者植入
点击劫持:透明按钮点击执行攻击脚本
密码破解:穷举(银行纯数字6位)、字典攻击(利用事先收集的候选密码通过组合生成密码库) 彩虹表:保存原始密码与散列之后的散列值映射关系
错误提示:不能返回程序报错信息(可能会给攻击者提示);不能提示信息泰国完整(账号没有注册等等) - http协议的瓶颈改进
一条连接一个请求不能复用
请求响应首部信息未压缩
每次发送的首部信息大量重复
报文主体可任意选择压缩格式
都是请求响应的方式,客户端不可以接受响应以外的命令
ajax 局部刷新技术(传递内容少,但是发送的请求会很多,未从根本解决)
comet 延迟应答,请求来到没有内容的更新,吧请求挂起,等到有更新就立即反馈客户端(为保留连接耗费更多资源)
HTTP 应用
SPDY 会话
SSL、TLS
TCP 传输
IP 网络
SPDY 多路复用、请求赋予优先级、压缩http首部、推送功能(服务器可主动向客户端推送数据)、服务器提示功能
websocket 推送功能、减少通信量、先用http握手握手成功后通信不再使用http数据帧而是websocket独立数据帧
http2.0讨论方向:
二进制分帧传输、
相关服务:泰国服务器
①加速TLS交付。HTTP/2只需一次耗时的TLS握手,并且通过一个连接上的多路利用实现最佳性能。HTTP/2还会压缩首部数据
②每个服务器建立一个连接而非http1.1(而且响应会阻塞)的每个文件多路复用
③适合内容混杂的页面。HTTP/2特别适合混合了HTML、CSS、JavaScript、图片和有限多媒体的传统页面。浏览器可以优先安排那些重要的文件请求,让页面的关键部分先出现,快出现。
④头部压缩 二进制⑤服务器推送







