【基础】使用http.server模块创建简单HTTP服务器
发布时间: 2024-06-26 03:18:27 阅读量: 7 订阅数: 31
![【基础】使用http.server模块创建简单HTTP服务器](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9pMC5oZHNsYi5jb20vYmZzL2FydGljbGUvOWZjYThhMzJkZjdjYTEyYTk5NGFiNWFjNTdmNzZmNTJlMzdhODQwNy5wbmdAMTMyMHdfNDQwaC53ZWJw?x-oss-process=image/format,png)
# 2.1 http.server模块的安装和使用
**安装**
Python 内置了 `http.server` 模块,因此无需额外安装。
**使用**
要使用 `http.server` 模块,需要执行以下步骤:
1. 导入模块:`import http.server`
2. 创建 `HTTPServer` 对象:`server = http.server.HTTPServer(('localhost', 8000), http.server.SimpleHTTPRequestHandler)`
3. 启动服务器:`server.serve_forever()`
# 2. http.server模块详解
### 2.1 http.server模块的安装和使用
#### 安装
```python
pip install http.server
```
#### 使用
```python
import http.server
import socketserver
# 创建一个HTTP服务器,监听端口8000
server = http.server.HTTPServer(('', 8000), http.server.SimpleHTTPRequestHandler)
# 运行服务器
server.serve_forever()
```
### 2.2 http.server模块的配置选项
`http.server.HTTPServer` 类提供了以下配置选项:
| 选项 | 描述 |
|---|---|
| server_address | 服务器绑定的地址和端口,默认是 `('', 8000)` |
| RequestHandlerClass | 处理请求的类,默认是 `http.server.SimpleHTTPRequestHandler` |
| bind_and_activate | 是否绑定并激活服务器,默认是 `True` |
| allow_reuse_address | 是否允许端口重用,默认是 `False` |
| socket_type | 服务器使用的套接字类型,默认是 `socket.SOCK_STREAM` |
### 2.3 http.server模块的请求处理
`http.server.SimpleHTTPRequestHandler` 类提供了以下方法来处理请求:
| 方法 | 描述 |
|---|---|
| do_GET | 处理GET请求 |
| do_HEAD | 处理HEAD请求 |
| do_POST | 处理POST请求 |
| do_PUT | 处理PUT请求 |
| do_DELETE | 处理DELETE请求 |
| do_OPTIONS | 处理OPTIONS请求 |
| do_TRACE | 处理TRACE请求 |
| do_CONNECT | 处理CONNECT请求 |
#### do_GET 方法
```python
def do_GET(self):
"""处理GET请求。"""
# 获取请求路径
path = self.path
# 如果路径是根目录,则返回服务器信息
if path == '/':
self.send_response(200)
self.send_header('Content-Type', 'text/plain')
self.end_headers()
self.wfile.write(b'Hello, world!')
else:
# 否则,尝试打开文件并返回文件内容
try:
with open(path[1:], 'rb') as f:
self.send_response(200)
self.send_header('Content-Type', 'text/html')
self.end_headers()
self.wfile.write(f.read())
except FileNotFoundError:
# 如果文件不存在,则返回404错误
self.
```
0
0