前言
前段时间学习了HTTP的原理,并用Python语言实现了一个简单的HTTP服务器(带有多线程功能的哦);后面突发一想,我能把挂在本地服务器上,每次运行都需要打开虚拟机并运行程序(这样真的很麻烦)。我想起之前阿里云服务器打折的时候,也跟随着小伙伴一起入手了一个最低配的,之前这个服务器只是用来刷票的,现在终于能发挥他的作用了。
准备
1、程序
简单描述:我这个程序是能通过浏览器,访问程序并通过服务器上的资源路径把资源返回给浏览器并呈现出来,下面是这个程序的源码:
实现步骤:
# 编写一个TCP服务端程序
# 获取浏览器发送的http请求报文数据
# 读取固定页面数据,把页面数据组装成HTTP响应报文数据发送给浏览器。
# HTTP响应报文数据发送完成以后,关闭服务于客户端的套接字。
#1.导入模块
import socket
import threading
from urllib import request
import sys
# 注意,这段代码必须在命令行中运行。
# 实现步骤:
#
# 把提供服务的Web服务器抽象成一个类(HTTPWebServer)
# 提供Web服务器的初始化方法,在初始化方法里面创建socket对象
# 提供一个开启Web服务器的方法,让Web服务器处理客户端请求操作。
class WebServer(object):
def __init__(self):
# 2.创建socket对象
tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 设置地址复用
tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)
# 3.绑定端口号
tcp_server_socket.bind(("