代理服务器和web服务器有什么区别,各自有什么特点
网站编辑2021-03-23 14:32:41556
代理服务器和web服务器有什么区别,各自有什么特点?代理服务器和web服务器,这些都是在互联网生活中不可或缺的部分,你会了解到它们每个的作用,是怎么工作的,让你更好的理解HTTP通信。
web服务器主要功能就是存储资源,并为接收到的请求提供服务。您可以使用 web 客户端 (又称 web 浏览器) 访问 web 服务器, 并在返回时获取所请求的资源或更改现有的状态。web 服务器也可以被自动访问, 使用网络爬虫, 我们将在文章的后面讨论。
web服务器既有简单易用的软件也有复杂成熟的软件程序。现代 web 服务器能够执行许多不同的任务。web 服务器应该能够执行的基本任务如下:
创建连接-接受或关闭客户端连接
接收请求–读取 http 请求消息
处理请求-解释请求消息并采取行动
访问资源-访问消息中指定的资源
构造响应-创建 http 响应消息
发送响应-将响应发送回客户端
日志事务–在日志文件中写入已完成的事务

我会对web服务器的基本处理流程分解为几个不同的阶段。用这些阶段来呈现了简化的web服务器处理流程。
当 web 客户端想要访问 web 服务器时, 它必须尝试打开一个新的 tcp 连接。在另一端, 服务器尝试提取客户端的 ip 地址。之后, 服务器决定打开或关闭与该客户端的 tcp 连接。
如果服务器接受连接, 它会将其添加到现有连接的列表中, 并监视该连接上的数据。
如果客户端未被授权或被列入黑名单 (恶意), 它也可以关闭连接。
服务器还可以通过使用 "反向 dns" 来确定客户端的主机名。这些信息在记录消息时会有所帮助, 但主机名查找可能需要一段时间, 从而减慢了事务的速度。
分析传入请求时, web 服务器将从消息请求行、头和正文 (如果提供) 分析信息。需要注意的一点是, 连接可以随时暂停, 在这种情况下, 服务器必须暂时存储信息, 直到接收到其余的数据。
高端 web 服务器应该能够打开许多同时连接。这包括来自同一客户端的多个同时连接。典型的 web 页可以从服务器请求许多不同的资源。
由于 web 服务器主要是资源提供者, 因此它们有多种方式来映射和访问资源。
最简单的方法是映射资源, 即使用请求 uri 在 web 服务器的文件系统中查找该文档。通常, 资源包含在服务器上的一个特殊文件夹中, 称为 docroot。例如, windows 服务器上的 docroot 可以位于 F:\WebResources \。如果一个获取请求要访问/图像/codemazeblog 上的文件, 服务器会将其转换为 F:\WebResources\images\codemazeblog.txt, 并在响应消息中返回该文件。当 web 服务器上承载多个网站时, 每个站点都可以有其单独的 docroot。
如果 web 服务器收到对目录的请求而不是文件, 它可以用几种方法解决它。它可以返回错误信息, 返回默认索引文件而不是目录, 或者扫描目录, 并返回 html 文件的内容。
服务器还可以将请求 uri 映射到动态资源, 这是一个生成一些结果的软件应用程序。有一整类服务器称为应用服务器, 其目的是将 web 服务器连接到复杂的软件解决方案, 并提供动态内容。
一旦服务器确定了它需要服务的资源, 它就会形成响应消息。响应消息包含状态代码、响应头和响应正文 (如果需要)。
如果该正文出现在响应中, 则消息通常包含描述正文大小的内容长度标头和描述返回资源的 mime 类型的内容类型标头。
生成响应后, 服务器将选择需要发送响应的客户端。对于非持久连接, 服务器需要在发送整个响应消息时关闭连接。
事务完成后, 服务器将所有事务信息记录到文件中。许多服务器都提供自定义日志记录。
代理服务器 (proxy) 是中间服务器。它们通常在 web 服务器和 web 客户端之间找到。由于其性质, 代理服务器需要表现的既像 web 客户端又像web服务器。
但是, 为什么我们需要代理服务器?为什么我们不直接在 web 客户端和 web 服务器之间进行通讯?是不是更简单和更快?
好吧, 简单的, 也许是, 但更快, 不是真的。
在解释哪些代理服务器被使用之前, 我需要了解反向代理的概念、正向代理和反向代理之间的区别。
正向代理服务器充当从web服务器请求资源的客户端的代理。它通过防火墙筛选请求或隐藏有关客户端的信息来保护客户端。而反向代理采用完全相反的工作方式。它通常放在防火墙后面并保护 web 服务器。所有的客户端都会认为正与真实的web服务器通信, 实际上反向代理背后的网络一无所知。
正向代理

反向代理

压缩–压缩内容会直接增加通信速度。简单的。
监控和过滤-想拒绝小学生进入成人网站?代理是适合您的解决方案。
安全性-代理可以作为整个网络的一个入口点。它们可以检测恶意应用程序并限制应用程序级别协议。
匿名--请求可以由代理修改以获得更大的匿名性。它可以从请求中剥离敏感信息, 只留下重要的内容。虽然向服务器发送较少的信息可能会降低用户体验, 但匿名有时是更重要的因素。
访问控制-非常简单, 您可以集中在单个代理服务器上的许多服务器的访问控制。
缓存-您可以使用代理服务器缓存热点内容, 从而大大降低加载速度。
负载平衡-如果您的服务获得了大量 "峰值通信量", 则可以使用代理在更多计算资源或 web 服务器上分配工作负荷。负载平衡器路由通信, 以避免在峰值发生时重载单个服务器。
代码转换–更改消息正文的内容也可以是代理的功能。
正如您所看到的, 代理可以是非常灵活的。







