首页 > 其他分享 >你知道HTTP与HTTPS有什么区别吗?

你知道HTTP与HTTPS有什么区别吗?

时间:2023-09-06 17:36:37浏览次数:37  
标签:加密 私钥 证书 区别 HTTPS HTTP 客户端

每天都在上网,在搜索东西的时候,你有发现网址有什么不同吗?本文就来谈谈HTTP与HTTPS有什么不同。

一、什么是HTTP?

你知道HTTP与HTTPS有什么区别吗?_HTTPS


HTTP是“HyperText Transfer Protocol”的简称,翻译过来就是超文本传输协议是一种用于分布式、协作式和超媒体信息系统的应用层协议。简单来说就是一种发布和接收 HTML 页面的协议,被用于在 Web 浏览器和网站服务器之间传递信息。

HTTP 默认工作在 TCP 协议 80 端口,用户访问网站 http:// 打头的都是标准 HTTP 服务。

http的传输,具有简单、灵活的特点,但缺点是使用明文传输,请求和响应不会对通信方进行确认、无法保护数据的完整性,传输内容容易被窃取。

 

二、什么是HTTPS

你知道HTTP与HTTPS有什么区别吗?_HTTPS_02

HTTPS是“Hypertext Transfer Protocol Secure”的简称,翻译过来就是超文本传输安全协议。它是一种透过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。


三、HTTPS的工作原理

看完上面HTTPS的解释,大家都知道了HTTPS 能够加密信息,以免重要信息被第三方获取,所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用 HTTPS 协议。

你知道HTTP与HTTPS有什么区别吗?_HTTPS_03

 

1、客户端发起HTTPS请求

这个很好理解,就是用户在浏览器里输入一个 https 网址,然后连接到 server 的 443 端口。

2、服务端的配置

采用 HTTPS 协议的服务器必须要有一套数字证书,证书可以自己制作,也可以向组织申请

区别:自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。

这套证书其实就是一对公钥和私钥,如果对公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。

3、传送证书

这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。

4、客户端解析证书

这部分工作是由客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。

如果证书没有问题,那么就生成一个随机值,然后用证书对该随机值进行加密,就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容。

5、传送加密信息

这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。

6、服务端解密信息

服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密,

对称加密:将信息和私钥通过某种算法混合在一起。

这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够先进,私钥够复杂,数据就够安全。

7、传输加密后的信息

这部分信息是服务段用私钥加密后的信息,可以在客户端被还原。

8、客户端解密信息

客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容,整个过程第三方即使监听到了数据,也束手无策。

 

四、HTTP与HTTPS的区别

1、安全性

HTTP和HTTPS是两种不同的协议,它们之间最主要的区别在于安全性。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,容易被攻击者截取信息。

HTTPS则在TCP和HTTP网络层之间加入了SSL/TLS安全协议,使得报文能够加密传输,保证了数据的安全性。

2、端口号不同

HTTP和HTTPS使用的是完全不同的连接方式用的端口也不一样,HTTP是80、HTTPS是443。

3、证书

HTTPS需要申请证书,而HTTP不需要,申请证书也会有一些费用。




转载请注明以下内容 

链接:https://blog.csdn.net/m0_73995538/article/details/132048392


标签:加密,私钥,证书,区别,HTTPS,HTTP,客户端
From: https://blog.51cto.com/atomguo/7388679

相关文章

  • xlwings sheets [] 与 () 的区别
    xlwingssheets[]与()的区别wb.sheets#Sheets([<Sheet[test.xlsx]工作表>,<Sheet[test.xlsx]测试>])实时更新wb.sheets[0]#<Sheet[test.xlsx]工作表>从0开始计数zero-basedindexingwb.sheets(1)#<Sheet[test.xlsx]工作表>从1开始计数one-basedindexin......
  • C# 获取程序路径的几种方法及其区别
    在开发的程序中使用自定义的配置文件属于基本的操作了,但最近发现一个问题:如果程序是由用户通过exe文件直接打开的,获取同目录下配置文件不会有问题;但如果程序是由第三方应用启动的,通过不同方式获取的“当前目录”会有不同。以下是整理的几种获取当前目录的方式,及官方文档中的注释:......
  • [转]Mysql中普通索引key 、主键索引(primary key) 、唯一索引(unique key)与index区别
    原文地址:Mysql中普通索引key、主键索引(primarykey)、唯一索引(uniquekey)与index区别-元小疯-博客园一、索引的定义和由来:    索引被用来快速找出在一个列上用一特定值的行。没有索引,MySQL不得不首先以第一条记录开始并然后读完整个表直到它找出相关的行。 ......
  • Go HTTP Client 持久连接失效
    调用Go的 HTTPClient 的 Get\Post 之类的方法时,默认是开启 HTTPkeepalive 的,不过直接使用还是会遇到一些情况导致持久连接失效。首先,Client构造好HTTP请求后,利用Transport来发送请求并等待结果,默认使用 DefaultTransport 来实现,大多数情况下,自定义Client时,配置......
  • computed和watch的区别
    1、computed是计算属性;watch是监听,监听data中的数据变化。2、computed支持缓存,当其依赖的属性的值发生变化时,计算属性会重新计算,反之,则使用缓存中的属性值;watch不支持缓存,当对应属性发生变化的时候,响应执行。3、computed不支持异步,有异步操作时无法监听数据变化;watch支持异步操......
  • 中文版网页开发HTTP与数据库对接
    代码如下:<!文档类型网页类型><网页语言代码="中文">  <网页头部>    <网页信息文档编码="UTF8"/>    <网页信息名称="页面视图"关联数据="视图宽度=填充视图宽度,初始缩放值=1,最大缩放值=1,用户缩放状态=假"/>    <网页信息关联HTTP="兼容模......
  • http响应状态码大全
    http响应状态码大全 http状态返回代码1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。http状态返回代码 代码   说明100   (继续)请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101   (切换协议)请求者已要求服......
  • Mysql 引擎 InnoDB和MyISAM的区别
    1、InnoDB、MyISAM区别MySQL引擎InnoDB和MyISAM是MySQL中常用的两种存储引擎,它们具有以下不同的特点:InnoDB支持事务,而MyISAM不支持事务。InnoDB支持行级锁定,而MyISAM支持表级锁定。在并发访问的情况下,InnoDB的性能更好。InnoDB支持外键约束,而MyISAM不支持......
  • os.path.getmtime(file) 与 os.stat(file).st_mtime 的区别
    os.path.getmtime(file)和os.stat(file).st_mtime都用于获取文件的最后修改时间,但它们之间有一些区别:返回值类型:os.path.getmtime(file)返回的是一个浮点数,表示文件的最后修改时间,以秒为单位。os.stat(file).st_mtime返回的也是一个浮点数,表示文件的最后修改时间,以秒为单位。......
  • QT编译时qmake和cmake的区别
    qMakeQT+=coreguiQT缺省使用了core和gui库变量TARGET描述了目标文件的名称,即生成的应用程序的名字,默认采用工程文件所在的文件夹名字。变量TEMPLATE描述了为建立目标文件而采用何种模板,即生成何种形式的Makefile文件,有以下5种模板:应用程序app,为建立一个Qt应用程......