php反向代理-一文读懂Web服务器、应用服务器、Web容器和反向代理服务器之间的区别和联系

2023-08-28 0 5,325 百度已收录

我们知道,不同唇色的人外表差异很大,很难识别双胞胎。 有趣的是,Web服务器/Web容器/Web应用服务器/反向代理有点像四对双胞胎,它们经常一起出现在互联网上。 本文将向读者展示如何区分这四个相似的概念。

1. Web服务器概念和基本原理 1.1 Web服务器的历史

1989年,互联网之父伯纳斯·李向他的雇主欧洲核子研究组织(CERN)提出了一个新项目,旨在通过使用超文本系统简化科学家之间的信息交换。 该项目导致 Berners-Lee 在 1990 年编制了两项提案:

一种名为万维网的浏览器。

世界上第一个 Web 服务器(后来称为 CERNhttpd)在 NeXTSTEP 上运行

1991 年至 1994 年间,滑水和通过万维网交换数据的新兴技术的简单性和有效性有助于将其移植到许多不同的操作系统并在科学组织和学院中使用,然后传播到整个行业。

1994 年,Berners-Lee 决定成立万维网联盟 (W3C),通过标准化流程来管理所涉及的许多技术(HTTP、HTML 等)的进一步发展。

这是服务器:

Web服务器的主要功能是存储、处理并向客户端传送网页。 客户端和服务器之间的通信是使用超文本传输​​协议(HTTP)完成的。 交付的页面通常是 HTML 文档,除了文本内容之外,还可能包含图像、样式表和脚本。

用户代理(通常是网络浏览器或网络爬虫)发起HTTP请求以获取服务器资源,服务器根据请求返回资源或由于某种激励而响应错误消息。 该资源通常是服务器辅助存储上的实际文件,但情况不一定如此,具体取决于 Web 服务器的实现。

其实主要功能是提供内容,但是HTTP的完整实现还包括从客户端接收内容的形式。 该功能用于提交Web表单,包括上传文件。

许多通用 Web 服务器还支持使用 ActiveServerPages (ASP)、PHP 或其他脚本语言的服务器端脚本。 这意味着 Web 服务器的行为可以在单独的文件中编写脚本,而实际的服务器软件保持不变。

一般来说,此函数用于动态(“即时”)生成 HTML 文档,而不是返回静态文档。 后者主要用于从数据库中检索或更改信息。 前者通常更快且更容易缓存,但无法提供动态内容。

Web 服务器除了为万维网提供服务外还被使用。 它们还可以嵌入复印机、路由器、网络摄像头等设备中,并且仅服务于本地网络。 然后,网络服务器可以用作监控或管理相关设备的系统的一部分。

这通常意味着客户端计算机上不需要安装任何其他软件,因为所需的只是一个网络浏览器(当今大多数操作系统都包含)。

1.2 Web服务器工作原理

HTTP契约基于TCP契约,是用户代理和Web服务器之间通信的应用层契约。 Web 服务器通常以一问一答的形式工作:

拿出来重点看一下服务器端的工作原理

主流网络服务器

包括Apache、IIS、Nginx,市场份额如下

使用较多的有Tomcat、Jetty、WebSphere、WebLogic、Kerstrel等。

2. Web应用容器的概念和基本原理 2.1 Web应用容器的起源

Web服务器的出现标志着WWW时代的到来,世界变得越来越平坦。 尝到甜头的先行者开始不满足于在互联网上获取静态资源,于是出现了动态获取资源的CGI脚本。

后来互联网的发展方向也朝着提高Web服务器动态获取资源的能力发展。 以下是具有代表性的动态技术:

技术名词 特征

CGI(CommonGatewayInterface,公共网段套接字)

作为独立进程运行,可以用C、C++、VB、Perl等多种语言开发,灵活但效率低下,维护复杂

PHP

服务器端嵌入HTML脚本,开源,功能强大,扩展性差

联合应用程序

服务器端嵌入HTML脚本,跨平台,部署前需要编译。 主要缺点是编译JSP比较复杂,需要熟悉JAVA及相关技术

ASP

服务器端嵌入HTML脚本,开发简单,功能强大,只能在windows下运行

此后,Web服务器向企业级应用发展,快速的业务变化促使Web开发人员面临新的挑战:如何快速勾画出健壮、可靠、满足业务需求的程序并顺利部署?

解决这一挑战的有效途径是创建一个Web程序开发框架(包括解释和执行JSP、WebAPI等运行环境),解决健壮性和可靠性问题,并提供快速开发套接字。

也就是说,开发者只需要专注于业务本身的实现,如果有更高的需求,可以对框架进行定制和扩展。 该框架的另一个名称是 Web 应用程序容器。

2.2 Web应用容器的基本工作原理

通常,Web应用容器是以下组成系统:

注:浅黄色模块是用于实现业务程序的主要模块。

与Web服务器相比,容器增加或增强了以下模块:

可见Web容器本身就具有作为Web服务器的功能。 事实上php反向代理,一般实现Web容器功能的服务器就是Web服务器。 例如,Tomcat、IIS、Jetty。

主流Web容器

包括Tomcat、IIS、Jetty。

使用较多的是WebSphere、WebLogic等。

3、Web应用服务器的概念和基本原理

在Web服务器发展的同一时期,应用服务器已经存在并发展了很长一段时间。 一些公司针对Unix开发了Tuxedo(面向事务的中间件)、TopEnd、Encina等产品,这些产品都源自IMS、CICS等大型机应用管理和监控环境。

这些产品中的大多数都指定“封闭的”特定于产品的通信契约来互连胖客户端(“胖”客户端)和服务器。 20世纪90年代,这种传统的应用服务器产品开始嵌入HTTP通信功能,最初是借助网段来实现的。 不久之后,他们之间的界限开始变得模糊。

与此同时,Web服务器也越来越成熟,能够处理更高的负载,更多的并发,并且拥有更好的功能; 应用服务器开始添加越来越多的基于HTTP的通信功能。 所有这些都导致 Web 服务器和应用程序服务器之间的界限显得更加狭窄。

如今,“应用程序服务器”和“Web 服务器”之间的界限早已变得模糊。 人们也区分这两个术语并将其用作指针。

当有人说“Web服务器”时,你通常会认为它是一个以HTTP为核心、以WebUI为导向的应用程序。 当有人说“应用程序服务器”时,您可能会想到“高负载、企业功能、事务和队列、多通道通信(HTTP 和更多合约)”。 但今天,它基本上是满足这种需求的相同产品。

右图描述了典型 Web 应用服务器的配置:

从上图我们可以看到,Web应用服务器包含了Web容器,同时对外支持业务应用、安全、集成、通信、高可用等功能,大大减少了重复开发和开发的量。确保业务体系。 快速开发和部署,同时它本身也是一个Web服务器。

Web应用服务器可以选择使用各大厂商的WebLogic、WebSphere等重量级产品,也可以使用Tomcat、jetty等Web容器加上第三方框架(spring、hibernate等)构建自己的ApplicationServer;.NETCore平台下,您可以选择IIS、Apache、Nginx和ASP.NETCore来构建。

4. 反向代理的概念和基本原理 4.1 反向代理的基本概念

反向代理是代理服务器的一种。 根据客户端的请求,从前端服务器(如Web服务器)获取资源,然后将这些资源返回给客户端。

与正向代理不同的是php反向代理,正向代理作为媒介将互联网上获取的资源返回给关联的客户端,而反向代理则作为服务器端(如Web服务器)的代理,而不是客户端边。

客户端通过正向代理可以访问很多不同的资源,而反向代理是指很多客户端通过它访问不同前端服务器上的资源,而不知道这样一个前端服务器的存在,并认为所有资源都来自于这个反向代理服务器。

互联网中的请求被发送到反向代理,反向代理将请求转发到外网的服务器。

反向代理的主要功能有:

4.2 反向代理基本工作原理

反向代理服务器的组成和处理过程如右图所示:

一侧浅蓝色功能模块处理外部网络数据包,左侧蓝色功能模块处理外部网络数据包

常用的反向代理服务器

你必须记住它们的名字:Ngnix、IIS、Apache。

五、总结

从概念上讲:Web服务器是提供WWW服务的程序; Web容器是提供给开发者的一个框架; Web应用服务器的内容更加丰富,各个厂家一般都可以遵循一定的行业标准,定制扩展功能。 ,也可以借助开源组件进行组装和构建; 反向代理服务器在企业级应用中表现突出,具有解决集中式安全、负载均衡等优点。

现在这四个概念之间的界限越来越模糊,看看这张表:

软件术语是否是 Web 服务器 Web 容器是 Web 应用程序服务器是反向代理

信息系统

是的

是的

是的

nginx

是的

是的

阿帕奇

是的

是的

雄猫

是的

是的

码头

是的

是的

WebSphere

是的

是的

是的

网络逻辑

是的

是的

是的

克斯特雷尔

是的

是的?

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 php php反向代理-一文读懂Web服务器、应用服务器、Web容器和反向代理服务器之间的区别和联系 https://www.wkzy.net/game/168064.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务