美文网首页笔记本📒
Python静态Web服务器-返回固定页面

Python静态Web服务器-返回固定页面

作者: 涓涓自然卷 | 来源:发表于2021-01-21 15:54 被阅读0次

    开发自己的静态Web服务器-返回固定页面

    • 开发步骤:
      1、编写一个TCP服务端程序。
      2、获取浏览器发送的HTTP请求报文数据。
      3、读取固定页面数据,把页面数据组装成HTTP响应报文数据发给浏览器。
      4、HTTP响应报文数据发送完成以后,关闭服务于客户端的套接字。

    • TCP网络程序开发流程图:

      TCP网络程序开发流程图.png
    • 知识要点:

    1、编写一个TCP服务端程序:

    tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
     # 循环客户端的连接请求
     while True:
       conn_socket, client_addr = tcp_server_socket.accept()
    

    2、获取浏览器发送的http请求报文数据:

    client_request_data = client_socket.recv(4096)
    

    3、读取固定页面数据,把页面数据组装成HTTP相呼应报文数据发送给浏览器:

    response_data = (response_line + response_header + "\r\n").encode() + response_body
    
            conn_socket.send(response_data)
    

    4、HTTP响应报文数据发送完成以后,关闭服务于客户端的套接字。

    client_socket.close()
    
    • 完整代码举个🌰
    import socket
    
    
    if __name__ == '__main__':
        # 1.编写一个TCP服务端程序
        # 创建socket
        tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)
        # 绑定地址
        tcp_server_socket.bind(("", 8080))
        # 设置监听
        tcp_server_socket.listen(128)
    
        # 循环客户端的连接请求
        while True:
            # 2.获取浏览器发送的HTTP请求报文数据
            # 建立链接
            client_socket, client_addr = tcp_server_socket.accept()
            # 获取浏览器的请求信息
            client_request_data = client_socket.recv(1024).decode()
            print(client_request_data)
    
            # 3.读取固定页面数据,把页面数据组装成HTTP响应报文数据发送给浏览器
            with open("./static/index.html", "rb") as f:
                file_data = f.read()
    
            # 应答行
            response_line = "HTTP/1.1 200 OK\r\n"
            # 应答头
            response_header = "Server:pwb\r\n"
            # 应答体
            response_body = file_data
    
            response_data = (response_line + response_header + "\r\n").encode() + response_body
    
            client_socket.send(response_data)
    
            # 4.HTTP响应报文数据发送完成以后,关闭服务于客户端的套接字
            client_socket.close()
    
    
    • 浏览器访问效果:
      浏览器显示效果.png
    • pycharm显示内容:
      pycharm信息.png

    相关文章

      网友评论

        本文标题:Python静态Web服务器-返回固定页面

        本文链接:https://www.haomeiwen.com/subject/ypvrzktx.html