python之http请求响应综合

"""
    实现内容:
        1.获取来自浏览器的请求
        2.如果请求的内容是/ 则将网页反馈过去,
        3.其他内容则反馈404
"""
import socket


def response(val):
    buffer_byte = val.recv(1024)
    print(buffer_byte.decode())
    # 如果请求为空就退出
    if not buffer_byte:
        return
    # 获取请求行的第一行
    buffer = buffer_byte.decode().split('\n')[0]
    # 获取请求内容"/"
    info = buffer.split(' ')[1]
    print("info", info)
    if info == "/":
        with open('index', encoding='utf-8') as f:
            data = "HTTP/1.1 200 OK\r\n"
            data += "Content-Type:text/html\r\n"
            data += "\r\n"
            data += f.read()
    else:
        data = "HTTP/1.1 404 Not Found\r\n"
        data += "Content-Type:text/html\r\n"
        data += "\r\n"
        data += "<h>Sorry..</h>"
    # 将信息发送给浏览器
    val.send(data.encode())


soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
soc.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
soc.bind(('127.0.0.1', 9090))
soc.listen(5)
while True:
    client, caddr = soc.accept()
    print("connect ip ", caddr)
    response(client)


版权声明:本文为qq_43513797原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。