Python Network Programming 简明教程

Python - Web Servers

Python 足够灵活,可以创建许多类型的应用程序和程序,这些程序可以驱动互联网或其他计算机网络。互联网的一个重要方面是位于客户端服务器模型根目录中的 Web 服务器。在本章中,我们将看到几个使用纯 Python 语言创建的 Web 服务器。

Gunicorn

Gunicorn 是一款独立的 Web 服务器,其中心主进程负责管理不同类型的已启动工作进程。然后,这些工作进程直接处理和解决请求。所有这些都可以配置和调整以满足生产场景的多样化需求。

Important Features

  1. 它支持 WSGI,可以与任何运行 Python 应用程序和框架的 WSGI 配合使用

  2. 它还可以用作 Paster(例如:Pyramid)、Django 的开发服务器、web2py 等的直接替代方案

  3. 提供各种工作器类型/配置和自动工作器进程管理

  4. 通过同步和异步工作者支持 HTTP/1.0 和 HTTP/1.1(Keep-Alive)

  5. Comes with SSL support

  6. Extensible with hooks

CherryPy WSGI Server

CherryPy 是一种自包含 Web 框架,因为它可以自己运行,无需其他软件。它有自己的 WSGI、HTTP/1.1 合规的 Web 服务器。因为它是一个 WSGI 服务器,所以它可以用来服务任何其他 WSGI Python 应用程序,而不必绑定到 CherryPy 的应用程序开发框架。

Important Features

  1. 它可以运行任何运行在 WSGI 上的 Python Web 应用程序。

  2. 它可以处理静态文件,还可以用于仅提供文件和文件夹。

  3. It is thread-pooled.

  4. 它带有对 SSL 的支持。

  5. 它是一种易于适应、易于使用的纯 Python 替代方法,具有强大性和可靠性。

Twisted Web

这是一个带有 Twisted 网络库的 Web 服务器。Twisted 本身是“一个事件驱动的网络引擎”,而 Twisted Web 服务器运行在 WSGI 上,并且能够为其他 Python Web 应用程序供电。

Important Features

  1. 它运行 WSGI Python 应用程序

  2. 它可以充当 Python Web 服务器框架,允许您使用该语言对其进行编程以满足定制的 HTTP 服务目的

  3. 它通过在 HTTP 请求执行时执行的 Python 脚本(.rpy)提供了简单快速的原型制作能力

  4. 它具有代理和反向代理功能

  5. It supports Virtual Hosts

  6. • 它甚至可以提供 Perl、PHP 等服务