HTTP与HTTPS的工作原理与区别
来源:互联网 发布:合肥美工培训 编辑:程序博客网 时间:2024/06/05 14:55
HTTP协议是超文本传输协议,被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。
为了解决HTTP协议的这一缺陷,需要使用另一种协议:HTTPS(安全套接字层)传输协议。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。 什么是HTTPS:HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议。
它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的 安全版。 它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的安 全全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使 用40位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。
HTTPS和HTTP的区别:
1. HTTP的URL 以http://开头,而HTTPS 的URL 以https:// 开头
2. HTTP 是不安全的明文传输,而 HTTPS 是安全的加密传输。 http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
3. HTTP 标准端口是80 ,而 HTTPS 的标准端口是443
4. 在OSI 网络模型中,HTTP工作于应用层,而HTTPS 工作在传输层
5. HTTP 无法验证身份,而依赖于SSL证书的HTTPS可验证服务器身份。https协议需要到ca申请证书,一般免费证书很少,需要交费。
6. HTTP无需证书,而HTTPS 需要正规CA wosign颁发的SSL证书
7, http的连接很简单,是无状态的。
8, HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
9,HTTPS对比HTTP可以在很大程度上提供安全的DNS基础设施
问题:解释HTTPS的工作原理?
HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。TLS/SSL协议不仅仅是一套加密传输的协议,更是一件经过艺术家精心设计的艺术品,TLS/SSL中使用了非对称加密,对称加密以及HASH算法。握手过程的具体描述如下:
1. 浏览器将自己支持的一套加密规则发送给网站。
2. 网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。
3. 浏览器获得网站证书之后浏览器要做以下工作:
a) 验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等),如果证书受信任,则浏览器栏里面会显示一个小锁头,否则会给出证书不受信的提示。
b) 如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密。
c) 使用约定好的HASH算法计算握手消息,并使用生成的随机数对消息进行加密,最后将之前生成的所有信息发送给网站。
4. 网站接收浏览器发来的数据之后要做以下的操作:
a) 使用自己的私钥将信息解密取出密码,使用密码解密浏览器发来的握手消息,并验证HASH是否与浏览器发来的一致。
b) 使用密码加密一段握手消息,发送给浏览器。
5. 浏览器解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密。
- HTTP与HTTPS的工作原理与区别
- http与https的区别
- HTTP与HTTPS的区别
- HTTP与HTTPS的区别?
- http 与 https 的区别
- HTTP与HTTPS的区别!!
- HTTP与HTTPS的区别
- HTTPS与HTTP的区别
- HTTP与HTTPS的区别
- http与https的区别
- http与https的区别
- http与https的区别
- http与https的区别
- http与https的区别
- http与https的区别
- http与https的区别
- http与https的区别
- http 与https的区别
- Unity 滑动条Slider控制音量大小(笔记)
- Vc6.0中的activeX工程在vs2012中组建出错的解决办法
- 剑指offer:二叉树的镜像
- JAVA 通过 Socket 实现 TCP协议的通信
- Unity3d_OnApplicationPause与OnApplicationFocus(监听当前程序的焦点)
- HTTP与HTTPS的工作原理与区别
- 博客感言
- win10系统中创建wifi热点及被禁用后重新启用
- Render 中某些actor显示不全
- 已知集合A和B的元素分别用不含头结点的单链表存储,函数difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。例如,若集合A={5,10,20,15,25,30},集合B={
- 并查集解释-畅通工程
- Hugo hexo 搭建博客系列1:自己的服务器
- HDU 2546 饭卡(0/1背包变形)
- valgrind的arm平台移植