什么是代理服务器,代理服务器有什么作用!
我们知道不同肤色的人看起来非常不同,双胞胎可能很难识别。有趣的是,Web 服务器/Web 容器/Web 应用程序服务器/反向代理有点像四胞胎,经常一起出现在 Web 上。本文将带领读者了解如何区分这四个相似的概念。
一、Web服务器的概念及基本原理1.1 Web服务器的历史
1989 年,互联网之父李向他的雇主 CERN 提出了一个新项目,以通过使用超文本系统来简化科学家之间的信息交流。该项目导致 -Lee 在 1990 年编写了两个方案:
一个名为 .
的浏览器
世界上第一个网络服务器,后来被称为 CERN httpd,运行在
1991 年至 1994 年间通过万维网浏览和交换数据的早期技术的简单性和有效性帮助将其移植到许多不同的操作系统并在科学组织和大学中使用,然后传播到行业。
1994 年,-Lee 决定成立万维网联盟 (W3C),以通过标准化流程管理所涉及的许多技术(HTTP、HTML 等)的进一步发展。
这是服务器:
Web 服务器的主要功能是存储、处理和交付网页给客户端。客户端和服务器之间的通信使用超文本传输协议 (HTTP) 进行。交付的页面最常见的是 HTML 文档,除了文本内容之外,还可能包含图像、样式表和脚本。
用户代理,通常是网络浏览器或网络爬虫,发出HTTP请求以获取服务器资源,服务器根据请求返回资源或由于某种原因返回错误消息。此资源通常是服务器二级存储上的真实文件,但不一定是这种情况,具体取决于 Web 服务器的实现方式。
虽然主要功能是提供内容,但 HTTP 的完整实现还包括从客户端接收内容的方法。该功能用于提交网页表单,包括上传文件。
许多通用 Web 服务器还支持使用 Pages (ASP)、PHP 或其他脚本语言的服务器端脚本。这意味着 Web 服务器的行为可以在单独的文件中编写脚本,而实际的服务器软件保持不变。
通常,此函数用于动态生成 HTML 文档(“on-the-fly”),而不是返回静态文档。前者主要用于从数据库中检索或修改信息。后者通常更快更容易缓存,但不能提供动态内容。
Web 服务器不仅仅用于为万维网提供服务。它们还可以嵌入到打印机、路由器、网络摄像头等设备中,并且仅服务于本地网络。然后可以将 Web 服务器用作系统的一部分,用于监控或管理相关设备。
这通常意味着不需要在客户端计算机上安装额外的软件,因为只需要一个网络浏览器(目前大多数操作系统都包含该浏览器)。
1.2 Web 服务器的工作原理
HTTP 协议基于 TCP 协议,是一种应用层协议,用于用户代理和 Web 服务器之间的通信。 Web 服务器通常以问答形式工作:
接下来我们重点讲一下服务器端的工作原理
主流网络服务器
包括,IIS、Nginx,市场占有率如下
还有更多的用途,码头,,,,等等
二、Web应用容器的概念及基本原理2.1 Web应用容器的由来
Web 服务器的出现标志着 WWW 时代的开始,世界变得更加平坦。刚开始尝到甜头的开拓者不满足于在网上获取静态资源,于是出现了CGI脚本动态获取资源。
以后网络的发展方向是增强Web服务器动态获取资源的能力。以下是具有代表性的动态技术:
专业术语的特点
CGI ( , 通用网关接口)
作为一个独立的进程运行,可以用C、C++、VB、Perl等多种语言开发,灵活但效率低,维护复杂
PHP
在服务器端嵌入HTML脚本,开源,功能强大,扩展性差
JSP
服务端嵌入HTML脚本,跨平台,部署前需要编译。主要缺点是JSP编写比较复杂,需要熟悉JAVA及相关技术
ASP
HTML脚本嵌入服务器端,开发简单,功能强大,只能在以下条件下运行
那么Web服务器向企业级应用发展,快速的业务变化迫使Web开发者面临新的挑战:如何快速编写健壮、可靠、业务兼容的程序并顺利部署?
解决这一挑战的一个有效方法是创建一个Web程序开发框架(包括一个运行环境,例如解释和执行JSP、Web API),它解决了健壮性和可靠性的问题,并提供了一个快速的开发接口。
也就是说,开发者只需要专注于实现业务本身,如果有更高的要求,可以自定义和扩展框架。此框架的另一个名称是 Web 应用程序容器。
2.2 Web 应用程序容器如何工作的基础知识
一般来说,一个Web应用容器由以下几个系统组成:
注意:浅蓝色模块是用于实现业务程序的主要模块。
相比web服务器,容器增加或增强了以下模块:
可见,web容器本身就具备了作为web服务器的功能。实际上,实现 web 容器功能的服务器通常是 web 服务器。例如 IIS、Jetty。
主流网络容器
包括,IIS,码头。
还有更多用途,等等。
三、Web应用服务器的概念及基本原理
应用服务器在Web服务器发展的同一时期已经存在和发展了很长时间。一些公司开发了Unix(面向事务的中间件)等产品,这些产品来源于IMS和CICS等主机应用管理和监控环境。
这些产品中的大多数都指定了“封闭式”产品特定的通信协议来互连胖客户端(“胖”)和服务器。 1990 年代,这些传统的应用服务器产品开始嵌入 HTTP 通信功能,最初是使用网关实现的。没过多久,他们之间的界限就开始模糊了。
与此同时,Web 服务器变得更加成熟,能够处理更高的负载、更高的并发性和更好的功能;应用服务器开始添加越来越多的基于 HTTP 的通信功能。所有这些都导致 Web 服务器和应用程序服务器之间的界限越来越窄。
目前,“应用程序服务器”和“Web 服务器”之间的界限已经变得模糊。但人们也会区分这两个术语并使用它们来强调。
当有人说“Web 服务器”时,您通常认为它是一个以 HTTP 为中心、面向 Web UI 的应用程序。当有人说“应用服务器”时,你可能会想到“高负载、企业特性、事务和队列、多通道通信(HTTP 和更多协议)”。但现在满足这些需求的基本上是同一款产品。
下图描述了一个典型的Web应用服务器的结构:
从上图可以看出,Web应用服务器包含一个Web容器,并内置了事务、安全、集成、通信、高可用等功能来支持企业应用,大大减少了重复开发量,保证业务系统快速开发部署,本身也是一个web服务器。
web应用服务器可以选择使用大厂的重量级产品和这类重量级产品,也可以使用web之类的and、jetty加第三方框架(等)来构建自己的; .NET Core 平台下可以选择 IIS、.、Nginx 和 ASP.NET Core 构建。
四、反向代理的概念及基本原理4.1反向代理的基本概念
反向代理是一种代理服务器。它根据客户端的请求从后端服务器(如Web服务器)获取资源,然后将这些资源返回给客户端。
与正向代理不同,正向代理用作将从 获得的资源返回给关联客户端的媒介,反向代理在服务器端(例如 Web 服务器)用作代理,而不是客户端。
客户端可以通过正向代理访问很多不同的资源,而反向代理是很多客户端通过它访问不同后端服务器上的资源,而不需要知道这些后端服务器的存在,而是认为所有资源都来自这个反向代理服务器。
上的请求被发送到反向代理,该反向代理将请求转发到 上的服务器。反向代理的主要功能是:
4.2 反向代理的基本工作原理
反向代理服务器的组成及处理过程如下:
左侧浅黄色功能模块处理外网包,右侧灰色功能模块处理内网包
常用的反向代理服务器
你必须记住他们的名字:Ngnix,IIS,。
五、总结
从概念上讲:Web 服务器是提供 WWW 服务的程序; Web 容器是提供给开发人员的框架; Web应用服务器的内容要丰富得多,这两家厂商通常都遵循一定的行业标准并定制扩展,也可以通过开源组件的轻量级组装来构建;反向代理服务器在企业级应用中性能突出,具有解决集中安全、负载均衡等优势。
如今,这四个概念的界限越来越模糊,看看这张表就知道了:
关于是否做web容器有两种意见:
因为它不提供编写应用程序的框架,所以它不是容器; core 是一个容器,因为它提供了一个用于开发应用程序的框架和一个用于 Web 应用程序(MVC、Web API)的运行环境。
提供运行时环境。
非常欢迎大家提出自己的强项,帮助我们理清这个核心容器概念。
参考资料
【1】
【2】
【3】%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86
郑重声明:本文版权归原作者所有,转载文章仅出于传播更多信息之目的。如果作者信息标注有误,请尽快联系我们修改或删除,谢谢。