基础知识--客户端·服务端·代理

news/2024/7/23 17:50:14 标签: 服务器

目录

一、客户端

1.什么是客户端

2.客户端分类 

二、服务端

1.什么是服务器

2.服务器的作用

3.服务器工作原理

4.服务器的组成

服务器硬件

服务器软件

5.补充

三、代理

1.代理的分类

正向代理 

反向代理

两者的区别与联系

2.总结


一、客户端

1.什么是客户端

客户端(client)指的是应用中面向用户的那一部分界面和功能,是一个区别于服务端(server)的相对概念。

2.客户端分类 

客户端一般可以这样分:

  1. 桌面app(desktop app),指的是运行在桌面操作系统(如windows、macos、ubuntu)上的客户端应用;
  2. 桌面web(client of web),指的是运行在桌面浏览器(如chrome、safari、firefox)中的超文本内容(网页);
  3. 移动app(client of mobile app),指的是运行在移动设备操作系统(如iOS、windows mobile、android)上的客户端应用;
  4. 移动web(client of mobile web),指的是运行在移动设备浏览器(如Chrome for Android, iOS Safari)上的超文本内容(移动网页)。

业务逻辑部分一般指的是区分于用户界面(GUI)系统的那部分功能。业务逻辑可以是客户端的部分功能,也可以放在服务端来实现。

二、服务端

1.什么是服务器

服务器是指能向网络用户提供特定服务的软件+硬件

2.服务器的作用

是为网络提供特定的服务,人们通常用服务器所能提供的主要服务来命名服务器,比如提供文件共享服务的服务器称为文件服务器,提供打印队列共享服务的服务器称为打印服务器等。

3.服务器工作原理

如果把服务器比作人,处理器就是服务器的大脑,各种总线就像是分布于全身肌肉中的神经。芯片组有点像骨架,I/O设备就像是通过神经系统支配的人的手、眼睛、耳朵和嘴。电源系统相当于血液循环系统,将能量输送到身体的各个地方。

4.服务器的组成

服务器硬件+服务器软件

总结起来就是:服务器软件 运行在服务器硬件上 ,为其他计算机用户 提供操作服务。

举例说明服务器硬件和服务器软件,两者的关系:

下载好的MySQL软件安装包就表示一款数据库软件服务器。将它安装到我个人电脑,并运行起来。我这台个人电脑就可以视为一台硬件服务器 / 网络主机了。这台电脑就具备了为其他电脑提供数据库访问、操作的服务。

服务器硬件

硬件角度来说,服务器指的是一种具有【强大运算能力】、能【提供高可靠服务】的【高性能】计算机。

  • 硬件服务器的构成和通用计算机的架构类似,但其配置会比普通计算机的高级。
  • 由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。 因此对其硬件配置要求也更高。
  • 硬件服务器作为网络的节点,存储、处理网络上80%的数据、信息,因此也被称为网络的灵魂。

分类:

                                           

服务器软件

服务器端软件,是相对于客户端 ( 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. 访问原来无法访问的资源,如google

2. 可以做缓存,加速访问资源

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、反向代理: 出租房的二手东


http://www.niftyadmin.cn/n/1009058.html

相关文章

Win10打字输入法不显示输入框怎么办?

Win10的打字输入法是我们日常计算机使用中必不可少的工具之一,然而,有时候在使用过程中可能会遇到打字输入法不显示输入框的问题,这给我们的输入和操作带来了很大的困扰,如果您也遇到了这个问题,不要担心,以…

九齐NY8A051D硬件IR模块的配置和使用以及解码处理

写在前面 最近在群里有看到有小伙伴在问九齐的硬件IR模块,突然想起来我好像用过,找了半天才把项目找出来,写篇博客记录一下方便下次使用和寻找。 按道理来说九齐所有内置硬件IR模块的MCU都是可以用类似的方法配置和使用的,举一反…

http状态码完整篇

HTTP 状态码是服务器返回给客户端的一种代码,用于表示请求的响应结果。常见的 HTTP 状态码有以下几种: 1. 200:表示服务器成功返回了请求的网页。 2. 404:表示请求的网页不存在。 3. 503:表示服务不可用。 4. 1x…

对 tcp out-of-window 的安全建议

TCP 收到一个 out of window 报文后会立即回复一个 ack,这是 RFC793 中 SEGMENT ARRIVES 段的要求。但这是为什么?难道不是默默丢弃才对吗? 对 oow 报文回复 ack,岂不是把正确的 ack 号回过去了吗,这样攻击者盲打一番…

python绘制热力图,数据来源pandas.dataframe

通过pandas.dataframe绘制热力图,并标出颜色最深即z轴数据最大的点。 import matplotlib.pyplot as plt import pandas as pd import numpy as npclass Heatmap:def __init__(self, data, marker*, marker_colorwhite, marker_size10):self.data dataself.size l…

【前端可视化】Canvas 绘制图层覆盖了怎么办?

ctx.globalCompositeOperation destination-over; Canvas 2D API 的 CanvasRenderingContext2D.globalCompositeOperation 属性设置要在绘制新形状时应用的合成操作的类型,其中 type 是用于标识要使用的合成或混合模式操作的字符串。 destination-over:在现有的画布…

用Python制作一个简单时间、日期显示工具

Python是一款强大的编程软件,可以轻松实现我们的多种开发需求。今天我们拿Python中自带的tkinter来开发一个时钟显示器。如下图所示: 时间显示器 一、编程要求 用tkinter写一个漂亮、五彩的时间显示器,要求显示时、分、秒,即时变…

CTK框架 - 插件依赖关系 - 给插件加上界面

文章目录 CTK框架 - 插件依赖关系 - 给插件加上界面插件依赖关系MANIFEST.MF 给插件加上界面Core插件界面的创建: About插件界面的析构: CTK框架 - 插件依赖关系 - 给插件加上界面 插件依赖关系 在第一篇文章中吗,我们提到了MANIFEST.MF中有…