[Python] BaseHTTPServer/SimpleHTTPServer
sebsauvage
Messages postés
32893
Date d'inscription
Statut
Modérateur
Dernière intervention
-
sebsauvage Messages postés 32893 Date d'inscription Statut Modérateur Dernière intervention -
sebsauvage Messages postés 32893 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai créé un serveur web Python basé sur SimpleHTTPServer.
Mon problème est qu'il renvoie toujours son identification:
Je ne trouve pas comment le supprimer.
J'ai bien fait un:
mais il renvoie encore le header "Server:" (vide).
Je voudrai le supprimer totalement.
Merci.
J'ai créé un serveur web Python basé sur SimpleHTTPServer.
Mon problème est qu'il renvoie toujours son identification:
Server: SimpleHTTP/0.6 Python/2.5.1
Je ne trouve pas comment le supprimer.
J'ai bien fait un:
self.server_version = "" self.sys_version = ""
mais il renvoie encore le header "Server:" (vide).
Je voudrai le supprimer totalement.
Merci.
A voir également:
- Python -m simplehttpserver
- Citizen code python avis - Accueil - Outils
- Mot secret python pix ✓ - Forum Python
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
- Python par la pratique : 101 exercices corrigés pdf - Forum Python
- Exercice python - Forum Python
2 réponses
Salut Seb,
En regardant dans les sources du module BaseHTTPServer.py, j'ai trouvé ça:
Comme tu peux le voir, l'envoi du champs Server est inconditionnel...sans appel :-(
Je serais toi, je ferais une classe qui hérite de BaseHTTPRequestHandler, qui surcharge la méthode send_header pour filtrer
le champs Server.
Valà...
En regardant dans les sources du module BaseHTTPServer.py, j'ai trouvé ça:
def send_response(self, code, message=None): """Send the response header and log the response code. Also send two standard headers with the server software version and the current date. """ self.log_request(code) if message is None: if code in self.responses: message = self.responses[code][0] else: message = '' if self.request_version != 'HTTP/0.9': self.wfile.write("%s %d %s\r\n" % (self.protocol_version, code, message)) # print (self.protocol_version, code, message) self.send_header('Server', self.version_string()) self.send_header('Date', self.date_time_string()) def send_header(self, keyword, value): """Send a MIME header.""" if self.request_version != 'HTTP/0.9': self.wfile.write("%s: %s\r\n" % (keyword, value)) if keyword.lower() == 'connection': if value.lower() == 'close': self.close_connection = 1 elif value.lower() == 'keep-alive': self.close_connection = 0
Comme tu peux le voir, l'envoi du champs Server est inconditionnel...sans appel :-(
Je serais toi, je ferais une classe qui hérite de BaseHTTPRequestHandler, qui surcharge la méthode send_header pour filtrer
le champs Server.
Valà...