Python3 Http Web服务器:虚拟主机
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python3 Http Web服务器:虚拟主机,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1548字,纯文字阅读大概需要3分钟。
内容图文
![Python3 Http Web服务器:虚拟主机](/upload/InfoBanner/zyjiaocheng/763/40472f2399ff454e87abe4dd470668f9.jpg)
我在python3中编写了一个相当简单的http Web服务器. Web服务器需要很简单 – 只能从配置文件等基本读取.我只使用标准库,现在它工作得相当好.
这个项目只有一个要求,我无法自己实现 – 虚拟主机.我需要至少有两个虚拟主机,在配置文件中定义.问题是,我找不到如何在python中实现它们的方法.有没有人有任何指南,文章,也许一些简单的实现如何做到这一点?
我将不胜感激任何帮助.
解决方法:
对于简单的HTTP Web服务器,您可以从WSGI reference implementation开始:
wsgiref is a reference implementation of the WSGI specification that can be used to add WSGI support to a web server or framework. It provides utilities for manipulating WSGI environment variables and response headers, base classes for implementing WSGI servers, a demo HTTP server that serves WSGI applications,…
修改示例服务器以检查HTTP_HOST标头,这是一个简单的应用程序,它根据虚拟主机使用不同的文本进行响应. (扩展示例以使用配置文件留作练习).
import wsgiref
from wsgiref.simple_server import make_server
def my_app(environ,start_response):
from io import StringIO
stdout = StringIO()
host = environ["HTTP_HOST"].split(":")[0]
if host == "127.0.0.1":
print("This is virtual host 1", file=stdout)
elif host == "localhost":
print("This is virtual host 2", file=stdout)
else:
print("Unknown virtual host", file=stdout)
print("Hello world!", file=stdout)
print(file=stdout)
start_response(b"200 OK", [(b'Content-Type',b'text/plain; charset=utf-8')])
return [stdout.getvalue().encode("utf-8")]
def test1():
httpd = make_server('', 8000, my_app)
print("Serving HTTP on port 8000...")
# Respond to requests until process is killed
httpd.serve_forever()
内容总结
以上是互联网集市为您收集整理的Python3 Http Web服务器:虚拟主机全部内容,希望文章能够帮你解决Python3 Http Web服务器:虚拟主机所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。