HTTP与HTTPS的区别

安全性上,HTTPS是安全超文本协议,在HTTP基础上有更强的安全性。简单来说,HTTPS是使用TLS/SSL加密的HTTP协议

申请证书上,HTTPS需要使用ca申请证书

传输协议上, HTTP是超文本传输协议,明文传输;HTTPS是具有安全性的 SSL 加密传输协议

连接方式与端口上,http的连接简单,是无状态的,端口是 80; https 在http的基础上使用了ssl协议进行加密传输,端口是 443

HTTP的工作过程

HTTP由请求和响应构成,是一个标准的客户端服务器模型(C/S)。HTTP协议永远都是客户端发起请求,服务器回送响应。

  1. 地址解析。域名系统DNS解析域名得到主机的IP地址
  2. 封装HTTP请求数据包。封装的内容有以上部分结合本机自己的信息。
  3. 封装成TCP包,建立TCP连接(TCP的三次握手)
  4. 客户机发送请求命令。 建立连接后,客户机向服务器发送一个请求
  5. 服务器响应。服务器接到请求后,给予相应的响应信息
  6. 服务器关闭TCP连接。一般Web服务器向浏览器发送了请求数据,它要关闭TCP连接
  7. 客户端解析报文,解析HTML代码,并渲染

HTTPS的实现原理

HTTP以明文方式传输信息,不能保障数据传输的安全。

HTTPS在HTTP的基础上加入了SSL协议。

HTTPS使用SSL协议和TLS协议

SSL 依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

HTTPS的通信过程

https通信时,首先建立ssl层的连接,客户端将ssl版本号和加密组件发到服务器端,服务器端收到后对ssl版本号和加密组件进行匹配,同时将CA证书及密钥发送到客户端。客户端对证书进行验证,验证通过后使用非对称加密对数据通信时的密钥进行协商。协商后得到一致的获得一致的对称加密密钥。然后使用对称加密算法进行TCP连接,后续的过程跟http的过程一致。三次握手,数据交换,四次挥手,通信结束。

过程如下 :

  1. 客户端和服务器端通过TCP建立连接。
  2. 客户端向服务器发送HTTPS请求。
  3. 服务器响应请求,并将数字证书发送给客户端,数字证书包括公共秘钥、域名、申请证书的公司。
  4. 客户端收到服务器端的数字证书之后,会验证数字证书的合法性。
  5. 如果公钥合格,那么客户端会生成一个用于进行对称加密的密钥client key,并用服务器的公钥对客户端密钥进行非对称加密。
  6. 客户端会发起HTTPS中的第二个HTTP请求,将加密之后的客户端密钥发送给服务器。
  7. 服务器接收到客户端发来的密文之后,会用私钥对其进行非对称解密,得到客户端秘钥。并使用客户端秘钥进行对称加密,生成密文并发送。
  8. 客户端收到密文,并使用客户端秘钥进行解密,渲染网页。

简述http 和 https区别相关推荐

  1. 简述http和https区别

    http协议和https协议的区别主要是:传输信息安全性不同.连接方式不同.端口不同.证书申请方式不同 一.传输信息安全性不同 http协议:是超文本传输协议,信息是明文传输.如果攻击者截取了Web浏 ...

  2. HTTP与HTTPS区别/HTTPS知识点

    2019独角兽企业重金招聘Python工程师标准>>> 关于2017年AppStore新提交应用必须打开ATS的要求只剩下一个多月了,相信大部分开发者都已经完成了从http到http ...

  3. HTTP协议简介,数据安全 如何保证http传输安全性,http与https区别

    目前大多数网站和app的接口都是采用http协议,但是http协议很容易就通过抓包工具监听到内容,甚至可以篡改内容,为了保证数据不被别人看到和修改,可以通过以下几个方面避免. 重要的数据,要加密,比如 ...

  4. 简述同步和异步的区别

    简述同步和异步的区别 同步: 同步的思想是:所有的操作都做完,才返回给用户.这样用户在线等待的时间太长,给用户一种卡死了的感觉(就是系统迁移中,点击了迁移,界面就不动了,但是程序还在执行,卡死了的感觉 ...

  5. Http与Https区别及404状态码

    一.HTTP 与 HTTPS 区别 HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好. 使用 HTTPS 协议需要到 CA(Certi ...

  6. Http与Https区别,加密,证书

    1.HTTP与HTTPS区别 https与http相比,其在数据传输过程中对数据进行了加密,加密技术主要有对称加密和非对称加密两种. 2.对称加密/非对称加密 对称加密是指数据发送方和接收方在对数据进 ...

  7. scheme http https 区别 tls_HTTPS、HTTP、TLS/SSL工作及握手原理、PKI/CA密钥体系

    一.HTTPS与HTTP介绍 二.TLS/SSL工作原理 三.TSL/SSL握手过程 四.HTTPS性能优化 五.PKI体系 一.HTTPS与HTTP介绍 1.Https(Secure Hypetex ...

  8. http 与https 区别浅析

    2019独角兽企业重金招聘Python工程师标准>>> HTTP协议请求响应过程和HTTPS工作原理 HTTP协议 HTTP协议主要应用是在服务器和客户端之间,客户端接受超文本. 服 ...

  9. 面试必看之浅谈HTTP与HTTPS区别

    1.HTTP与HTTPS的定义 HTTP: 超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守 ...

最新文章

  1. 关于异步提交form表单
  2. 锐捷网络交换机配置命令大全
  3. C++/java/python 创建二维数组
  4. Visual Studio 2017 离线安装方式
  5. android代码重启设备,Android设备重启(reboot)---Android studio
  6. 填坑帖 By cellur925
  7. 南阳OJ 16 矩形嵌套
  8. Linux acpi off学习
  9. chinapub读书会第10期:机器学习与人工智能 6月25日相约阿里云+优客工场
  10. paypal接入指南
  11. c语言公共基础知识占多少分,计算机二级公共基础知识多少分
  12. Java——重写hashCode()和euqals()方法
  13. 判断字符串中哪个字符出现的次数最多?
  14. SQL Service数据库上机
  15. 使用CRF++实现命名实体识别
  16. 四氨基钴酞菁[Co(TAPC)],cas203860-42-8,齐岳生物提供定制材料
  17. System.Web.Mail.SmtpMail
  18. 理解bpmn先从他的基本元素入手
  19. WampServer下载与安装
  20. Linux 常用網路指令

热门文章

  1. c语言在一个文件后面添加数据类型,c语言简单入门之简单运行和数据类型
  2. qt程序卡死 linux,QtCreator中打开.ui文件时卡死崩溃的解决方法
  3. LL-verilog-HDLBitSim/circuit10解答和过程详解
  4. mysql load 占位符_Mysql占位符插入
  5. linux远程升级运行程序,运用RedHat的Kickstart升级Linux系统方法
  6. c51汇编语言如何定义全局变量_汇编语言期末复习笔记(七)
  7. java刘保_[SSH] Eclipse+Struts2的简单应用
  8. 新版kali安装beef-xss一大堆报错解决办法
  9. 中立时滞matlab,中立型时滞系统的稳定性改进判据
  10. golang string 加号连接性能慢_面试必备:浅析C#性能优化的若干种方法