一.什么是http和hhtps
简介
http又称超文本传输协议,应用十分广泛,用户web浏览器与服务器之间传递消息,不过有一点是,http协议传输方式并没有加密,使用明文传输,安全性并没有那么高,容易被攻击者截取到web浏览器和服务器之间传输的消息。所以一般,银行业务,密码,支付等等不能使用http协议。http协议一般默认端口是80
http由请求和响应组成,先抓一个包看看?
至于https呢,这个呢,那就比较高级了
https又称超文本传输安全协议,解决了http数据传输过程中的安全问题,https=http+ssl,然后依靠ssl去验证服务器的身份,并且在web浏览器和服务器之间进行加密通信。一般企业都是使用https的,为了数据安全一些。所以https的两种主要作用是:a.确保数据传输过程中的安全性。b.确让网安的真实性。https的一般默认端口是443。
再抓一个包看看?
http的交互方式
a.get:向服务器获取url指定的资源,比如我在浏览器输入一个网页地址,一般这时服务器会给我返回我刚才想得到的网址。
b.post:向服务器提交数据,比如我现在在前端页面输入账号,密码用于登录验证,希望登录成功,这时就是post方式,将账号,密码发送到服务器。
c.head:和get方式相似,但是head方式服务器不返回实际内容。我们可以使用head查看数据资源是否被修改。
d.put:向指定的url存储文件。比如服务器用请求部分创建一个url的文档,如果已经存在,我们则可以把该已经存在的资源替换掉。
e.trace:让服务器回显请求中的内容。可以用于判断是否数据传输发现问题
f.delete:删除url指定的服务器上的内容
g.options:用于客户端像服务端询问是否支持特定的选项
h.:connect:用于客户端和目标地址之间建立一个tcp通道
http的响应状态码
有一个版本问题需要注意一下下,响应中的版本号不一定要与请求中的版本号一样,但是大的版本号不能高于请求中的大的版本号。比如请求的是http1.0版本的话,服务器不能使用http2.0进行响应,但是可以使用http1.1进行响应。
http的状态响应码以及说明:
100~199:表示已收到请求,但未完成操作,用于通知客户端
200~299:请求中的操作已成功完成,提一下这里,并不是200就一定没有问题,有些api把全部响应都设置成200,如果需要判断需要进一步使用接口测试进行判断
300~399:告知客户端执行额外的操作,通常用于跳转
400~499:客户端请求由错误
500~599:服务端出现了问题
http的报文
http的报文分为:请求报文和响应报文,而报文又可以分为报文头部和报文主题两个部分。
报文头部:请求或响应的内容和属性
报文主体:应该被发送的数据
让我们看看前面抓的包
二.http的工作原理
http协议是基于tcp/ip协议上的协议,http是在应用层的协议。
前面提到,http是由请求和响应两个部分组成的,并且http是由客户端先发起请求,服务器返回响应。
http是一个无状态的协议,web浏览器和服务器之间不需要建立长久的连接。如web发送一个请求,服务器响应一次以后,连接就自动关闭了。
http的工作过程
1.地址解析:如果是http://xxx.com:8080/index.html
分解一下协议名,主机名,端口,路径等部分
协议名:http
主机:xxx.com
端口:8080
路径:index.html
这里就需要dns解析域名得到ip了
2.封装http请求:把主机的消息,封装成一个http的请求数据包
3.封装成tcp包,tcp三次握手
4.客户端发送请求
5.服务器响应
6.断开tcp连接
http的优缺点
优点
1.快速,简单
2.免费,广泛使用,商业验证成功
缺点
1.明文通信,数据可能被窃取
2.数据不加密
3.身份不验证
三.https的工作原理
https的工作过程
1.客户端向服务端发送https的请求,请求携带了客户端支持的加密算法和哈希算法
2.服务器收到了请求,选择客户端所支持的加密算法和哈希算法
3.服务器将算法和证书发送到客户端
4.客户端对服务器端的证书进行验证
5.客户端将加密后的发送给服务端
6.服务器解密得到私钥,通过密码把网页进行对称加密,发送到客户端
7.客户端用之前生成的密钥解密,查看网页
https的优缺点
优点
1.使用https可以确保数据发送到正确的客户机和服务器
2.https协议是http+ssl一起使用的,可以进行加密传输,比http安全,可以防止数据在传输过程中一些安全问题,比如窃取数据,篡改数据等等。
3.可以减少一定量的网络攻击,减少维护成本,注意只是减少一部分,并不是一定完全安全
缺点
1.它需要花钱!!!功能越多,费用越大
2.它需要去进行验证等等,加载时间就会变长,用户体验感可能会变差
3.ssl的加密也是有限的,也不是十全十美的
4.https的流量损耗变大,数据开销变大
http改成https以后怎么进行测试(功性健安)
这几天好几次看见一个面试题,http改成https以后怎么进行测试。
从测试的几个模块看看
功能测试
1.http改成https的url有没有成功的改变成https
2.是否可以正常的进入网页
3.产品要求是否满足
接口测试
关于cookie的操作:cookie中的secure设置以后只能使用https
1.是否有接口文档,如果没有抓包的话需要安装证书,抓个包试一下儿
2.使用postman进行接口测试的话,需要打开设置,关闭ssl认证,试一下(抓包状态码是200也不一定对,接口测试验证一下先)
3.可能还会设计到接口关联,接口压测等等的问题
性能测试
1.对网站进行压测,查看压测情况下网站的表现(别随随便便压别人网站)
2.要对比http和https前面的响应时间的比较,确保不会影响用户
兼容性测试
1.使用该url地址,登录不同的浏览器查看是否成功,是否支持https协议
2.各个浏览器是否网页显示正常,前端加载是否受到了影响
安全测试
1.证书是否合法合规文章来源:https://www.toymoban.com/news/detail-803414.html
2.扫描是否存在安全漏洞文章来源地址https://www.toymoban.com/news/detail-803414.html
到了这里,关于http和https的区别以及测试手法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!