Python 3 实现简单的 Web 服务器

Web服务器
  • 当一个客户(浏览器)联系时创建一个连接套接字;
  • 从这个连接接收HTTP请求;
  • 解释该请求以确定所请求的特定文件;
  • 从服务器的文件系统获得请求的文件;
  • 创建一个由请求的文件组成的HTTP响应报文,报文前面有首部行;
  • 经TCP连接向请求的浏览器发送响应。如果浏览器请求一个在该服务器中不存在的文件,服务器应当返回一个“404 Not Found”差错报文。
代码实现
#import socket module
from socket import *
serverSocket = socket(AF_INET,SOCK_STREAM)
#Prepare a server socket
serverSocket.bind(('',80))
serverSocket.listen(5)
while True:
    print('Ready to server')
    connectionSocket, addr = serverSocket.accept()
    try:
        message = connectionSocket.recv(1024)
        filename = message.split()[1]
        f = open(filename[1:])
        outputdata = f.read()
        #Send one HTTP header line into socket
        header ='\nHTTP/1.1 200 OK\n\n'
        connectionSocket.send(header.encode('utf-8'))
        #Send the content of the requested file to the client
        for i in range(0,len(outputdata)):
            connectionSocket.send(outputdata[i].encode('utf-8'))
        connectionSocket.close()
    except Exception:
        #Send response message for file not found
        header = '\nHTTP/1.1 404 Not Found\n\n'
        connectionSocket.send(header.encode('utf-8'))
        #Close client socket
        connectionSocket.close()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容