博客
关于我
python制作一个简单的服务器,【Python】 做一个简单的 http 服务器
阅读量:797 次
发布时间:2023-03-07

本文共 1365 字,大约阅读时间需要 4 分钟。

Python HTTP服务器代码示例

本文将介绍如何使用Python编写一个简单的HTTP服务器。该服务器能够接收客户端请求并返回响应,适合用于开发和测试环境。

1. 初始化socket库

首先,我们需要导入socket库,该库用于网络通信。代码如下:

import socket
import datetime

2. 创建socket对象

接下来,创建一个socket对象。默认情况下,socket对象用于数据传输,我们需要将其绑定到特定的IP地址和端口。

s = socket.socket()

3. 绑定IP地址和端口

我们需要指定服务器监听的IP地址和端口。以下代码设置了绑定的IP地址为localhost,端口为80(默认HTTP端口)。

host = "localhost"
port = 80
s.bind((host, port))

4. 设置服务器信息

服务器名称和版本号可以通过设置server_name变量来实现。

server_name = "MyServerDemo/0.1"

5. 设置缓存时间

为了提升性能,我们可以为响应设置缓存时间。以下代码将缓存时间设置为1天。

expires = datetime.timedelta(days=1)

6. 定义响应格式

我们需要确保响应符合HTTP协议规范。以下代码定义了响应格式,包括服务器信息、日期、缓存时间、内容类型和内容长度等。

GMT_FORMAT = '%a, %d %b %Y %H:%M:%S GMT'
content = '''

Coming Soon

'''

7. 启用监听

为了接收客户端连接,我们需要设置监听的最大数量。以下代码设置为5个同时连接。

s.listen(5)

8. 处理客户端请求

在服务器循环中,我们接收客户端连接并处理其请求。

while True:
c, addr = s.accept()
print('Got connection from ', addr)

9. 接收和显示请求信息

接收客户端发送的数据并打印。

data = c.recv(1024)
print(data)

10. 发送HTTP响应

根据HTTP协议规范,构建响应头和内容。以下代码生成一个简单的HTML响应。

now = datetime.datetime.utcnow()
response = '''HTTP/1.1 200 OK
Server: %s
Date: %s
Expires: %s
Content-Type: text/html;charset=utf-8
Content-Length: %s
Connection: keep-alive
%s''' % (server_name, now.strftime(GMT_FORMAT), (now + expires).strftime(GMT_FORMAT), len(content), content)

11. 发送响应并关闭连接

将响应发送给客户端并关闭连接。

c.send(response)
c.close()

以上代码提供了一个基本的HTTP服务器实现,适合用于开发和测试。通过修改内容、增加功能或配置更多选项,可以根据具体需求进行扩展。

转载地址:http://rhofk.baihongyu.com/

你可能感兴趣的文章
python单元测试之unittest
查看>>
Python单元测试unittest实战
查看>>
Python单元测试-模拟VS补丁
查看>>
python协程实时输出_Python 协程以及事件循环的问题,怎么知道 IO 读取结束了呢?...
查看>>
Python十进制&;包提供错误的结果
查看>>
Python化身“安全老中医”:一键搞定工控系统漏洞,从零基础到精通,收藏这篇就够了!
查看>>
Python加速运行技巧
查看>>
python办公自动化基础遍历文件夹
查看>>
python办公自动化基础输出文件和文件夹
查看>>
python办公自动化基础搜索文件
查看>>
python知识:@classmethod和@staticmethod的异同
查看>>
python前端之css
查看>>
Python制作进度条,原来有这么多方法
查看>>
Python制作简单的学生成绩管理系统
查看>>
python制作甘特图的基本知识(附Demo)
查看>>
python制作一个简单的服务器,【Python】 做一个简单的 http 服务器
查看>>
Python到底能做什么?它的优点在哪?
查看>>
python利用pytorch库导出图像分割算子
查看>>
python利用pyshark监听网卡来抓包其中pyshark中摸索的一些可用参数
查看>>
python利用excel分析过杀漏失
查看>>