1.HTTP与HTTPS的定义

HTTP:

超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。

HTTPS

HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS 在HTTP 的基础下加入SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面 。

2.HTTP与HTTPS的区别

①安全性上,HTTPS是安全超文本协议,在HTTP基础上有更强的安全性。简单来说,HTTPS是使用TLS/SSL加密的HTTP协议,即HTTPS在HTTP的基础上加入了SSL层(SSL 的英文全称是 “Secure Sockets Layer” ,中文名为 “安全套接层协议层 ” ,它是网景( Netscape )公司提出的基于 WEB 应用的安全协议。 SSL 协议指定了一种在应用程序协议(如 HTTP 、 Telenet 、 NMTP 和 FTP 等)和 TCP/IP 协议之间提供数据安全性分层的机制,它为 TCP/IP 连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。)

②申请证书上,HTTPS需要使用ca申请证书,HTTP不需要证书。

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

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

3.HTTP与HTTPS的工作过程

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

地址解析。域名系统DNS解析域名得到主机的IP地址

封装HTTP请求数据包。封装的内容有以上部分结合本机自己的信息。

封装成TCP包,建立TCP连接(TCP的三次握手)

客户机发送请求命令。 建立连接后,客户机向服务器发送一个请求

服务器响应。服务器接到请求后,给予相应的响应信息

服务器关闭TCP连接。一般Web服务器向浏览器发送了请求数据,它要关闭TCP连接

客户端解析报文,解析HTML代码,并渲染

HTTPS的实现原理

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

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

HTTPS使用SSL协议和TLS协议

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

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

过程如下 :

客户端和服务器端通过TCP建立连接。

客户端向服务器发送HTTPS请求。

服务器响应请求,并将数字证书发送给客户端,数字证书包括公共秘钥、域名、申请证书的公司。

客户端收到服务器端的数字证书之后,会验证数字证书的合法性。

如果公钥合格,那么客户端会生成一个用于进行对称加密的密钥client key,并用服务器的公钥对客户端密钥进行非对称加密。

客户端会发起HTTPS中的第二个HTTP请求,将加密之后的客户端密钥发送给服务器。

服务器接收到客户端发来的密文之后,会用私钥对其进行非对称解密,得到客户端秘钥。并使用客户端秘钥进行对称加密,生成密文并发送。

客户端收到密文,并使用客户端秘钥进行解密,渲染网页。

4 HTTP与HTTPS优点和缺点分析

HTTP优点

HTTP没有加密解密过程,响应速度会比HTTPS快。如下图 https时间轴会多出一个SSL连接时间。同资源环境下,降低了用户的访问时间。

https

http

http技术门槛低,并且不用申请CA机构证书。相对于HTTPS,不会额外增加服务器负担。

HTTP相对于HTTPS的缺点

https可以提供更加优质保密的信息,保证了用户数据的安全性,此外https同时也一定程度上保护了服务端,使用恶意攻击和伪装数据的成本大大提高。

附录:HTTPS握手过程

面试必看之浅谈HTTP与HTTPS区别相关推荐

  1. linux系统pkl,(网摘)Linux新手必看:浅谈如何学习linux

    地址:http://www.eimhe.com/bbs/viewthread.php?tid=53256&extra=page=1> Linux新手必看:浅谈如何教习linux 一.起步 ...

  2. python开发工程师面试题-超实用面试必看,Python工程师面试题

    原标题:超实用面试必看,Python工程师面试题 面试是公司挑选职工的一种重要方法.它给公司和应招者提供了进行双向交流的机会,能使公司和应招者之间相互了解,从而双方都可更准确做出聘用与否.受聘与否的决 ...

  3. 最新iOS面试必看题视频教程(附大神简历要素)

    2019独角兽企业重金招聘Python工程师标准>>> 本文是由尚学堂iOS学院总结的ios开发者在求职时会遇到的一些面试题 ,并通过实际代码演练将课程详尽的讲解出来,希望对学习io ...

  4. 面试必看:java面试考点精讲视频教程

    面试必看:java面试考点精讲视频教程 Java作为目前比较火的计算机语言之一,连续几年蝉联最受程序员欢迎的计算机语言榜首,因此每年新入职Java程序员也数不胜数.很多java程序员在学成之后,会面临 ...

  5. 网络工程师面试题(面试必看)(3)

    作者简介:一名云计算网络运维人员.每天分享网络与运维的技术与干货.   座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 前言 本系列将会提供网络工程师面试题,由多位专家整合出本系列面试 ...

  6. Java常见面试题 Java面试必看 (一)

    本篇博客是本人收集网上Java相关的资料整理所得,仅供参考. 一.Java基础 1.JDK 和 JRE区别 JDK(Java Development Kit)是针对Java开发员的产品,是整个Java ...

  7. Java常见面试题 Java面试必看 (二)

    Java常见面试题 Java面试必看 (一) 十一.Spring Boot/Spring Cloud 104.什么是 spring boot? Spring Boot 是由 Pivotal 团队提供的 ...

  8. 2019年黑马新版Java学习路线图(内含大纲+视频+工具+书籍+面试)面试必看!

    非常好的java学习路线,伴有配套资源. 面试必看! 黑马程序员:http://bbs.itheima.com/thread-386464-1-1.html

  9. 浅谈 HTTP 和 HTTPS

    很多前端伙伴问题有没有体系的面试题? 今天为大家推荐一款刷题神奇哦 点击链接访问牛客网 各大互联网大厂面试真题.从基础到入阶乃至原理刨析类面试题 应有尽有,赶快来装备自己吧!助你面试稳操胜券,solo ...

最新文章

  1. 浅显易懂 Makefile 入门 (08)— 默认 shell (/bin/sh)、命令回显、make参数(-n 只显示命令但不执行,-s 禁止所有回显)、单行命令、多行命令、并发执行
  2. css sprites之圆角
  3. VS恢复默认设置的2种方法
  4. [C#基础知识系列]专题十七:深入理解动态类型
  5. 爬虫——基本库的使用
  6. 高性能网站架构设计之缓存篇(5)- Redis 集群(上)
  7. C语言再学习 -- Ubuntu 12.04 root用户登录设置
  8. ie9 background 不显示
  9. [刷题]算法竞赛入门经典(第2版) 4-3/UVa220 - Othello
  10. php 跨区域,如何构造PHP的内容包括在非安全(http://)和安全(https://)区域以及跨多个目录使用?...
  11. java判断zip包的编码格式_java解压zip包出现乱码
  12. java自定义日志_java-自定义日志记录以在运行时收集消息
  13. keras学习率下降策略
  14. android studio for android learning (二十七) UI控件动态加载机制浅析
  15. Chrome插件:OneNote Web Clipper 搜集和整合碎片信息的神器
  16. HTML开发者工具抓取所有图片,利用开发者工具,截取网页高清长图
  17. 群雄逐鹿,AI如何落地刷脸支付
  18. elastic-job监控平台ElasticJob-UI的使用
  19. 计算机知识竞赛口号,知识竞赛比赛口号大全
  20. 2022年餐饮连锁行业研究报告

热门文章

  1. Sublime Text - 中文汉化
  2. php 循环curl,如何在100次循环中使用curl PHP?
  3. GeoTools:Shapefile创建
  4. 企业微信私域流量运营应当掌握的“工具”
  5. java国际象棋_chess 一个用JAVA编写的国际象棋的程序 - 下载 - 搜珍网
  6. 无人超市信息管理系统——可行性研究
  7. 两部6层电梯西门子S7-200PLC梯形图程序
  8. 登录注册——注册输入验证
  9. 电脑开机显示rpc服务器不可用是什么意思,请问RPC服务器不可用是什么意思?
  10. 添加更改管理计算机上的字体,如何添加、删除计算机的字体.doc