一: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》

  - 深入浅出 HTTPS 工作原理

《HTTP - https》的更多相关文章

  1. Python学习笔记(2) Python提取《釜山行》人物关系

    参考:http://www.jianshu.com/p/3bd06f8816d7 项目原理:   实验基于简单共现关系,编写 Python 代码从纯文本中提取出人物关系网络,并用Gephi 将生成的网 ...

  2. 【读书笔记《Bootstrap 实战》】6.单页营销网站

    我们已经掌握了很多实用 Bootstrap  的重要技能.现在,是时候拿出更多的创意来帮助客户实现他们全方位在线营销的愿望了.此次将带领大家做一个漂亮的单页高端营销网站. 主要任务如下: □ 一个大型 ...

  3. 【读书笔记《Bootstrap 实战》】5.电子商务网站

    构建了公司网站之后,接下来就可以考虑设计一个在线商店了. 此次的设计以上一章的设计为基础, 只是添加了一个包含如下元素的新页面: □ 包含商品小图.标题和说明的产品网格: □ 位于左侧的变懒,用于按类 ...

  4. 【读书笔记《Bootstrap 实战》】4.企业网站

    上一章有对个人作品站点进行一些优化.本章,轮到我们充实这个作品站点了,补充一些项目,从而展示我们的能力.换句话说,我们要构建一个相对复杂的企业网站主页. 下面有几个成功企业的网站: □ Zappos ...

  5. 【读书笔记《Bootstrap 实战》】3.优化站点资源、完成响应式图片、让传送带支持手势

    A.优化站点资源 速度很重要.用户很关心.我们的站点必须加载够快,否则用户就会走人.SEO 也很重要.我们的站点必须加载够快,否者搜索排名就会下降. 明白了这样,我们就来清点一下 [Bootstrap ...

  6. 【读书笔记《Bootstrap 实战》】2.作品展示站点

    假设我们已经想好了要给自己的作品弄一个在线站点.一如既往,时间紧迫.我们需要快一点,但作品展示效果又必须专业.当然,站点还得是响应式的,能够在各种设备上正常浏览,因为这是我们向目标客户推销时的卖点.这 ...

  7. 【读书笔记《Bootstrap 实战》】1.初识Bootstrap

    作为Web前端开发框架,Bootstrap为大多数标准的UI设计常见提供了用户友好.扩浏览器的解决方案. 1.下载Bootstrap 打开官方网址 http://getbootstrap.com/ 进 ...

  8. 2016-2017-2 《Java程序设计》教学进程

    2016-2017-2 <Java程序设计>教学进程 目录 考核方式 课前准备 教学进程 第00周学习任务和要求 第01周学习任务和要求 第02周学习任务和要求 第03周学习任务和要求 第 ...

  9. 2016-2017-2 《Java程序设计》预备作业1 总结

    2016-2017-2 <Java程序设计>预备作业1 总结 预备作业01:你期望的师生关系是什么见https://edu.cnblogs.com/campus/besti/2016-20 ...

随机推荐

  1. Ubuntu 14.04 安装 Blender,并放桌面

    1.打开Blender官网 2.在主页点击down按钮,跳转到下载页面 3.根据自己的操作系统,选择合适的版本,这里使用的是ubunut 64位,所以下载Linux 64bit,保存文件,一般保存到h ...

  2. 小程序url传参如何写变量

    <navigator url="../../pages/newsDetail/newsDetail?id={{news.id}}"> <view class=&q ...

  3. [Tensorflow] Cookbook - Object Classification based on CIFAR-10

    Convolutional Neural Networks (CNNs) are responsible for the major breakthroughs in image recognitio ...

  4. [Artoolkit] Marker of nftSimple

    重点看:markers.dat 的解析原理 1. int main(int argc, char** argv) { ]; const char *cparam_name = "Data2/ ...

  5. [PHP] 03 - Form & Input

    PHP 完整表单实例 一.表单示范 二.对应代码 <!DOCTYPE HTML> <html> <head> <meta charset="utf- ...

  6. [Node.js] 09 - Connect with Database

    简介两个数据库: Node.js 连接 MySQL Node.js 连接 MongoDB Node.js 连接 MySql 导入已有数据库: unsw@unsw-UX303UB$ mysql -u r ...

  7. Atom与markdown

    简述 Atom是github开发的开源跨平台的编辑器,Atom的强大可以与大名鼎鼎的Sublime Text相媲美.因为使用过Sublime Text,所以用Atom上手很快.这篇文章主要介绍使用At ...

  8. 10.21CRM项目(01)

    2018-10-21 13:35:19 crm第一天!放上初始源码! 后面等做完最后一天的手放上所有源码! 越努力越幸运!永远不要高估自己! 注意 多层for循环的时候,切记,不要名字重复!啦!!!! ...

  9. Android开发-基本概念(申明:来源于网络)

    Android开发-基本概念(申明:来源于网络) 地址:http://blog.csdn.net/iwanghang/article/details/53505926

  10. Linux关闭IPV6

    Linux关闭IPV6的方法 修改配置文件/etc/sysctl.conf添加以下1行 net.ipv6.conf.all.disable_ipv6 = 1 设置生效 sysctl -p 查看没有IP ...