原问转载于https://www.mysubmail.com/chs/blog/view/47

这两天闲来无事,在网上看了一下,发现 HTTP 和 HTTPS 的区别很受关注,多位大牛做了很详细的阐述,非常深刻全面。但是小编还是发现一个问题,大牛们的描述太过于专业了,对于专业人士来说当然很容易看明白,可是真正需要了解的往往是一些小白,小白们一开始就接触这些专业术语其实是很难理解的。你们说是不是这个理。所以小编决定联系实际来聊聊这个话题。

首先我们还是简单的描述一下专业定义。 HTTP 是怎么定义的? HTTPS 又是怎么定义的?

HTTP (全称 Hyper Text Transfer Protocol ),一般称为超文本传输协议,也是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计 HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。一种详细规定了浏览器和万维网服务器之间互相通信的规则。 HTTPS (全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是 HTTP 的安全版。

俗话讲:无规矩不成方圆。只有遵循一定规则通信才能有序正常的进行。本质上来说 HTTP 和 HTTPS 是相同的,都是一种传输协议,一种通信规则。只不过 HTTPS 是从 HTTP 的基础上发展而来的,加入了独特的安全机制。

接下来我们联系现实,举个例子为大家描述一下。

就拿打电话来说吧,如果你用自己的手机去给朋友手机拨打电话。看上去这很简单,可能有人会问,这打电话还能有规则?怎么没有呢,我们简单看一下打电话的过程,拨号码》接通电话》交流》结束挂电话。这不正是打电话的一套规则吗。

前面我们说过了, HTTP 规定了浏览器和万维网服务器之间互相通信的规则,比如我们通过浏览器去浏览一个网页,第一步是打开浏览器,浏览器好比是你的手机,在浏览器输入 URL 地址,进行请求,实际上我们输入 URL 后,我们的浏览器给 Web 服务器发送了一个 Request , Web 服务器接到 Request 后进行处理,生成相应的Response ,然后发送给浏览器, 浏览器解析 Response 中的 HTML ,这样我们就看到了网页,这里的URL就相当于你打电话时输入朋友的手机号码,而朋友手机可以看作是你访问的服务器。而 Request 和 Response 大致可以看作是你和朋友的通话内容吧。有些时候访问网页会出现提示找不到服务器等现象,这就说明对方服务器出了问题,也许是关闭了,也许是故障了。这又可以看作是拨打朋友电话,结果朋友手机关机或者损坏,自然无法接通。最后我们关闭浏览器结束访问也就好比通话结束,挂掉电话一样。

我们再看 HTTPS 规则, HTTPS 是运行在 SSL/TLS 之上的HTTP协议, SSL/TLS 运行在 TCP 之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。如果同样用打电话来理解,可以看作是你和朋友通电话的内容进行了加密处理,中国电信有一项特别定制的加密通信业务,内置国家密码管理局指配加密算法的手机终端,向客户提供实现商密级的端到端手机话音通信加密功能、手机终端信息保护以及手机终端加密信息的远程擦除等安全服务。而 HTTPS 协议使用的对称加密就好比是加密电话中添加的加密算法。可以防止被窃取和监听。

我们有必要解释一下 HTTPS 的证书,采用 HTTPS 协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。这套证书其实就是一对公钥和私钥,如果对公钥和私钥不太理解,可以想象成一把钥匙和一把锁,这把锁只有你一个人有这把钥匙,你可以把锁给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。

证书类别可以分为以下:按证书认证等级分类有 DV SSL 证书、 IV SSL 证书、 OV SSL 证书、 EV SSL 证书。按适用域名数量分类有通配符型 SSL 证书、万能型 SSL 证书、单域名 SSL 证书、多域名 SSL 证书。按照签发主体分类有:自签名 SSL 证书和 CA 机构签发 SSL 证书(各类证书的区别和申请方法因篇幅有限这里就不详细描述了。)

最后我们通过前面的讲述具体来概括一下 HTTP 和 HTTPS 的区别

1、HTTP 的 URL 以 HTTP:// 开头,而 HTTPS 的 URL 以 HTTPs:// 开头;

2、HTTP 是不安全的,而 HTTPS 是安全的,比如一些银行、政府、平台网站会使用 HTTPS,就拿小编现在所在的SUBMAIL赛邮云通信来说, 我们的官网 API 就采取了 HTTPS 协议,提高其安全性。示例HTTPs://api.submail.cn/message/xsend;

3、传输效率上 HTTP 要高于 HTTPS ,因为 HTTPS 需要经过加密过程,过程相比于 HTTP 要繁琐一点,效率上低一些也很正常;

4、HTTP 无需证书,而 HTTPS 必需要认证证书;

5、从 SEO 方面来参考,发现百度和谷歌是不同的。谷歌在 HTTPS 站点的收录问题上与对 HTTP 站点态度并无什么不同之处,甚至把“是否使用安全加密”(HTTPS)作为搜索排名算法中的一个参考因素,采用 HTTPS 加密技术的网站能得到更多的展示机会。百度曾表示不主动抓取 HTTPS 网页,所以目前采取 HTTPS 的网站是很难被百度收录的,不过有消息称百度接下来可能会向谷歌靠拢,对于 HTTPS 页面同样主动抓取。

6、还有一点也不能忽视,使用 HTTPS 需要证书,申请证书是要费用的,相比于 HTTP 不需要证书来说,HTTPS 这笔费用是无法避免的。

以上就是对 HTTP 和 HTTPS 的一些简述,从个人角度来说,我是希望将来采用 HTTPS 的站点越多越好,毕竟现在网站上购物支付这种活动已经非常频繁了,安全是我们不得不去重视的问题。如何提高站点信息的安全,目前最简单的解决方案就是站点采用 HTTPS 协议,进行 web 安全访问。

理解HTTP和HTTPS的区别的更多相关文章

  1. 大前端学习笔记整理【七】HTTP协议以及http与https的区别

    前言 还是老样子,新博客开始前总是想先啰嗦几句...HTTP协议其实在当初学习java时老师就有提过...但是...反正就那么过去了... 这段时间公司的项目正好要求做https的转换和迁移,然后自己 ...

  2. HTTP协议与HTTPS的区别

    permike 原文 HTTP协议与HTTPS的区别 HTTP协议 HTTP协议主要应用是在服务器和客户端之间,客户端接受超文本. HTTP是在七层网络模型中的应用层的协议,由发送请求和接受响应构成, ...

  3. css基础--深入理解opacity和rgba的区别

    欢迎访问我的个人博客:http://www.xiaolongwu.cn 前言 首先这两个都与透明度有关,那么他们之间有什么具体的区别呢?在实际工作中我们需要注意什么呢?请您接着往下看 语法 1. rg ...

  4. 3个问题:MySQL 中 character set 与 collation 的理解;utf8_general_ci 与 utf8_unicode_ci 区别;uft8mb4 默认collation:utf8mb4_0900_ai_ci 的含义

    MySQL 中 character set 与 collation 的理解 出处:https://www.cnblogs.com/EasonJim/p/8128196.html 推荐: 编码使用 uf ...

  5. [菜鸟]HTTP 与 HTTPS 的区别

    HTTP 与 HTTPS 的区别 分类 编程技术 基本概念 HTTP(HyperText Transfer Protocol:超文本传输协议)是一种用于分布式.协作式和超媒体信息系统的应用层协议. 简 ...

  6. HTTP和HTTPS的区别(转)

    原文链接:HTTP和HTTPS的区别 HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议 它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和 ...

  7. 详细解析 HTTP 与 HTTPS 的区别

    详细解析 HTTP 与 HTTPS 的区别 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览 ...

  8. 面试基础试题 一 http和HTTPS的区别

    作为老生常谈的问题,我主要给出我自己的理解和结合大牛的叙述的综合看法,来检验自己学习 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何 ...

  9. HTTP和HTTPS的区别和常见的面试题

    本篇会着重介绍http和https的区别和常见的面试题 常见的http和https面试题: Http与Https的基本概念和他们的区别 HTTPS工作原理 常用的HTTP方法有哪些 GET方法与POS ...

随机推荐

  1. Server.MapPath和Request.PhysicalApplicationPath的异同

    很多人对它们都不陌生,在众多的WEB程序中,使用Server.MapPath和Request.PhysicalApplicationPath来操作目录/文件的几率参半,我曾经也经常混用,然而时间久了. ...

  2. Nop源码分析二

    上文我们已经通过该行代码:var typeFinder = containerManager.Resolve<ITypeFinder>(); 从注入容器中获取到了typeFinder实例. ...

  3. C++文件流类与文件流对象

    文件流是以外存文件为输入输出对象的数据流.输出文件流是从内存流向外存文件的数据,输入文件流是从外存文件流向内存的数据.每一个文件流都有一个内存缓冲区与之对应. 请区分文件流与文件的概念,不用误以为文件 ...

  4. C语言 04 进制

    %d 或者%i 十进制 %c 输出字符 %p 输出地址 %f 输出小数 %o 八进制 %x 十六进制 一个int类型变量占4字节,占32bit(位) 例子:十进制 int=12  转二进制 0000 ...

  5. php常用string函数

    http://www.w3school.com.cn/php/php_ref_string.asp1.addcslashes() 返回在指定的字符前添加反斜杠的字符串2.addslashes() 返回 ...

  6. springboot 注入Servlet,Filter,Listener的方法

    其实就是注入 FilterRegistrationBean . ServletRegistrationBean . ServletListenerRegistrationBean 这三个类   直接上 ...

  7. MD5 Checksums for R12.1.1 Rapid Install Media (文档 ID 802195.1)

    Oracle EBusiness Suite R12.1.x Rapid Installmd5 Checksums November 2011 Section      1: Overview Sec ...

  8. postman插件安装教程

    第一步: 第二步: 第三步: 这样就可以了. 插件下载链接: http://pan.baidu.com/s/1eRVLMpk 密码: 49vb

  9. 8. apache服务实验笔记

    Apache服务器 一 简介 1 www:world  wide  web 万维网 http 协议: 超文本传输协议 HTML语言: 超文本标识语言 2 URL:统一资源定位 协议+域名:端口+网页文 ...

  10. html table表头斜线

    关于htnl的table的表头斜线,符合表格设计规范,<style> .biaotou { line-height: 5px; text-align: left; } .biaotou { ...