目标

  • 掌握CS和BS架构的特点

  • 知道什么是服务器及常见的软件服务器

  • 了解编程语言的时代发展

  • 知道Java语言的特点

  • 了解python语言的特点

  • 了解XML的语法

  • 了解JSON的特点和语法规则

  • 知道如何使用SVN(Git)管理文件

系统架构介绍

系统架构介绍

两种常见的系统架构:

  • CS架构

  • BS架构

CS架构

CS:(Client/Server) 客户端-服务器架构

优点:

  • 能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器,所有CS客户端响应速度快

  • 操作界面漂亮,形式多样,可以充分满足客户自身的个性化要求

  • 能够实现复杂的业务流程

  • 安全性能更容易保证

缺点:

  • 需要专门的客户端安装程序,不方便实现快速部署安装和配置

  • 兼容性差,不同的操作系统需要开发不同的程序代码

  • 开发、维护成本高

BS架构

BS:(Browser/Server)即浏览器-服务器架构,是伴随着Internet技术的兴起而发展起来的。

优点:

  • 分布性强,客户端零维护;只要有网络、浏览器即可实现业务处理

  • 业务扩展简单方便,通过增加网页即可增加服务器功能

  • 维护简单方便,只需要改变网页,即可实现所有用户的同步更新

  • 开发简单,共享性强

缺点

  • 个性化特点明显降低,无法实现具有个性化的功能要求

  • 在跨浏览器上,存在一定的兼容性

  • 客户端服务器端的交互是请求-响应模式,响应速度低

  • 在速度和安全性上需要花费巨大的设计成本

  • 功能弱化,难以实现传统模式下的特殊功能要求

CS与BS区别总结

  • 效率:c/s效率高,某些内容已经安装在系统中了,b/s每次都要加载最新的数据

  • 升级:b/s无缝升级;c/s删除老版本再安装新版本

  • 安全:c/s更安全,需要安装、注册、登录;b/s有浏览器即可使用,安全程度低

  • 开发成本:b/s成本低;c/s需要不同的系统要不同的开发人员,成本高

服务器的介绍

什么是服务器

我们通常所说的“服务器”可以从硬件和软件两个层面来理解:

  • 硬件服务器:其实就是我们所说的电脑;任何一台电脑安装了软件并且可以对外提供服务就可以叫服务器;专业服务器需要专业的硬件和软件支持,性能高,价格也比较高

  • 软件服务器:一个运行在硬件服务器上并为用户提供服务的计算机软件

提示:在不同的意境下,“服务器”代表着不同的含义;有时指的是硬件,有时指的是软件,有时指的是提供

服务的系统

软件服务器

  • 软件服务器也可以称为服务器软件,不同类型的服务器软件能够提供不同的服务。常见的软件服务器有:

  • 文件服务器:是指在计算机网络环境中,所有用户都可访问的文件存储设备,是一种专供其他电脑检索文件和存储的特殊电脑

  • 数据库服务器:提供了对数据组织、存储和管理功能的服务器,比如Oracle、MySQL、Microsoft SQL Server等等

  • 邮件服务器:邮件服务器是一种用来负责电子邮件收发管理的设备

  • FTP服务器:是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务

  • Web服务器:

  • 严格意义上Web服务器只负责处理HTTP协议,只能发送静态页面的内容

  • 常见的Web服务器有Nginx,Apache,IIS等等

  • 应用服务器:

  • 应用服务器是指通过各种协议把商业逻辑曝露给客户端的程序

  • 应用服务器一般也支持HTTP协议,能够实现Web服务器的功能

  • 应用服务器可以处理业务逻辑,实现动态生成文档

  • 常见的应用服务器有Tomcat、Weblogic、Jboss等等

编程语言的介绍

什么是编程语言

  • 编程语言(programming language)可以简单的理解为一种计算机和人都能识别的语言。

  • 一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的

  • 行动。

编程语言的时代发展

编程语言经历的时代一般分为:低级语言、高级语言和面向对象时代

低级语言时代
  • 时间:1946-1953

  • 主要包括被称为“天书”的机器语言以及汇编语言

高级语言时代
  • 时间:1954-至今

  • 随着世界上第一个高级语言fortran的出现,新的编程语言开始不断涌现出来

  • 数十年来,全世界涌现了2500种以上高级语言,一些流行至今,一些则逐渐消失

  • 代表语言:BASIC、C语言

面向对象时代
  • 时间:90年代初-至今

  • 面向对象程序设计(Object-Oriented Programming,简称OOP)如今在整个程序设计中十分重要,其

  • 最突出的特点为封装性、继承性和多态性

  • 代表语言:Java、Python、go

Java语言

  • Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等

  • 概念

  • Java语言具有功能强大和简单易用两个特征

  • Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点

  • Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等

  • 近几年来,Java企业级应用飞速发展,主要被运用于电信、金融、交通、电商等大型项目平台建设

python语言

  • Python是一种跨平台的计算机程序设计语言

  • 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言

  • 最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发

  • 相对于Java语言更加简单易学

  • 主要应用领域:大数据、人工智能、科学计算和统计、网络爬虫、软件开发等

go语言

  • 简洁高效:Golang语言设计简洁,语法简单易学,同时编译速度快,执行效率高。

  • 并发支持:Golang内置支持并发编程,可以轻松实现高并发、分布式系统。

  • 跨平台支持:Golang可以在各种操作系统和硬件平台上运行,具有很好的跨平台兼容性。

  • 生态丰富:Golang拥有丰富的标准库和第三方库,可以方便地实现各种功能和应用场景

链接:https://www.zhihu.com/question/578381580/answer/2931273555(百度介绍)

常见文件格式

XML

什么是 XML?

一种用于标记电子文件使其具有结构性的标记语言

可以用来标记数据,定义数据类型,允许用户对自己标记语言进行定义

提供统一的方法来描述和交换独立与应用程序或供应商的结构化数据

XML是纯文本,文件后缀名为:xml

实例

<?xml version="1.0" encoding="UTF-8" ?>
<node><db id="db" desc="三条边的长度都一样"><b1>3</b1><b2>3</b2><b3>3</b3><expect>等边三角形</expect></db><dy><b1>4</b1><b2>4</b2><b3>5</b3><expect>等腰三角形</expect></dy>
</node>

XML和HTML的主要差异

XML 不是 HTML 的替代

XML 和 HTML 为不同的目的而设计:

XML 被设计为传输和存储数据,其焦点是数据的内容。

HTML 被设计用来显示数据,其焦点是数据的外观。

XML树形结构

XML文档形成了一种树形结构,它从“根部”开始,然后扩展到“枝叶”

XML文档中第一行是 XML 声明,它定义 XML 的版本和所使用的编码。

<?xml version="1.0" encoding="UTF-8" ?>
<mail><from>张三</from><to>李四</to><subject>会议记录</subject><body>本次会议的主要内容有...</body>
</mail>

XML语法

XML的主要语法规则包括:

  • XML文档必须有根元素

  • XML文档必须有一个元素是所有其他元素的父元素。该元素称为根元素

  • 所有XML元素都须有结束标签

  • 在HTML中经常会看到没有结束标签的元素,但是XML中省略结束标签是非法的

  • XML标签对大小写敏感

  • 在XML中,标签 <Letter> 与标签 <letter> 是不同的

  • XML必须正确地嵌套

  • HTML中: <b><i>This text is bold and italic</b></i>

  • XML中,所有元素都必须彼此正确地嵌套: <b><i>This text is bold and italic</i></b>

  • XML的属性值须加引号

  • XML中的注释

  • 在XML中编写注释的语法与HTML的语法很相似: <!-- This is a comment -->

XML案例

<?xml version="1.0" encoding="UTF-8" ?>
<intro><name>小明</name><gender>男</gender><age>20</age><university>清华大学</university><pets><pet age="1">狗</pet><pet age="2">猫</pet><pet age="3">猪</pet></pets><luckyNumbers><number>2</number><number>5</number><number>8</number></luckyNumbers>
</intro>

JSON

JSON的全称是”JavaScript Object Notation”,是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。

JSON的特点

- JSON是纯文本

- JSON具有良好的自我描述性,便于阅读和编写

- JSON具有清晰的层级结构

- 有效地提升网络传输效率

JSON语法规则
  • 大括号保存对象

  • 中括号保存数组

  • 对象数组可以相互嵌套

  • 数据采用键值对表示

  • 多个数据由逗号分隔

JSON键

JSON的键必须是字符串类型,用英文双引号括起来

JSON值

JSON 值可以是:

  • 数字(整数或浮点数)

  • 字符串(在双引号中)

  • 逻辑值(true 或 false)

  • 数组(在中括号中)

  • 对象(在大括号中)

  • null

{"name": "tom","age": 18,"isMan": true,"school": null,"address": {"country": "中国","city": "江苏苏州","street": "科技园路"},"numbers": [2, 6, 8, 9],"links": [{"name": "Baidu","url": "http://www.baidu.com"},{"name": "TaoBao","url": "http://www.taobao.com"}]
}

SVN(Git)

SVN的学习(为啥要学SVN)

  1. 备份数据不丢失

  1. 历史版本随时提取

  1. 版本如何同步简单

  1. 提交内容不会出现覆盖

SVN是什么

一个开源的版本管理软件

可架设在Apache上,最常用的客户端为TortoiseSVN(简称TSVN)

SVN应用环境

服务器端:CollabNet的SVN服务器端安装包(内含Apache2.2)

推荐使用TortoiseSVN(以下简称TSVN)

可通过TSVN进行读、写操作

可通过IE浏览器进行读操作

可通过各种插件与开发工具集成

客户端的安装

安装文件:

TSVN客户端:

TortoiseSVN-1.6.8.19260-win32-svn-1.6.11.msi

TSVN中文语言包:

LanguagePack_1.6.8.19260-win32-zh_CN.msi

全部选择默认安装,安装完成后重启电脑

TSVN通过右键菜单与Windows资源管理器集成,没有自己的窗口界面

SVN的使用-创建版本库

在相应文件夹内新建一个文件夹,用于存储数据

在新建文件夹上点右键,选择“TortoiseSVN-在此创建版本库”,TSVN会在此文件夹内建立若干控制文件。

SVN使用-检出

检出用于客户端第一次从SVN服务器上下载版本库数据

在客户端新建一个文件夹用于存放下载的数据

在新建文件夹上点右键,选择“SVN检出"

SVN使用-更新

“更新”用于客户端从SVN服务器下载最新版本

在受SVN控制的某层文件夹上(或文件夹内空白处)点右键,选择“SVN更新”,TSVN自动比较该文件夹客户端与服务器版本差异,并下载最新版本到客户端

SVN使用-提交

提交用于将客户端的改动上传到SVN服务器

在受SVN控制的某层文件夹上(或文件夹内空白处,或某文件上)点右键,选择“SVN提交…”

SVN使用-增加

在受SVN控制的某层文件夹上(或文件夹内空白处,或新增的某文件上)点右键,选择“TortoiseSVN-增加”

SVN使用-删除

“删除”仅是对客户端的文件进行操作,并不改变服务器上的内容,需要执行“提交”操作才会将删除操作上传到服务器

将“删除”操作“提交”到服务器后,仅是从服务器的最新版本中删除了此文件或文件夹,在历史版本中仍可找回此文件或文件夹

SVN使用-改名

改名”仅是对客户端的文件进行操作,并不改变服务器上的内容,需要执行“提交”操作才会将改名操作上传到服务器

不要用Windows“重命名”来实现改名,因为这个操作不受SVN控制,SVN会将其理解为删除原文件、增加一个新文件,从而导致文件改名后不能跟踪到改名前的状态

SVN使用-移动

移动用于在受SVN控制的状态下,移动文件或文件夹的位置

在受SVN控制的某层文件夹或文件上点右键,选择“TortoiseSVN-版本库浏览器”

在弹出窗口拖动文件夹或文件到需要的位置

由于是对服务器版本库直接操作,移动后将自动执行一次“提交”操作

移动完成后需要在客户端执行一次“更新”,以下载最新状态

Git

是一个开源分布式版本控制系统,市面上大多数公司现在已经不用SVN了,采用了Git来进行项目的版本管理跟控制,可以更快,有效,的处理项目版本管理

创建版本库:

git init

提交

git commit

管理分支

git branch 文件名

创建分支

git checkout 文件名

PS:git的使用方法这边就不占用太多的篇幅去对它进行一个描述,简单的写了几个命令,大家了解一些两个工具就行了,后续有需要可以出一篇怎么使用git,github ,gitee的教程

【测试基础】之05 后端语言相关推荐

  1. 软件测试52讲 - 笔记(一)- 测试基础知识

    测试基础知识 01 | 你真的懂测试吗?从"用户登录"测试谈起 总结 案例 功能 测试用例 基础功能用例(基于等价类和边界值设计) 可添加功能用例(经验型) 安全性用例 性能用例 ...

  2. web后端语言_web前端学习路线图_快速入门web前端学习路线图

    如何学好Web前端开发技术?前端学习路线是什么?如今,移动开发的发展依旧如火如荼,企业对于Web前端人才需求产生了巨大的缺口,从事Web前端开发的程序员们则是其中较大的获益者.Web前端的广泛运用,造 ...

  3. 测试基础+性能测试+自动化测试面试题(含答案)

    目录 测试基础 一.没有需求文档,如何开展测试 二.如何提高用例的覆盖率,减少漏测 三.在浏览器中输入了一个 url 后,请求流程是什么样的 四.说几个常见的 HTTP 请求头字段吧 五. 测试用例里 ...

  4. 2021年6月7日08点37分 渗透测试基础部分

    1.基础知识 1.1.HTTP 一个客户端请求应答的标准 基于TCP层次的应用层协议,默认端口80 1.2.HTTPS 以安全为目标的HTTP通道,简单来说是HTTP的安全版,既HTTP下加入SSL层 ...

  5. 最近面了12个人,发现这个测试基础题都答不上来...

    一般面试我都会问一两道很基础的题目,来考察候选人的"地基"是否扎实,有些是操作系统层面的,有些是 python语言方面的,还有些- 深耕IT行业多年,我们发现,对于一个程序员而言, ...

  6. 如何零基础学习python语言_零基础如何入门Python语言?有哪些学习建议?

    众所周知,Python目前是最受欢迎的编程语言之一,尤其是对于零基础的初学者来说,Python语言更是十分的友好.因此,不少初学者常常会有这样一个共同的疑惑,零基础如何入门Python语言?本文就来给 ...

  7. 零基础学python语言_零基础如何入门Python语言?有哪些学习建议?

    众所周知,Python目前是最受欢迎的编程语言之一,尤其是对于零基础的初学者来说,Python语言更是十分的友好.因此,不少初学者常常会有这样一个共同的疑惑,零基础如何入门Python语言?本文就来给 ...

  8. python有哪些软件包用来考察变量之间的相关性_Python语言基础考察点:python语言基础常见考题(一)...

    一.python是静态还是动态类型?是强类型还是弱类型? 1.动态强类型语言(不少人误以为是弱类型) 不要傻傻分不清 2.动态还是静态指的是编译期还是运行期确定类型 3.强类型指的是不会发生隐式类型转 ...

  9. python中delete怎么用_python删除np.deletePython基础教程05 - 缩进和选择

    缩进 Python最具特色的是用缩进来标明成块的代码.我下面以if选择结构来举例.if后面跟随条件,如果条件成立,则执行归属于if的一个代码块. 先看C语言的表达方式(注意,这是C,不是Python! ...

最新文章

  1. JAVA数据结构知识点,数据结构 树Tree 知识点总结 附Leetcode力扣练习题答案
  2. 注解处理器开发过程相关问题
  3. C#实现查找指定端口被哪个进程占用并处理进程及dos命令下操作
  4. Spring –持久层–编写实体并配置Hibernate
  5. 【数据库】SQL语句
  6. navicat 官方使用手册,中文版,快捷键大全
  7. 如何制定好的方案之四:执行力是决定因素
  8. 【转载】Scarbee Pre-Bass 贝司的使用教程
  9. Linux 用户(useradd/userdel/groupadd/groupmod
  10. Tutorial of Codeforces Round 729 (Div.2)
  11. [转载] python中append和extend函数区别
  12. poj 2389 Bull Math java解决!!
  13. 学深圳,垃圾随桶运走最好
  14. request canceled (Client.Timeout exceeded while awaiting headers)
  15. Android.bp 添加宏开关
  16. golang框架gin的日志处理和zap lumberjack日志使用
  17. C#编译基础知识(一)
  18. java+mysql基于ssm的游戏光盘租赁系统(java,web)
  19. Things_androidThings入门
  20. 区块链DAPP开发入门课程(PHP版)

热门文章

  1. 【blender动作练习生】从零开始的骨骼绑定学习vol.2
  2. IMU误差模型与校准
  3. TOT(Tree of Thought) | GPT-4+dfs搜索算法提升大模型复杂问题解决能力
  4. 给linux4.19内核打上补丁(支持RNDIS)
  5. no.15 MobileViT
  6. Mysql索引优缺点
  7. 突然很怀念在净月玩大富翁的日子
  8. 从表中名称映射关系修改视频名称
  9. 【无标题】IBM X3500服务器故障|前面板指示灯...
  10. Appium APP UI自动化测试简介与环境搭建