青云--http和https的区别以及测试手法(超级无敌详细)

一.什么是http和hhtps

        简介


        http又称超文本传输协议,应用十分广泛,用户web浏览器与服务器之间传递消息,不过有一点是,http协议传输方式并没有加密,使用明文传输,安全性并没有那么高,容易被攻击者截取到web浏览器和服务器之间传输的消息。所以一般,银行业务,密码,支付等等不能使用http协议。http协议一般默认端口是80

        至于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发送一个请求,服务器响应一次以后,连接就自动关闭了。

TCP/IP简介

        TCP/IP是一种网络协议套件,它是互联网通信的基础。TCP/IP是一种用于将数据从一个计算机传输到另一个计算机的协议,它定义了计算机在网络中如何建立连接、传输数据和断开连接。TCP/IP包含了一系列协议,其中最常用的是TCP和IP。TCP负责将数据分割成小的数据包,并通过网络传输,确保数据的可靠性和有序性。而IP则负责将数据包发送到正确的目标地址,并在网络中寻找最佳路径。

计算机的五层体系架构
  1.  物理层(Physical Layer):负责在物理介质上进行比特流的传输,例如电缆、光纤、无线信道等。

  2. 数据链路层(Data Link Layer):负责将比特流划分为帧,并提供可靠的数据传输,处理差错校验和流量控制,以及物理地址的寻址。

  3. 网络层(Network Layer):负责进行数据包的路由选择和转发,实现不同网络之间的互连,解决数据的传输路径问题。

  4. 传输层(Transport Layer):提供端到端的数据传输服务,负责将数据划分为合适的大小并进行可靠的传输控制,同时提供多路复用和分解功能。

  5. 应用层(Application Layer):提供面向用户的服务接口,包括各种应用程序和协议,例如HTTP、FTP、SMTP等。

        这五个层次一起工作,使得不同计算机之间可以进行数据的交换和通信。如果我们听说四层的话,那么一般情况下是物理层和数据链路层结合了叫做网络接口层。

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的区别

HTTPHTTPS
定义HTTP是超文本传输协议,用于在客户端和服务器之间传输数据HTTPS是HTTP的安全版本,使用SSL(安全套接层)或TLS(传输层安全)协议对数据进行加密传输
加密不加密,数据以明文形式传输使用SSL或TLS协议对数据进行加密,确保数据安全
URL使用http://前缀使用https://前缀
端口号默认端口号为80默认端口号为443
安全性数据传输过程不安全,可能被拦截和篡改数据传输过程安全,可以防止数据被窃取或篡改
使用场景适用于一般的网站、博客等不涉及敏感信息的场景适用于涉及用户密码、信用卡信息等敏感信息的场景,如电子商务、银行网站等
SSL证书不需要SSL证书需要有效的SSL证书,由证书颁发机构颁发
性能数据传输速度较快数据传输速度较慢,由于加密和解密的过程
SEO不利于搜索引擎优化更有利于搜索引擎优化
资源消耗资源消耗较少资源消耗较多,加密和解密过程需要占用服务器资源

五.http2和http/1.1的区别

http2是http的最新版本,与之前的http/1.1版本相比,有以下区别:

  1. 多路复用:http2支持多路复用,允许在一个连接上同时发送多个请求和接收多个响应。这样可以提高并发和性能,并减少延迟。

  2. 头部压缩:http2使用hpack算法对请求和响应头部进行压缩,减少了数据传输的大小,提高了性能。

  3. 服务器推送:http2允许服务器主动推送资源到客户端,减少了客户端的请求次数,提高了加载速度。

  4. 优先级:http2引入了流和帧的概念,允许客户端设置请求资源的优先级,提高了用户体验。

总的来说,https提供了更高的安全性,http2在性能和效率上有所提升。在实际应用中,可以同时使用https和http2来提供更安全和高效的数据传输。

六.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.扫描是否存在安全漏洞

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值