什么是软件:软件就是程序、文档、数据的一个集合。我们平时电脑中用的QQ等程序、网站、手机中的APP都是以相同的方式运行的。
常见的软件的表现 : APP,网址 }前端
服务器:(本质上就一台电脑的主机)}后端
- 服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。服务器在网络中为其它客户机(如PC机、智能手机、ATM等终端甚至是火车系统等大型设备)提供计算或者应用服务。
软件的结构类型
c/s 客户端/服务器 :(占据大部分软件,比如:QQ,微信,360,XMind)
c 表示客户端 : 用户通过客户端来使用软件
s 表示服务器 :负责处理软件的业务逻辑
B/S 浏览器/客户端:本质也是c/s,只不过B/S架构的软件使用浏览器作为软件的客户端B/S架构的软件通过使用浏览器访问网页的形式来访问软件 (比如:京东,淘宝)
C/S架构的优缺点:
优点:
- 1.客户端因为是独立设计,所以可以实现个性化
- 2.因为客户端是需要进行安装的,可以不需要重复安装和加载
- 3.因为客户端是独立开发的,所以有能力对客户端进行安全设计
- 4.如果遇到不同的操作系统,需要为不同的操作系统各开发一套客户端【比如:android /ios】
另一个是服务端/后段。也就是常说的服务器。
缺点:
- 1.适用面窄,通常用于局域网中。
- 2.维护成本高,发生一次升级,则所有客户端的程序都需要改变。
B/S架构的优缺点:
优点:
- 1.因为B/S架构具备通用性,所以开发成本较低。
- 2.因为不需要安装客户端,所以客户端不需要进行升级,只需要更新后台代码即可实现所有客户端的更新。
- 3.因为B/S架构多用WEB网页进行开发,所以增、删功能也非常容易,只需要修改网页即可完成1.1前段/客户端
缺点:
- 1.耗流量,每次都要加载全部的内容(不过有缓存可以降低流量损耗)
- 2.因为没有独立的客户端,所以无法实现个性化(通过账号体系可以实现)
- 3.因为没有独立设计客户端,所以客户端难以实现安全控制
软件的结构:
软件由前端(用户端)与后端(服务端)组成。
需要联网才能使用,其实就是用我们的用户端去连接了服务端。连接用户端和服务端的通道就是接口。
前端:客户端(前台)、商家端、管理端(后台)属于前端;客户端大多都有APP【android/ios】版与web版;商家端、管理端一般只有web版。
后端:后端是运行在服务器(电脑)上的。
服务器运行需要的条件:
- 1.程序的运行环境。软件都是需要安装运行环境才可以运行;例如安装了Java软件,还需要安装Java运行环境才能运行Java编写的代码。我们平时很多软件安装后就能使用是因为Windows自带了部分软件的运行环境。
- 2.服务器软件。提供访问的服务,给我们开放访问服务器的端口。
- 3.数据库。存储系统的所有数据。
- 4.后端程序
(安装前三个软件都是为了让后端程序运行起来)
网络知识:
- 域名
- IP
- 端口
一、域名:
域名可以简单理解为通往你网站的路,简称域名、网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位,通常由一串字符和后缀组成。
二、IP:IP是英文Internet Protocol的缩写,意思是“网络之间互连的协议”,也就是为计算机网络相互连接进行通信而设计的协议。
1、公网IP
2、局域网IP
公网IP是全世界唯一的IP地址,仅分配给一个网络设备。而内网(局域网)IP是由路由器分配给每一部内部使用的IP地址,而内网的所有用户都是通过同一个外网IP地址进行上网的。
公网IP(外网IP):局域网通过一台服务器或者路由器对外连接网络的唯一IP地址,通俗点就是局域网中所有想要对外连接网络,都得通过这个IP地址。
内网IP:也就是常说的局域网,局域网中的每台电脑都是通过路由器或者交换机连接起来,形成的网络,每台电脑的IP地址不同,对外使用同一个公网IP。 通俗点说,就是公司有两台电脑,通过网线,路由器等设备可以组建一个局域网,大家可以自由设置内网的IP,比如电脑1的内网IP为192.168.1.1,电脑2的内网IP为192.168.1.2,通过这两个IP地址,可以互相访问各种的电脑,但是对外网无效。如果大家想要对外连接互联网Internet,需要向电信等网络提供商申请分配一个IP地址,大家通过拨号上网,就可以进行浏览网页,QQ聊天,游戏等等
3、本机IP:即主机IP堆栈内部的IP地址,主要用于网络软件测试以及本地机进程间通信,无论什么程序,一旦使用回送地址发送数据,协议软件立即返回之,不进行任何网络传输。
查看本机ip地址方法:点击电脑开始菜单-运行,输入cmd回车,进入dos界面;
查询本机外网ip地址方法:在浏览器中打开百度网址,输入ip回车,即可查看搜索结果第一栏为本机外网ip地址;
服务器软件:
- Web服务器
- HTTP服务器
- 应用服务器
1、Web服务器
顾名思义,Web的功能就是提供Web化服务。那什么又叫Web服务呢,简单点理解比如:网站页面服务、邮件服务、网络下载服务等等,都可以称作Web化服务。
总而言之,Web服务器从广义上来说,就是响应用户的需求并提供响应和服务。所以从这个角度来讲,当下几乎所有服务器软件都可以称之为Web服务器。
2、HTTP服务器
由于当今Web服务器应用层通信协议主要就是HTTP协议,所以我们 “基本”上可以将HTTP服务器理解为和Web服务器对等,因此在下文的阐述时这两个概念不会作过多的纠结区分。
HTTP服务器只是把服务器上的资源通过HTTP协议传输给了客户端,所以这地方我们 侧重于 它对于静态资源传输的支持。因此一般也理解为静态服务器。
当然它的功能一般不止这些,实际企业里也常做反向代理、负载均衡等用途。
3、应用服务器
应用服务器,则可以理解为一个特定应用的承载容器。一般来说它需要有运行时环境的支持。比如在Java领域比较常用的应用服务器Tomcat,它就必须要Java运行时环境的支持。
因此,应用服务器也常常被称为:动态服务器、动态容器、应用容器、Web容器等等,这些概念基本都是对等的。
既然属于动态服务器,很明显它就能支持动态响应,比如可以根据不同用户的请求,能够动态的生成资源并返回。这样一来,在客户端,不同用户拿到的返回内容也不一样,不像静态服务器,大家拿到的资源都一样。
当然一般来说,在流量不大的场景下,应用服务器肯定也是可以做HTTP服务器来用,只不过很少有这么去干的。
所以接下来我们就以目前市场上常用的服务器软件为例:
Nginx
Nginx是一个典型的HTTP服务器。它原本的本职工作就是将服务端的某一个静态内容或资源通过HTTP协议传到客户端,所以也就是典型的静态服务器。
当然Nginx服务器的功能远不止这些,现在常用的功能还包括做反向代理、负载均衡。
现实应用部署场景中,Nginx一般是与后面真正的动态应用服务器打配合,比如Tomcat,把用户请求转发给后面的应用服务器,从而提供灵活稳定的Web服务。因为Nginx服务器性能好,稳定性也高,能扛得住冲击,把它放在前面去直面用户。
Tengine
Tengine其实是基于Nginx服务器做的改造,可以看做是在Nginx的基础上又做了加强和封装,主要就是针对大流量网站的需求,添加了很多高级功能和特性。
Tengine它是淘宝发起的Web服务器项目。它的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。
所以Tengine它和Nginx这俩是一个性质的东西。
IIS
IIS是微软阵营的Web服务器,只能运行于Windows系统下,而且并不是开源的。
IIS的主要身份还是一个HTTP服务器,但由于它也支持比如http://ASP.NET这种类似环境(毕竟都是微软自家的东西),因此也可以兼做应用服务器,所以它可以定位为一个具有应用服务器能力的HTTP服务器。
Apache
Apache服务器具体指的就是:Apache HTTP Server,它是Apache软件组织旗下的一个HTTP服务器项目。
Apache从功能上来说和Nginx服务器对等,也是做静态HTTP服务器,只不过在并发、负载和资源消耗等方面的性能都比不上Nginx,所以现在选用Nginx的更多。
Gunicorn
Gunicorn 的全称是 Green Unicorn,是在 UNIX 系统上运行的 WSGI 服务器。Gunicorn 与各种 Python Web 框架兼容,配置简单,且对资源的消耗非常少。Gunicorn 基于 pre-fork worker 模式,运行时会有一个 Master 进程和多个 Worker 进程。Master 是一个中控进程,实现对所有 Worker 的管理。同时,Master 也不会关心客户端,所有的请求与响应都由 Worker 来完成。
gunicorn 是面向 Python WSGI 应用的 HTTP 服务器。它在 Linux/Unix 上运行,优点是轻量级且速度快。gunicorn 通过一个控制进程和多个工作进程来执行应用程序。由于它是一个 Python 模块,所以可以变更工作进程的类以及扩展服务器本身。
windows的基本操作
——配置环境变量
把软件的目录写到环境变量的PATH中
JDK的安装
1.将jdk装包下载好;
2.双击安装包开始安装,一直下一步即可,自己也可以选择自己喜欢的位置安装;
3.配置环境变量:我的电脑>右键>属性>高级系统设置>环境变量>在系统变量中找到Path并进行编辑, 将jdk下bin目录的路径和jdk下的jre的bin目录的路径加入即可;
4.检查是否配置成功,打开cmd,输入java -version和javac -version查看jdk版本,如果能成功查看说明配置成功。