Python 使用socket手搓HTTP Python小技巧

92次阅读
没有评论

共计 724 个字符,预计需要花费 2 分钟才能阅读完成。

import socket

ip = "0.0.0.0"
port = 80
sock = socket.socket()
sock.bind((ip, port))
sock.listen(128)

while True:
    sendHeader = b"HTTP/1.1 200 OK\r\nContent-Type:text/html;charset=utf-8\r\n\r\n"
    new_cliet, ip_port = sock.accept()
    clientData = new_cliet.recv(1024)

    # 提取请求方式与路径
    requestData = clientData.decode().split('\r\n')
    requestMethod, requestPath, _ = requestData[0].split(' ')


    if requestPath == '/mgxx':
        sendData = "<h1> 大家好我是 MGXX!</h1><a href='/'> 返回 </a>"
    else:
        sendData = "<h1> 首页 </h1><a href='/mgxx'> 点此查看 MGXX</a>"

    if requestPath == '/favicon.ico':
        with open('ico.png','rb') as f:
            icoData = f.read()
        icoSendHeader = b"HTTP/1.1 200 OK\r\nContent-Type:image/x-icon;charset=utf-8\r\n\r\n"

        new_cliet.sendall(icoSendHeader + icoData)
    new_cliet.sendall(sendHeader + sendData.encode())
    new_cliet.close()

正文完
 
GuaiMiu
版权声明:本站原创文章,由 GuaiMiu 2024-03-11发表,共计724字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)