《HTTP - https》
一:HTTP 缺点?
- 明文通讯(也是最受诟病的一个缺点)
- 不验证对方的身份(你说你是你?你怎么证明你是你呢?)
- 无法验证报文的完整性,可能已经被篡改(在挨打的边缘,来回试探)
二:HTTPS概述
- 基于HTTP协议,通过SSL(采用非对称加密方式) 或TLS提供加密处理数据、验证对方身份以及数据完整性保护。
3:HTTPS通信步骤
- 浏览器发起请求访问服务器的443端口发起请求,请求携带了浏览器支持的加密算法和哈希算法。
- 服务器收到请求,选择浏览器支持的加密算法和哈希算法。同时把 带有[公钥+颁发机构+过期时间等]的证书返回给客户端 (同时还有证书的hash摘要)。
- 浏览器进入数字证书认证环节(hash摘要相同),这一部分是浏览器内置的TLS完成的:
- 浏览器会根据证书找到服务器下发证书对应的机构。
- 如果查到了对应的机构,则取出该机构颁发的公钥。
- 如果没找到,提示用户该证书是不是由权威机构颁发,是不可信任的。
- 用机构的证书公钥解密得到证书的内容和证书签名,内容包括网站的网址、网站的公钥、证书的有效期等。
- 浏览器会先验证证书签名的合法性。
- 签名通过后,浏览器验证证书记录的网址是否和当前网址是一致的,不一致会提示用户。
- 如果网址一致会检查证书有效期,证书过期了也会提示用户。
- 认证通过后, 浏览器生成一个随机数R,并使用网站公钥对R进行加密。
- 浏览器将加密的R传送给服务器。
- 服务器用自己的私钥解密得到R。(因为非对称加密计算量大,整个通信过程只会用到一次非对称加密算法,之后通信都是通过对称加密算法)
- 服务器以R为密钥使用了对称加密算法加密网页内容并传输给浏览器。
- 浏览器以R为密钥使用之前约定好的解密算法(对称加密算法)获取网页内容。
- 
四:HTTPS 缺点
- 慢 比 HTTP 慢 2~100 倍。
- HTTPS连接服务器端资源占用高很多,支持访客多的网站需要投入更大的成本。
- 多余的网络负载和网络IO
- 加密/解密 算法也会使得CPU多出很多开销。
- 贵/花钱
五:参考
- 《图解 HTTP》
《HTTP - https》的更多相关文章
- Python学习笔记(2) Python提取《釜山行》人物关系
参考:http://www.jianshu.com/p/3bd06f8816d7 项目原理: 实验基于简单共现关系,编写 Python 代码从纯文本中提取出人物关系网络,并用Gephi 将生成的网 ...
- 【读书笔记《Bootstrap 实战》】6.单页营销网站
我们已经掌握了很多实用 Bootstrap 的重要技能.现在,是时候拿出更多的创意来帮助客户实现他们全方位在线营销的愿望了.此次将带领大家做一个漂亮的单页高端营销网站. 主要任务如下: □ 一个大型 ...
- 【读书笔记《Bootstrap 实战》】5.电子商务网站
构建了公司网站之后,接下来就可以考虑设计一个在线商店了. 此次的设计以上一章的设计为基础, 只是添加了一个包含如下元素的新页面: □ 包含商品小图.标题和说明的产品网格: □ 位于左侧的变懒,用于按类 ...
- 【读书笔记《Bootstrap 实战》】4.企业网站
上一章有对个人作品站点进行一些优化.本章,轮到我们充实这个作品站点了,补充一些项目,从而展示我们的能力.换句话说,我们要构建一个相对复杂的企业网站主页. 下面有几个成功企业的网站: □ Zappos ...
- 【读书笔记《Bootstrap 实战》】3.优化站点资源、完成响应式图片、让传送带支持手势
A.优化站点资源 速度很重要.用户很关心.我们的站点必须加载够快,否则用户就会走人.SEO 也很重要.我们的站点必须加载够快,否者搜索排名就会下降. 明白了这样,我们就来清点一下 [Bootstrap ...
- 【读书笔记《Bootstrap 实战》】2.作品展示站点
假设我们已经想好了要给自己的作品弄一个在线站点.一如既往,时间紧迫.我们需要快一点,但作品展示效果又必须专业.当然,站点还得是响应式的,能够在各种设备上正常浏览,因为这是我们向目标客户推销时的卖点.这 ...
- 【读书笔记《Bootstrap 实战》】1.初识Bootstrap
作为Web前端开发框架,Bootstrap为大多数标准的UI设计常见提供了用户友好.扩浏览器的解决方案. 1.下载Bootstrap 打开官方网址 http://getbootstrap.com/ 进 ...
- 2016-2017-2 《Java程序设计》教学进程
2016-2017-2 <Java程序设计>教学进程 目录 考核方式 课前准备 教学进程 第00周学习任务和要求 第01周学习任务和要求 第02周学习任务和要求 第03周学习任务和要求 第 ...
- 2016-2017-2 《Java程序设计》预备作业1 总结
2016-2017-2 <Java程序设计>预备作业1 总结 预备作业01:你期望的师生关系是什么见https://edu.cnblogs.com/campus/besti/2016-20 ...
随机推荐
- idea android 开发
plugins 勾上 插件即可
- 【iCore4 双核心板_FPGA】例程十五:基于单口RAM的ARM+FPGA数据存取实验
实验现象: 写RAM命令格式:write:地址(0-255),数据(0-65535)\cr\lf 读RAM命令格式:read:地址(0-255)\cr\lf 核心代码: int main(void) ...
- 第四百节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5安装python3.5.1
第四百节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5安装python3.5.1 1.检查系统是否安装了python [root@192 ~]# rpm -qa ...
- Keras查看model weights .h5 文件的内容
Keras的模型是用hdf5存储的,如果想要查看模型,keras提供了get_weights的函数可以查看: for layer in model.layers: weights = layer.ge ...
- 为何谷歌围棋AI AlphaGo可能会把李世石击溃
/* 版权声明:可以随意转载,转载时请标明文章原始出处和作者信息 .*/ author: 张俊林 谷歌DeepMind开发的人工智能围棋程序AlphaGo以5:0的压倒性优势击败了欧洲围棋冠军.专业二 ...
- IOError: cannot open resource
在运行PIL_test.py文件的时候报错: File "PIL_test.py", line 40, in <module> font = ImageFont.tru ...
- Don't forget to Cherish
Watch the video Cherish time, Cherish memories, Cherish tears, Cherish smiles, Cherish friends, Cher ...
- Unity3D Shader 空气扭动效果
//预览图 //原理 一个摄像机CullingMask设置只可见"Distortion"的Layer(需要自己手动加),输入到一张RenderTexture,其实就是用于确定哪里要 ...
- python web自动化测试中失败截图方法汇总
在使用web自动化测试中,用例失败则自动截图的网上也有,但实际能落地的却没看到,现总结在在实际应用中失败截图的几种方法: 一.使用unittest框架截图方法: 1.在tearDown中写入截图的 ...
- Docker详解
一.Docker 简介 Docker 两个主要部件: Docker: 开源的容器虚拟化平台 Docker Hub: 用于分享.管理 Docker 容器的 Docker SaaS 平台 -- Docke ...