Die Erkennung der http-request-Typ (GET, HEAD, etc) aus einem python-cgi
Wie finde ich den http-request meinem python cgi empfangen? Ich brauche verschiedene Verhaltensweisen für KOPF und BEKOMMEN.
Dank!
- Warum bist du nicht mit mod_wsgi?
- Weil ich nicht weiß was es ist. O:-)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist keine direkte Antwort auf deine Frage. Aber deine Frage ergibt sich aus Dinge zu tun, der falsche Weg.
Nicht schreiben, Python-CGI-Skripte.
Schreiben Sie eine mod_wsgi Anwendung. Noch besser, verwenden Sie ein Python-web-framework. Es gibt Dutzende. Wählen Sie eine wie Werkzeug.
Den WSGI-standard (beschrieben in PEP 333) macht es viel, viel einfacher ist Dinge zu finden, die in der web-Anfrage.
Den mod_wsgi Umsetzung ist schneller und sicherer als ein CGI.
Einem web-framework ist auch einfacher als schreiben Sie Ihre eigenen CGI-Skript oder mod_wsgi Anwendung.
Warum müssen Sie unterscheiden zwischen GET-und HEAD?
Sollten Sie normalerweise nicht unterscheiden und behandeln sollten, einen HEAD-request wie eine GET. Dies ist, da ein HEAD-request gemeint ist die Rückkehr der exakt gleichen Header wie ein GET auf. Der einzige Unterschied ist, es wird keine Antwort von Inhalten. Nur weil es keine Antwort von Inhalten, obwohl bedeutet nicht, dass Sie nicht mehr zurückkehren müssen einen gültigen Content-Length-header, oder andere Header, die je nach Inhalt der Antwort enthalten sind.
In mod_wsgi, die verschiedene Menschen zeigen Sie an, es wird tatsächlich absichtlich ändern Sie den request-Methode aus dem KOPF zu BEKOMMEN in bestimmten Fällen zum Schutz vor Leuten, die falsch behandeln KOPF anders. Der spezielle Fall, wo dies erfolgt ist, wo ein Apache-output-filter registriert ist. Der Grund dafür, dass es getan wird, in diesem Fall ist, da die Ausgabe filtern kann erwarten, um zu sehen, den Inhalt und daraus generieren Sie zusätzliche Antwort-Header. Wenn Sie sich entscheiden, nicht zu stören, Sie zu generieren, keine Antwort Inhalte für einen HEAD-request ab, Sie werden berauben, die Ausgabe-filter der content und der Header, die Sie hinzufügen, kann dann nicht Stimmen mit dem, was sein würde, kehrte von einer GET-Anfrage. Das Ergebnis dieser ist, dass man Sachen caches und die Bedienung des Browsers.
Das gleiche kann gelten gleichermaßen für CGI-Skripte hinter den Apache als output-Filter können weiterhin Hinzugefügt werden, in diesem Fall als gut. Für CGI-Skripte gibt es nichts in Ort, wenn zum Schutz gegen die Nutzer dumm und tun Dinge anders für einen HEAD-request.