基于TCP协议的HTTP协议即自制服务器与浏览器之间的连接

自制web服务器来获取浏览器的访问,在电脑上打开任意一个浏览器,并输入该服务器的ip地址和固定端口号,自制服务器会接受到来自浏览器的请求头并产生回应,在浏览器就会访问到固定内容:

代码如下:

import socket

def handle_client(client_soc):
    #获取请求头
    client_msg = client_soc.recv(1024*4)
    print(client_msg)
    
    if not client_msg:
        print('客户端已经关闭链接')
        client_soc.close()
        return

    #读取文件内容
    with open('html/html/index.html','rb') as file:
        file_content = file.read()


    #返回响应数据
    response_line = 'HTTP/1.1 200 OK\r\n'
    response_head = 'server:itcast server 1.0\r\n'
    response = response_line + response_head + '\r\n'
    client_soc.send(response.encode())
    response_body = file_content
    client_soc.send(response_body)


    #关闭客户端套接字
    client_soc.close()
def main():
    '''创建一个能响应浏览器请求的web服务器'''
    #初始化服务器套接字
    server_soc = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    server_soc.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)  # 设置套接字复用地址
    server_soc.bind(('',8050))
    server_soc.listen(128)


    while True:
        #获取客户端链接
        print('正在准备客户端链接...')
        client_soc,client_addr = server_soc.accept()


        #为一个客户端提供服务
        handle_client(client_soc)


    #关闭服务器套接字
    server_soc.close()


if __name__ == '__main__':

    main()

将会看到类似结果:(即供参考)


猜你喜欢

转载自blog.csdn.net/wpb74521wrf/article/details/80402084
今日推荐