目录
一、客户端
1.什么是客户端
2.客户端分类
二、服务端
1.什么是服务器
2.服务器的作用
3.服务器工作原理
4.服务器的组成
服务器硬件
服务器软件
5.补充
三、代理
1.代理的分类
正向代理
反向代理
两者的区别与联系
2.总结
一、客户端
1.什么是客户端
客户端(client)指的是应用中面向用户的那一部分界面和功能,是一个区别于服务端(server)的相对概念。
2.客户端分类
客户端一般可以这样分:
- 桌面app(desktop app),指的是运行在桌面操作系统(如windows、macos、ubuntu)上的客户端应用;
- 桌面web(client of web),指的是运行在桌面浏览器(如chrome、safari、firefox)中的超文本内容(网页);
- 移动app(client of mobile app),指的是运行在移动设备操作系统(如iOS、windows mobile、android)上的客户端应用;
- 移动web(client of mobile web),指的是运行在移动设备浏览器(如Chrome for Android, iOS Safari)上的超文本内容(移动网页)。
业务逻辑部分一般指的是区分于用户界面(GUI)系统的那部分功能。业务逻辑可以是客户端的部分功能,也可以放在服务端来实现。
二、服务端
1.什么是服务器
服务器是指能向网络用户提供特定服务的软件+硬件。
2.服务器的作用
是为网络提供特定的服务,人们通常用服务器所能提供的主要服务来命名服务器,比如提供文件共享服务的服务器称为文件服务器,提供打印队列共享服务的服务器称为打印服务器等。
3.服务器工作原理
如果把服务器比作人,处理器就是服务器的大脑,各种总线就像是分布于全身肌肉中的神经。芯片组有点像骨架,I/O设备就像是通过神经系统支配的人的手、眼睛、耳朵和嘴。电源系统相当于血液循环系统,将能量输送到身体的各个地方。
4.服务器的组成
服务器硬件+服务器软件
总结起来就是:服务器软件 运行在服务器硬件上 ,为其他计算机用户 提供操作服务。
举例说明服务器硬件和服务器软件,两者的关系:
下载好的MySQL软件安装包就表示一款数据库软件服务器。将它安装到我个人电脑,并运行起来。我这台个人电脑就可以视为一台硬件服务器 / 网络主机了。这台电脑就具备了为其他电脑提供数据库访问、操作的服务。
服务器硬件
硬件角度来说,服务器指的是一种具有【强大运算能力】、能【提供高可靠服务】的【高性能】计算机。
- 硬件服务器的构成和通用计算机的架构类似,但其配置会比普通计算机的高级。
- 由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。 因此对其硬件配置要求也更高。
- 硬件服务器作为网络的节点,存储、处理网络上80%的数据、信息,因此也被称为网络的灵魂。
分类:
- 按应用层次划分为四类:入门级服务器、工作组级服务器、部门级服务器 和 企业级服务器;
- 按机箱结构划分为四类:塔式服务器、刀片式服务器、机架式服务器、高密度服务器
- 按用途划分为两类:通用型服务器 和 专用型服务器
- 按处理器架构(服务器CPU所采用的指令系统)划分为三类:CISC架构服务器、RISC架构服务器 和 VLIW架构服务器。
服务器软件
服务器端软件,是相对于客户端 ( Client ) 软件而言的。是指能够开放网络端口,接受其他的客户端软件建立连接,并且通过此连接与客户端软件之间交换数据的软件。
而这一开放特定端口,接受客户端软件连接,并通过此连接与客户端软件交换数据的行为称为 “服务”(service)。
分类
网络服务器指的是网络环境下为客户提供某种服务的专用服务器。通俗的说,该服务器只要联网,就能看做是网络服务器。
在网络环境下,通常根据服务器所提供的服务类型来作为分类依据。网络服务器端软件的种类很多:
- 网页服务器(Web Server)—— Apache、Nginx、微软的IIS、lighttpd等
- 应用程序服务器(Application Server)——Tomcat、Weblogic
- 数据库服务器(Database Server)——MySQL、Oracle、Redis
- FTP服务器(FTP Server)——Pureftpd、Proftpd、WU-ftpd、Serv-U、vs-ftpd等。
- 代理服务器(Proxy Server)——如Squid cache
- 域名服务器(DNS Server)——如Bind等
- 邮件服务器(Mail Server)——Sendmail、Postfix、Qmail、Microsoft Exchange、Lotus Domino、dovecot等
每种类型的服务器都有不同的版本,可以运行在不同的硬件及软件平台上。
这些软件可以单独运行在某一台计算机上,也可以共同运行在同一台计算机上。它们各自开放不同的端口等待不同的客户端软件连接。
比如Http Server通常开放80端口,FTP Server通常开放21端口。
5.补充
Windows,Linux与Unix这3个操作系统是架设Web服务器比较常见的操作系统。
Linux的安全性能在这3个操作系统中最高,可以支持多个硬件平台,其网络功能比较强大。总的来说,这两大优点是其他操作系统不可替代的:
第一,可以依据用户不同的需求来随意修改、调整与复制各种程序的源码以及发布在互联网上;
第二,Linux操作系统的市场价格比较便宜,也能够在互联网上免费下载源码。可以说,Linux为架设既高效又安全的Web服务器的比较理想的操作系统。此外,要让Web服务器更具有优越的性能,可以根据服务器系统之特点与用途作进一步的优化与处理,尽量减少Web服务器的数据传输量以及降低其数据传输的频率,进而促进网络宽带的利用率与使用率,以及提高网络客户端的网页加载的速度,同时也可以减少Web服务器各种资源的消耗。
三、代理
代理就相当于中间商,本来A和B是可以直接连接的,但是此时添加了一个C在中间,A跟B不直接连接,而是通过C作为中介进行连接。
最常见的例子就是二手东,其实很多我们租房子时签约的人不是房子的真正房东,而是房东委托的中介,房东不想管事或者房子太多,只靠自己无法进行管理,所以才会通过中介(代理)进行处理,像蛋壳、自如这样的租房软件其实也是中介的一种,真正的房东是直接将房子委托给这样的第三方中介进行出租。
互联网中:一个完整的请求是由: client(客户端) -> proxy(代理) -> server(服务端) 组成。
1.代理的分类
- 正向代理
- 反向代理
正向代理
正向代理:
顺着请求的方向进行的代理,即代理服务器它是由你配置为你服务,去请求目标服务器地址。
举例:
如我们现在想要访问谷歌,但是由于某些原因,无法直接访问到谷歌,我们可以通过连接一台代理服务器,代理服务将我们的请求提交到谷歌,然后再将谷歌的响应反馈给我们,对于谷歌而言,它只知道有一个请求过来,但是它并不会知道我们是无法直接访问它的。
正向代理的作用:
1. 访问原来无法访问的资源,如google2. 可以做缓存,加速访问资源
3. 对客户端访问授权,上网进行认证
4. 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
反向代理
反向代理:
跟正向代理相反,它是为目标服务器进行服务的,但是请求的流程还是: client -> proxy -> server。
举例:
比如我们访问百度网站,百度的代理服务器对外的域名为 https://www.baidu.com 。具体内部的服务器节点我们不知道。现实中我们通过访问百度的代理服务器后,代理服务器给我们转发请求到他们N多的服务器节点中的一个给我们进行搜索后将结果返回,此时,代理服务器对我们客户端来说就充当了提供响应的服务器,但是对于目标服务器来说,它只是进行了一个请求和转发的功能。
反向代理的作用:
1. 保证内网的安全,阻止web攻击,大型网站,通常将反向代理作为公网访问地址,Web服务器是内网。2. 负载均衡,通过反向代理服务器来优化网站的负载。
两者的区别与联系
区别:
正向代理即是客户端代理, 代理客户端, 服务端不知道实际发起请求的客户端.
反向代理即是服务端代理, 代理服务端, 客户端不知道实际提供服务的服务端.联系:
1、正向代理中,proxy和client同属一个LAN,对server透明;
2、反向代理中,proxy和server同属一个LAN,对client透明。
2.总结
事实上,正向代理和反向代理的作用都是进行请求和转发,但是为了区别正向代理,所以后出现的就成为反向代理。
生活中最常见的例子:1、正向代理: 卖票的黄牛
2、反向代理: 出租房的二手东