原问转载于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. android 布局学习

    各种layout用到的一些重要属性 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertic ...

  2. 归并排序算法 java 实现

    归并排序算法 java 实现 可视化对比十多种排序算法(C#版) [直观学习排序算法] 视觉直观感受若干常用排序算法 算法概念 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Di ...

  3. MiniUI中DataGrid数据的载入

    本文将介绍一下,在ASP.NET MVC环境下,如何用Jquery MiniUI中的Datagrid控件载入数据. 1.效果展示: 2.具体步骤: 1>  既然是在MVC里,那我们的界面自然选择 ...

  4. js,jquery获取浏览器信息

    1.js获取: 查看:window.navigator 2.jQuery获取: chrome firefox 推荐使用navigator获取userAgent然后去正则匹配 参考匹配规则:http:/ ...

  5. symfony安装笔记

    下载http://symfony.com/download,这里版本是2.8 将D:\ApacheServer\php路径添加到环境变量path中,在cmd命令行中可以执行php命令 打开php.in ...

  6. 获取tomcat下路径

    import java.io.File; public class MainTest { public static void main(String[] args) { //获取是项目的绝对路径 S ...

  7. dmidecode查看设备硬件信息

    在bash里输入:dmidecode -s system-product-name 或者lshw -class system 在Linux系统环境下(CentOS .4和Ubuntu .04已确认), ...

  8. 问题-MyBatis不识别Integer值为0的数据

    问题-MyBatis不识别Integer值为0的数据 问题:使用MyBatis的过程中,发现一个值为0的数据,Mybatis所识别,最后定位才发现,是自己的写法有问题, <if test=&qu ...

  9. 运行两个以上tomcat的设置及内存设置

    运行两个或以上tomcat的设置方法 1.解决端口冲突问题设置方法很简单,修改conf/server.xml配置文件中的3个端口即可.默认端口:8005.8080.8009.一般情况位置如下:**** ...

  10. EasyUI、Struts2、Hibernate、spring 框架整合

    经历了四个月的学习,中间过程曲折离奇,好在坚持下来了,也到了最后框架的整合中间过程也只有自己能体会了. 接下来开始说一下整合中的问题和技巧: 1,  jar包导入 c3p0(2个).jdbc(1个). ...