http和https的区别以及测试手法

一.什么是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.证书是否合法合规

        2.扫描是否存在安全漏洞

  • 20
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值