~快来回答呗
楼主的问题包含两个,我的理解是:1.Http 和 Https 的区别;2.测试时分别需要关注什么,当然重点在 Https。
下面首先说第一个问题:Http 和 Https 的区别。这里说的区别是建立在联系上的,所以下面将联系的说区别。
Http 和 Https 都是位于 OSI(计算机或通信系统间互联标准体系)的第七层:应用层,位于该层的还有 SMTP 和 FTP 协议。
Http 协议运行在 TCP 之上。所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。
Https 是 Http 运行在 SSL/TLS(安全套接字层/传输层安全)之上,SSL/TLS 运行在 TCP 之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。此外客户端可以验证服务器端的身份,如果配置了客户端验证,服务器方也可以验证客户端的身份。
一句话:Http+ 加密 + 认证 + 完整性保护=Https
下图附带 Http 和 Https 的区别对比:
说到这里,只是有一个概念上的初步认识,Http 和 Https 的过程究竟是怎样,还是没有一个清晰的理解,于是乎想进一步了解下具体的过程是怎样的。下图来自网络,清楚的展示的 Https 过程,贴上来,便于理解。
上图整个过程就是 Https 过程,可以这样理解,去除 prepare 部分、去除步骤 2、3、4 部分就是 Http 过程,只是 Http 中客户端和服务器通信时没有加密(步骤 5、6 去掉加密)。
============================分割线======================================
为了便于理解记忆,我编了一个小故事。
第一话:古代某国边塞驻扎着 10 万大军。一日,狼烟四起,外敌来犯,为平息叛乱,皇帝πA 将军去平息边关战事,临行前,皇帝给 A 将军一行送行,将一枚敕造铜质虎符的一半交与将军,说道:“虎符合并时,边关 10 万大军,凭此全符调遣,见符如见寡人,切记妥善保管,不可有丝毫缺损。”【对应图中 prepare3 过程】
第二话: 数日后,A 将军抵达边塞大营,驻地 B 将军再三确认 A 将军身份,于是乎要求 A 将军拿出另一半虎符进行拼对,虎符无缝隙对接,确系 A 将军是皇帝派来的 “定边大将”,可与 B 将军共同统领 10 万大军。【对应图中 1、2、3 过程】
第三话:边关大军与来犯敌军两军对阵,排兵布阵通过鼓声号令,重鼓三声,大军前进 30 步,急鼓 5 声,方阵变换,骑兵出击,步兵合围。两军展开了激烈的对战……【对应图中 5、6 过程】
================================分割线===========================================
额外说一点:
谷歌宣布从今年 9 月份,随着 Chrome 69 的发布,将停止在地址栏中标记 HTTPS 页面为 “安全” 站点,在 10 月份,随着 Chrome 70 的发布 ,当用户输入数据时,HTTP 站点将显示一个红色的 “不安全” 警告。这么做的原因是,谷歌认为 “用户应该默认 Web 是安全的,Chrome 应该只会在网页有问题时才发出警告”,同时这也是谷歌 “HTTPS 100%” 计划的一部分,最终目的是让加载到 Chrome 中页面都通过 HTTPS 协议。
接下来说第二个问题:测试时分别需要关注什么。
说到这个问题,有点麻爪。作为移动端 QA,目前我们都只是用到 Http 和 https 协议,测试时对协议本身关注点很少,仅想到一下两点:
1.因为 Https 过程比 Http 过程复杂,因此一个 Https 请求/响应的时间会比 Http 长。举个栗子,相同网络情况下,通过 Charles 抓包,Https 的 Duration 为 968ms,Http 的 Duration 为 729ms,两者的相差时间很小,几乎无感;
2.Https 存在 CA 证书,需要关注证书的有效时限。但是这个一般也是很少关注的点。
我也只是想到了可能搭边的点,自己都不能说服自己。关于这个问题,还请楼主赐教~~
同时,也加一个思考,什么是长连接,测试长连接的关注点是什么?
http 是超文本传输协议,https 是超文本安全传输协议,http 端口 80,https 端口 443,https 是 ssl+http,http 连接存在安全隐患,https 可以进行加密传输,相对而言比 http 安全很多,是现在网站的大趋势
他俩之间本身只是协议的区别,接口测试个人认为测的是接口内部的实现,不关乎协议
楼主的问题包含两个,我的理解是:1.Http 和 Https 的区别;2.测试时分别需要关注什么,当然重点在 Https。
下面首先说第一个问题:Http 和 Https 的区别。这里说的区别是建立在联系上的,所以下面将联系的说区别。
Http 和 Https 都是位于 OSI(计算机或通信系统间互联标准体系)的第七层:应用层,位于该层的还有 SMTP 和 FTP 协议。
Http 协议运行在 TCP 之上。所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。
Https 是 Http 运行在 SSL/TLS(安全套接字层/传输层安全)之上,SSL/TLS 运行在 TCP 之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。此外客户端可以验证服务器端的身份,如果配置了客户端验证,服务器方也可以验证客户端的身份。
一句话:Http+ 加密 + 认证 + 完整性保护=Https
下图附带 Http 和 Https 的区别对比:
说到这里,只是有一个概念上的初步认识,Http 和 Https 的过程究竟是怎样,还是没有一个清晰的理解,于是乎想进一步了解下具体的过程是怎样的。下图来自网络,清楚的展示的 Https 过程,贴上来,便于理解。
上图整个过程就是 Https 过程,可以这样理解,去除 prepare 部分、去除步骤 2、3、4 部分就是 Http 过程,只是 Http 中客户端和服务器通信时没有加密(步骤 5、6 去掉加密)。
============================分割线======================================
为了便于理解记忆,我编了一个小故事。
第一话:古代某国边塞驻扎着 10 万大军。一日,狼烟四起,外敌来犯,为平息叛乱,皇帝πA 将军去平息边关战事,临行前,皇帝给 A 将军一行送行,将一枚敕造铜质虎符的一半交与将军,说道:“虎符合并时,边关 10 万大军,凭此全符调遣,见符如见寡人,切记妥善保管,不可有丝毫缺损。”【对应图中 prepare3 过程】
第二话: 数日后,A 将军抵达边塞大营,驻地 B 将军再三确认 A 将军身份,于是乎要求 A 将军拿出另一半虎符进行拼对,虎符无缝隙对接,确系 A 将军是皇帝派来的 “定边大将”,可与 B 将军共同统领 10 万大军。【对应图中 1、2、3 过程】
第三话:边关大军与来犯敌军两军对阵,排兵布阵通过鼓声号令,重鼓三声,大军前进 30 步,急鼓 5 声,方阵变换,骑兵出击,步兵合围。两军展开了激烈的对战……【对应图中 5、6 过程】
================================分割线===========================================
额外说一点:
谷歌宣布从今年 9 月份,随着 Chrome 69 的发布,将停止在地址栏中标记 HTTPS 页面为 “安全” 站点,在 10 月份,随着 Chrome 70 的发布 ,当用户输入数据时,HTTP 站点将显示一个红色的 “不安全” 警告。这么做的原因是,谷歌认为 “用户应该默认 Web 是安全的,Chrome 应该只会在网页有问题时才发出警告”,同时这也是谷歌 “HTTPS 100%” 计划的一部分,最终目的是让加载到 Chrome 中页面都通过 HTTPS 协议。
接下来说第二个问题:测试时分别需要关注什么。
说到这个问题,有点麻爪。作为移动端 QA,目前我们都只是用到 Http 和 https 协议,测试时对协议本身关注点很少,仅想到一下两点:
1.因为 Https 过程比 Http 过程复杂,因此一个 Https 请求/响应的时间会比 Http 长。举个栗子,相同网络情况下,通过 Charles 抓包,Https 的 Duration 为 968ms,Http 的 Duration 为 729ms,两者的相差时间很小,几乎无感;
2.Https 存在 CA 证书,需要关注证书的有效时限。但是这个一般也是很少关注的点。
我也只是想到了可能搭边的点,自己都不能说服自己。关于这个问题,还请楼主赐教~~
同时,也加一个思考,什么是长连接,测试长连接的关注点是什么?