• 13
  • 13
分享
  • 安全测试-WEB安全渗透测试基础知识(一)——软件测试圈
  • 恬恬圈 2021-03-18 09:59:06 字数 1632 阅读 1567 收藏 13

1.1. Web技术演化 

1.1.1. 静态页面

在互联网最初开始的时候,Web网站的主要内容是静态的,由文字和图片组成,制作和表现形式也是以表格为主。当时的用户行为也非常简单,仅仅是浏览网页。

1.1.2. 多媒体阶段

随着技术的不断发展,音频、视频、Flash等多媒体技术诞生了。多媒体的加入使得网页变得更加生动形象,网页上的交互也给用户带来了更好的体验。

1.1.3. CGI阶段

渐渐的,多媒体已经不能满足人们的请求,于是CGI(Common Gateway Interface)应运而生。CGI定义了Web服务器与外部应用程序之间的通信接口标准,因此Web服务器可以通过CGI执行外部程序,让外部程序根据Web请求内容生成动态的内容。 

在这个时候,各种编程语言如PHP/ASP/JSP也逐渐加入市场,基于这些语言可以实现更加模块化的、功能更强大的应用程序。

1.1.4. Ajax 

在开始的时候,用户提交整个表单后才能获取结果,用户体验极差。于是Ajax(Asynchronous Javascript And XML)技术逐渐流行起来,它使得应用在不更新整个页面的前提下也可以获得或更新数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变的信息。

1.1.5. MVC 

随着Web应用开发越来越标准化,出现了MVC等思想。MVC是Model/View/Control的缩写,Model用于封装数据和数据处理方法,视图View是数据的HTML展现,控制器Controller负责响应请求,协调Model和View。

Model,View和Controller的分开,是一种典型的关注点分离的思想,使得代码复用性和组织性更好,Web应用的配置性和灵活性也越来越好。而数据访问也逐渐通过面向对象的方式来替代直接的SQL访问,出现了ORM(Object Relation Mapping)的概念。

除了MVC,类似的设计思想还有MVP,MVVM等。 

1.1.6. RESTful

在CGI时期,前后端通常是没有做严格区分的,随着解耦和的需求不断增加,前后端的概念开始变得清晰。前端主要指网站前台部分,运行在PC端、移动端等浏览器上展现给用户浏览的网页,由HTML5、CSS3、JavaScript组成。后端主要指网站的逻辑部分,涉及数据的增删改查等。

此时,REST(Representation State Transformation)逐渐成为一种流行的Web架构风格。 

REST鼓励基于URL来组织系统功能,充分利用HTTP本身的语义,而不是仅仅将HTTP作为一种远程数据传输协议。一般RESTful有以下的特征: 

  • 域名和主域名分开

api.example.com
example.com/api/
  • 带有版本控制

api.example.com/v1
api.example.com/v2
  • 使用URL定位资源

GET /users 获取所有用户
GET /team/:team/users获取某团队所有用户
POST /users 创建用户
PATCH/PUT /users 修改某个用户数据
DELETE /users 删除某个用户数据
  • 用 HTTP 动词描述操作

GET 获取资源,单个或多个
POST 创建资源
PUT/PATCH 更新资源,客户端提供完整的资源数据 是 DELETE 删除资源
正确使用状态码
使用状态码提高返回数据的可读性
  • 默认使用 JSON 作为数据响应格式

  • 有清晰的文档 

1.1.7. 云服务

随着时间的发展,Web的架构越发复杂,负载均衡、数据库分表、异地容灾、缓存、CDN、消息队列等技术开始应用,增加了Web开发和运维的复杂度。同时云服务开始逐渐发展,部署环境容器化,各个功能拆成微服务或是Serverless的架构。


作者:咯咯老嫖客

原文链接:https://www.cnblogs.com/gegelaopiaoke/p/12743563.html


  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   在刚入行软件测试的时候,shell脚本也就是了解这个概念,那会儿也基本用不到这个技能,工作做得最多的就是点点点。  现在由于所处行业的关系吧,经常要在linux服务器做些常见操作。遇到不会的就百度,也慢慢的学了一些之前没有接触过的linux 命令,也开始看shell脚本的书籍,看过没有实战没有练习,也就存在一个概念。  Linux命令用多了,自然而然想到了shell脚本,想要用它来解决一些工作中的重复操作,于是开始边学边用,效果还不错。  工作场景:  我们测试的时候会把软件包拷贝到管理平台的软件仓库中,如果仓库中有,就要覆盖掉。  手动操作的流程是这样的:  wget【url】:下载软件...
            0 0 727
            分享
          •   前言  在做web自动化的时候,对于一些弹出的提示信息的字体颜色,当然一般都是红色的。那么当我们跑自动化时候,如何判断提示新的字体颜色是否我们预期的结果呢?  个人思路  安静这里先介绍下自己的思路:  ·先获取到提示信息的元素坐标点;  ·想办法获取到前端中该元素的颜色属性值;  ·最后通过获取的属性值与我们的预期值进行比较。  猛然一看该思路,啥用没有。但是我们可以先翻阅selenium中的官方文档,看看官方文档中有没有一些帮助内容。  安静从官方文档中找到了:def value_of_css_property(self, property_name):  ...
            13 13 1872
            分享
          • 在我们测试工作中,测试用例的编写至关重要,编写好的测试用例可以覆盖整个项目的测试,能够更好的找到缺陷,下面浅谈下我对功能测试用例编写的思路在面试中,我们常常会被问到:给你一个纸杯,你要怎么测试?不巧的是,我们大多数人都会说纸杯的功能,比如它能装多少水,装开水能不能烫手,纸杯的美观程度等等,当然,不是说这样想是不对的,而是没有考虑周全我们要测试一个产品,要从多个维度来考虑:《1》 安全性纸杯在装满热水时,我们能不能够拿住它,他的耐热怎么样?纸杯装满水会不会漏水?《2》 功能纸杯可以装水吗?纸杯能够装满水吗?《3》兼容性纸杯能否装不同的液体:饮料、凉白开、热水、酒类《4》产品设计纸杯的外表是不是看...
            0 0 1371
            分享
          • 前言我在CSDN上看到一篇名为《程序员为什么非要参加一场编程竞赛》的文章,这是一篇译文,原著是国外的作者。这让我想起前段时间我参加的一场软件测试比赛,最终的感想可以用8个字概括,人无远虑必有近忧。在这里我想和大家分享我的参赛过程和赛后总结。一、赛事简介比赛给人的第一印象就是激情,热血,因为比赛一定能分出高低。编程竞赛在国内出现的时间比较早,现在已经上规模,成体系了,加之媒体的报道,大家也比较熟悉。但是软件测试比赛或许大家还没听说过。实际上成体系的软件测试比赛,例如CST全国大学生软件测试大赛,在2016年就已经首次举办,今年已经是第四届了。赛事项目分有:单元测试、性能测试、安全测试、web自动...
            2 1 2180
            分享
          •   WhatsApp 正在开发的一项新功能允许让用户使用人工智能生成个人资料照片。WABetaInfo 在最近发布的 WhatsApp 测试版(Android 版 v2.24.11.17)中发现了 AI 配置文件照片功能。  根据该网站分享的该功能的所谓截图,您可以通过向即时通讯应用程序提供文字提示来描述您想要生成的个人照片类型。该功能可以帮助创建独一无二的个性化个人照片,反映个性、兴趣和心情。  该网站指出,与该功能相关的一个好处是,可以在 WhatsApp 上分享人工智能生成的个人资料照片而不是真实照片,这样可以防止坏人滥用。该网站称,人工智能个人资料照片功能目前正在开发中,测试者还无法使...
            0 0 495
            分享
      • 51testing软件测试圈微信