BaseHTTPServer 和 SimpleHTTPServer 有啥区别?何时何地使用它们?

Posted

技术标签:

【中文标题】BaseHTTPServer 和 SimpleHTTPServer 有啥区别?何时何地使用它们?【英文标题】:What is the difference between BaseHTTPServer and SimpleHTTPServer? When and where to use them?BaseHTTPServer 和 SimpleHTTPServer 有什么区别?何时何地使用它们? 【发布时间】:2010-12-12 05:10:37 【问题描述】:

BaseHTTPServerSimpleHTTPServer 有什么区别? 我应该在何时何地使用这些?

【问题讨论】:

【参考方案1】:

BaseHTTPServer 是一个 HTTP 服务器库。它理解 HTTP 协议并让您的代码处理请求。它本身没有任何“逻辑”。 SimpleHTTPServer 建立在 BaseHTTPServer 之上,并以与普通 HTTP 服务器类似的方式处理请求,即从文件系统提供文件。在大多数情况下,您只需要 BaseHTTPServer,作为实现 Web 应用程序开发服务器的基础。

如果您对开发 Web 应用程序而不是编写 HTTP 服务器感兴趣,您可能正在寻找WSGI 接口。它允许您在不依赖特定服务器的情况下编写 Web 应用程序。还有多个框架可以简化流程。

【讨论】:

补充一点,SimpleHTTPServer 也很方便。只需启动 $python -m SimpleHTTPServer,您就可以使用 HTTP 提供文件! 我正在为我的应用程序创建一个简单的 Web gui,我不想使用扭曲等框架。是否可以将 wsgi 与内置的 http 服务器一起使用? wsgi.simple_server 中有基于BaseHTTPServer 的WSGI 服务器。但是 WSGI 的优点是你可以使用任何你想要的 WSGI 服务器。例如,您可以使用来自 CherryPy 甚至 Twisted 的 WSGI 服务器,而无需编写 CherryPy 或 Twisted 特定代码。

以上是关于BaseHTTPServer 和 SimpleHTTPServer 有啥区别?何时何地使用它们?的主要内容,如果未能解决你的问题,请参考以下文章

Python 标准库 BaseHTTPServer 中文翻译

Python BaseHTTPServer 通过 curl 发送保存文件

python SimpleHTTPServer源码学习

Java 等价于 PHP Simple HTML DOM Parser

通过 HTTP 发送和接收简单的 JSON 消息

SocketServer 的 ThreadingMixIn 和 ForkingMixIn 是不是有任何池?