产业气象站|一文看懂web服务器、应用服务器、反向代理服务器区别与联系

地址:
cnblogs.com/vipyoumay/p/7455431.html
我们知道 , 不同肤色的人外貌差别很大 , 而双胞胎的辨识很难 。 有意思的是Web服务器/Web容器/Web应用程序服务器/反向代理有点像四胞胎 , 在网络上经常一起出现 。 本文将带读者对这四个相似概念如何区分 。
Web服务器概念与基本原理
Web服务器的历史
1989年 , 互联网之父Berners-Lee向其雇主CERN提出了一个新项目 , 目的是通过使用超文本系统来缓解科学家之间的信息交流 。
该项目导致Berners-Lee在1990年编写了两个方案:
一个名为WorldWideWeb的浏览器 。 世界上第一个网络服务器 , 后来被称为CERNhttpd , 它运行在NeXTSTEP上在1991年至1994年期间 , 用于通过万维网冲浪和交换数据的早期技术的简单性和有效性有助于将其移植到许多不同的操作系统 , 并将其用于科学组织和大学 , 然后传播到行业 。1994年 , Berners-Lee决定组建万维网联盟(W3C) , 通过标准化过程来管理涉及的许多技术(HTTP , HTML等)的进一步发展 。
就是这台服务器:
产业气象站|一文看懂web服务器、应用服务器、反向代理服务器区别与联系
文章图片
Web服务器的主要功能是存储 , 处理和传递网页给客户 。 客户端和服务器之间的通信使用超文本传输协议(HTTP)进行 。
交付的页面最常见的是HTML文档 , 除了文本内容之外 , 还可能包含图像 , 样式表和脚本 。
一个用户代理 , 通常是Web浏览器或Web爬虫 , 通过发起一个HTTP请求以获取服务器资源 , 服务器根据请求返回该资源或由于某种原因响应错误消息 。
该资源通常是服务器辅助存储上的真实文件 , 但这不一定是这种情况 , 取决于Web服务器的实现方式 。
产业气象站|一文看懂web服务器、应用服务器、反向代理服务器区别与联系
文章图片
虽然主要功能是提供内容 , 但HTTP的完整实现还包括从客户端接收内容的方式 。 此功能用于提交Web表单 , 包括上传文件 。
许多通用Web服务器还支持使用ActiveServerPages(ASP) , PHP或其他脚本语言的服务器端脚本 。
这意味着Web服务器的行为可以在单独的文件中脚本化 , 而实际的服务器软件保持不变 。
通常 , 此函数用于动态生成HTML文档(“即时”) , 而不是返回静态文档 。 前者主要用于从数据库检索或修改信息;后者通常快得多 , 并且更容易被缓存 , 但不能提供动态内容 。
Web服务器不仅用于为万维网服务 。 它们也可以被嵌入到诸如打印机 , 路由器 , 网络摄像机等设备中 , 并且仅服务于本地网络 。
然后 , Web服务器可以用于监视或管理所讨论的设备的系统的一部分 。
这通常意味着客户端计算机上不需要安装其他软件 , 因为只需要一个网络浏览器(现在大多数操作系统都包含在内) 。
Web服务器工作原理
HTTP协议基于TCP协议上 , 是一个应用层协议 , 用于用户代理和Web服务器进行通信 。
Web服务器通常采用一问一答的方式进行工作:
在用户代理上用户发起资源请求 , 请求内容包括但不限于:指定资源的唯一标识URI , 指明动作类型(GET/POST/DELETE/PUT…)用户代理解析用户输入URI并从中获取目标域名 , 交由DNS服务器解析 。 如果URI中指定某IP地址 , 就无需这步 。 如果与服务器的会话还没建立 , 此时先建立TCP连接 , 并完成HTTP协商(确定双方均可接受的处理方式 , 包括协议版本 , 是否加密 , 内容格式等等) 。 用户代理把请求内容封装成HTTP数据包向服务器发送 。 服务器接收到资源请求并以之前协商好的方式解包并处理 。 服务器请求的资源封装成HTTP数据包并返回给用户代理 。接下来重点说说服务器端的工作原理 , 如下图:
产业气象站|一文看懂web服务器、应用服务器、反向代理服务器区别与联系