[Python] BaseHTTPServer/SimpleHTTPServer
sebsauvage
Messages postés
33415
Statut
Modérateur
-
sebsauvage Messages postés 33415 Statut Modérateur -
sebsauvage Messages postés 33415 Statut Modérateur -
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 - Accueil - Outils
- Citizen code python solution - 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
- [PyCharm] Pas d'interpréteur 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à...