Hab gerade festgestellt, das CGIHTTPServer nicht die Variable HTTP_ACCEPT_ENCODING setzt
Weiß jemand wie man den Server so modifizieren kann, das die Variable gesetzt wird?
CGIHTTPServer und os.environ['HTTP_ACCEPT_ENCODING']
Hi,
ich glaub ein Blick auf die Instanz Variabeln von BaseHTTPserver hilft dir weiter.
Du musst nur den requerst Header auswerten, dann kommst du auch an User-Agent..
MfG
andreas
ich glaub ein Blick auf die Instanz Variabeln von BaseHTTPserver hilft dir weiter.
Du musst nur den requerst Header auswerten, dann kommst du auch an User-Agent..
MfG
andreas
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Der HTTP_USER_AGENT ist nicht das Problem... der ist in os.environ vorhanden...
In CGIHTTPServer.py bei def run_cgi() werden alle Möglichen Environ-Einträge gesetzt... Aber "HTTP_ACCEPT_ENCODING" ist nicht dabei... Dort gibt es "self.headers", welches wohl Information des geschickten Headers bereit hält. Die Variable wird in BaseHTTPServer.parse_request() gesetzt:
Außerdem ist in der Funktion parse_request() ein Hinweis zu finden:
In CGIHTTPServer.py bei def run_cgi() werden alle Möglichen Environ-Einträge gesetzt... Aber "HTTP_ACCEPT_ENCODING" ist nicht dabei... Dort gibt es "self.headers", welches wohl Information des geschickten Headers bereit hält. Die Variable wird in BaseHTTPServer.parse_request() gesetzt:
Code: Alles auswählen
# Examine the headers and look for a Connection directive
self.headers = self.MessageClass(self.rfile, 0)
Bringt mich jetzt aber auch nicht so weiter...The request should be stored in self.raw_requestline; the results
are in self.command, self.path, self.request_version and
self.headers.
'HTTP_ACCEPT_ENCODING' ist ein Header, der zu HTTP 1.1 gehört. Der CGIServer spricht nur HTTP 1.0, wahrscheinlich liegt's daran.
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Das könnte es sein... Ob es wohl eine einfache Möglichkeit gibt, diese Environment-Variable nach zu rüsten??? Ich wüßte nicht wie
EDIT: Meine Hack-Lösung besteht nun darin, einfach in dem Skript mit dem der Server gestartet wird, ein os.environ["HTTP_ACCEPT_ENCODING"] = "gzip" zu machen... Somit ist es zwar unabhängig von dem was der Browser wirklich kann, aber welcher Browser kann es eigentlich nicht???
EDIT: Meine Hack-Lösung besteht nun darin, einfach in dem Skript mit dem der Server gestartet wird, ein os.environ["HTTP_ACCEPT_ENCODING"] = "gzip" zu machen... Somit ist es zwar unabhängig von dem was der Browser wirklich kann, aber welcher Browser kann es eigentlich nicht???