favicon.ico HTTP请求

时间:2020-04-17 17:43:06

标签: python http web webserver

我想编写一个简单的HTTP服务器,所以我从这里开始:

import socket

def create_message (html_txt) :
    message = 'HTTP/1.1\nContent-Type: text/html\n\n' + html_txt
    return message.encode()

class http_server :
    def __init__ (self) :
        self.routes = {}

    def add_routes (self, route, message) :
        self.routes[route] = message

    def run(self) :
        serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        serversocket.bind(("localhost", 12345))
        while 1 :
            serversocket.listen(1)
            (clientsocket, address) = serversocket.accept()
            print("HTTP Request receive")
            message = clientsocket.recv(1024).decode()
            key = message.split()[1]
            print('Message :', message)
            print('The key is :', key)
            if key in self.routes.keys() :
                sent = clientsocket.send(create_message(self.routes[key]))
                print("HTTP Response send")

使用此测试程序:

import http_server

server = http_server.http_server()
server.add_routes('/', "<!DOCTYPE html>\n<html>\n<body>\n<b>Hello World</b>\n</body>\n</html>")
server.add_routes('/toto', "<!DOCTYPE html>\n<html>\n<body>\n<b>Hello Toto</b>\n</body>\n</html>")
server.run()

但是当我想要/或/ toto路径时,有时会收到/favicon.ico请求,而我没有将其放入HTML消息中

如何响应(或删除)此请求?

0 个答案:

没有答案
相关问题