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

news2024/12/29 8:38:04

目录

一、客户端

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%的数据、信息,因此也被称为网络的灵魂。

分类:

  • 按应用层次划分为四类:入门级服务器工作组级服务器部门级服务器 和 企业级服务器
  • 按机箱结构划分为四类:塔式服务器刀片式服务器、机架式服务器高密度服务器

                                           

  • 按用途划分为两类:通用型服务器 和 专用型服务器
  • 按处理器架构(服务器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. 访问原来无法访问的资源,如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.coloradmin.cn/o/710980.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【八股】【C++】(二)函数、类、模板

这里写目录标题 形参与实参的区别函数调用过程指针和引用当函数参数回调函数友元函数重载匹配运算符重载直接初始化与拷贝初始化函数指针C中struct(结构)和class(类)的区别C有哪几种构造函数构造函数的执行顺序析构函数的执行顺序…

设计消息模块的业务层Web层

目录 业务层 一、定义Message业务接口 二、定义Message业务实现类 Web层 一、获取分页消息列表 二、根据ID查询消息 三、把未读消息更新成已读消息 四、删除消息 业务层 一、定义Message业务接口 创建 MessageService.java 类 public interface MessageService {pub…

mybatis-plus使用@Delete注解批量删除实战

使用Delete注解批量删除 1、控制器调用 // test // http://localhost:3000/function/test // 删除操作按钮权限 Transactional GetMapping("/test") public JSONObject testBatch() {// Arrays.asList(1, 2, 3)JSONObject result new JSONObject();try {functionM…

Django+vue3权限菜单rabc设计和动态路由

本次是基于Django和vue实现 github源码:nineaiyu/xadmin-server: xadmin-基于Djangovue3的rbac权限管理系统 (github.com) 服务器设计及部分代码 权限控制的话,可以基于Django的permission进行控制,并通过访问api的URL操作 核心代码如下 …

stable-diffusion使用openpose报错

依据教程 &#xff1a; https://post.smzdm.com/p/awz2l2xg/ 使用 stable-diffusion教学之ControlNetlora换脸 报错&#xff1a; urllib.error.URLError: <urlopen error [WinError 10054] 远程主机强迫关闭了一个现有的连接。> File "E:\ai\sd-webui-aki-v4\ext…

【数据挖掘】时间序列教程【五】

(说明:本文接上回:【数据挖掘】时间序列教程【四】_无水先生的博客-CSDN博客) 上面介绍的傅里叶变换的问题在于,无论是正弦/余弦回归模型形式还是复指数形式,它都需要 操作以计算所有傅里叶系数。有n 数据点和有n/2 可以计算傅里叶系数的频率。每个频率系…

Springboot3新特性异常信息ProblemDetail详解

环境&#xff1a;Springboot3.0.5 概述 RFC 7807定义了为HTTP响应中错误的可读详细信息&#xff0c;以避免需要为HTTP API定义新的错误响应格式。HTTP [RFC7230]状态码有时不足以传达关于错误的足够信息。 RFC 7807 定义了简单的JSON[RFC7159]和XML[W3C.REC-XML-20081126]文…

7.MHA高可用配置及故障切换

文章目录 MHA高可用配置及故障切换MHA概念实验配置时间同步与主从复制安装MHA服务SSH免交互认证验证MHA服务是否开启启动服务 故障模拟恢复故障过程 MHA高可用配置及故障切换 MHA概念 MHA&#xff08;MasterHigh Availability&#xff09;是一套优秀的MySQL高可用环境下故障切…

计网实验第四章:IP

问题集1&#xff1a; 1.192.168.31.7 2. 上层协议为ICMP&#xff0c;并且其字段值为1 3. 20字节 56字节 - 20字节 36字节 解释&#xff1a;如图所示 4. 这个报文段没有分段发送 原因如图&#xff1a;按照下图所示 标志位显示没有更多的分段。 5. 同一地址发送的这两个…

1.计算机是如何工作的(下)

文章目录 4.编程语言&#xff08;Program Language&#xff09;4.1程序&#xff08;Program&#xff09;4.2早期编程4.3编程语言发展 5.操作系统&#xff08;Operating System&#xff09;5.1操作系统的定位5.2什么是进程/任务&#xff08;Process/Task&#xff09;5.3进程控制…

[LangChain]简介快速入门

⭐作者介绍&#xff1a;大二本科网络工程专业在读&#xff0c;持续学习Java&#xff0c;努力输出优质文章 ⭐作者主页&#xff1a;逐梦苍穹 ⭐所属专栏&#xff1a;人工智能。 目录 1、简介2、快速入门2.1、LLMs2.2、聊天模型2.3、提示模板2.4、链2.5、代理2.6、内存 1、简介 …

1758_C语言通过预处理的eror输出异常信息

全部学习汇总&#xff1a; GreyZhang/c_basic: little bits of c. (github.com) 这个功能我一直没有使用过&#xff0c;能够想到它完全是因为之前从某些代码中看了一眼。或许&#xff0c;这就是我跟这个小小知识点的缘分。 最近想处理一个可以适配多种情况的程序&#xff0c;…

领域驱动设计(DDD,Domain-Driven Design)

领域驱动设计 前言正文领域驱动设计基本概念什么是领域模型&#xff1f;什么是领域服务&#xff08;Domain Service&#xff09;&#xff1f;什么是领域事件&#xff1f; 秒杀项目中的领域分析一、秒杀活动领域设计秒杀活动领域模型领域服务领域事件 二、秒杀品领域设计领域模型…

开源自动化测试框架介绍

开源自动化测试框架介绍 一、Junit&#xff08;白盒测试、API自动化、UI自动化&#xff09;【官网】【简介】【使用场景】 二、Selenium&#xff08;Web自动化、爬虫&#xff09;【官网】【简介】【使用场景】 三、TestNG&#xff08;白盒测试、API自动化、UI自动化&#xff09…

Linux文件系统架构和共享文件方法

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天来聊聊 Linux文件系统架构和共享文件方法。 在Linux环境中使用文件和目录是工作中不可回避的环节。当然&#xff0c;在我的博客里成立windows程序员看linux这个专题&#xff0c;主要还是因为微软也发布了…

LwIP系列(4):ARP协详解

前言 对于应用程序而言&#xff0c;我们与其他设备、服务通信&#xff0c;主要通过域名、IP进行通信&#xff0c;而以太网底层驱动&#xff0c;最终是通过MAC地址来表示设备的唯一标识&#xff0c;即IP是逻辑地址&#xff0c;并不是物理地址。在上一篇文章中&#xff0c;我们也…

【ArcGIS Pro二次开发】(45):手搓一个工具执行进度框

我在之前做的工具中&#xff0c;UI这部分基本没怎么深入&#xff0c;都是直接用的现成的控件。 其中有一个问题比较突出&#xff0c;就是没有工具执行的进度框提示。曾经也用过系统自带的信息提示框和进度条&#xff0c;但太简陋&#xff0c;确实不好用。于是就想抄一个进度框…

Linux 读文件 - readahead预读算法

顺序读场景 intmain{charc[ 4096];intin -1;in open( "news.txt", O_RDONLY);intindex 0;while(read(in, &c, 4096) 4096){printf( "index: %d,len: %ld.\n",index, strlen(c));memset(c, 0, sizeof(c));index;} 数据结构 /** Track a single fi…

CentOS7 静默方式安装 Oracle19C

CentOS7 静默方式安装 Oracle19C 操作系统&#xff1a;CentOS7 Oracle&#xff1a; 19C 安装常用工具和依赖 yum -y install vim tar net-tools wget perl python3 readline* deltarpm python-deltarpm \zip unzip bc compat-libcap1* compat-libcap* binutils compat-libstdc…

最近的感悟与总结

目录 一、判别填鸭、与被填鸭的思考讲解人&#xff1a;听者&#xff1a; 二、最近感悟&#xff1a;三、再来三道数学题吧&#xff1a;四、总结 一、判别填鸭、与被填鸭的思考 讲解人&#xff1a; 1.是否在讲解过程中增加了知识认识的维度&#xff1f;(具体是什么&#xff0c;…