学习自https://www.cnblogs.com/zhangsanfeng/p/9125732.html,感谢博主

超文本传输协议HTTP被用于在web浏览器和网站服务器之间传递信息,但以明文方式发送内容,被攻击者截取就可以直接读取内容信息,不适合传输敏感信息。
为解决这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器身份,并为浏览器和服务器之间的通信加密。
HTTPS协议的主要作用可以分为两种:1.建立一个信息安全的通道,来确保数据传输的安全;2.确认网站的真实性。
HTTPS工作机制


1.客户端使用https的url访问web服务器,要求与web服务器建立ssl连接。
2.web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
3.客户端浏览器与web服务器协商ssl连接的安全等级,即信息加密的等级。
4.客户端浏览器根据安全等级,建立会话密钥(产生随机对称密钥),然后利用网站的公钥将会话密钥加密,并传送给网站。
5.web服务器利用自己的私钥解密出会话密钥。
6.web服务器与客户端浏览器利用会话密钥对称加密之间的通信。

HTTPS优点
1.比http安全,可防止中间人攻击,确保数据在传输过程中不被窃取、篡改。
缺点
1.握手协议比较耗时,会延长页面加载时间。
2.HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗。
3.证书需要付费。

最新文章

  1. Partition2:对表分区
  2. 从linux0.11中起动部分代码看汇编调用c语言函数
  3. WordPress基础:文章的自定义栏目的使用
  4. [C#常用代码]类库中读取解决方案web.Config字符串
  5. C++ 之const Member Functions
  6. 【python】入门学习(八)
  7. iOS-常用的辅助工具软件
  8. java 12-1 StringBuffer类
  9. Sublime Text 3 搭建 React.js 开发环境
  10. oracle的to_char中的fm
  11. sql server 2005导出数据
  12. 关于php中openssl_public_encrypt无填充的一个注意事项
  13. 架构选型之Nodejs与Java
  14. Java 中 AOP —— 探讨其存在价值及实现方式对比
  15. oracle 字符串 正则表达式 拆分,排序,合并
  16. -如何存储并定时更新access_token
  17. ORACL内部异常:
  18. Lint——Android SDK提供的静态代码扫描工具
  19. 为什么你作为一个.NET的程序员工资那么低?(转)
  20. ABBYY FineReader Pro for Mac系统要求

热门文章

  1. Unity3D_(游戏)卡牌01_启动屏界面
  2. Spring4 MVC json问题(406 Not Acceptable)
  3. 关于 oracle10g、oracle client和plsql devement 三者之间的关系
  4. python利器之切片
  5. 解决 Ubuntu 18.10 使用较新的独立显卡输出无法初始化图形界面并配置深度学习开发环境
  6. web基础知识汇总
  7. 监控部署nagios+snmp
  8. 前端必须掌握的 nginx 技能(4)
  9. redis的LRU策略理解
  10. Appium+python--元素定位uiautomatorviewer