[PYTHON] Ein einfacher Mock-Server, der den HTTP-Anforderungsheader einfach in den Hauptteil der Antwort einbettet und zurückgibt.

Ich wollte einen kleinen Mock-Server, der nur den HTTP-Anforderungsheader in die Antwort einbettet und ihn zurückgibt, wenn er den Betrieb von proxy_pass von nginx überprüft.

In Bezug auf einfache HTTP-Server reicht der Einzeiler von Python nur für die statische Dateiverteilung aus.

$ sudo python -m SimpleHTTPServer 80

Dieses Mal wollte ich den HTTP-Anforderungsheader in den Hauptteil der Antwort einbetten und ihn zurückgeben, also schrieb ich ein einfaches Python-Skript. Übrigens ist Python in Python implementiert, da es standardmäßig in vielen Linux-Distributionen enthalten ist und nur mit der Standardbibliothek und ohne zusätzliche abhängige Module ausgeführt werden kann. Python ist übrigens 2.7 Serie.

$ python --version
Python 2.7.12

Erstellen Sie ein solches Skript mit dem Namen "mock_server.py".

mock_server.py


#!/usr/bin/env python

from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler

class RequestHandler(BaseHTTPRequestHandler):

    def do_GET(self):
        self.send_response(200)
        self.send_header("Content-type", "text/plain")
        self.end_headers()
        self.wfile.write('%s %s %s\n' % (self.command, self.path, self.request_version))
        self.wfile.write(self.headers)
        self.finish()
        self.connection.close()

port = 80
server = HTTPServer(('', port), RequestHandler)
server.serve_forever()

Wird über sudo ausgeführt, um Port 80 bequem abhören zu können.

$ sudo python mock_server.py

Versuchen Sie es mit Locken.

$ curl -H "Host: hoge.example.com" -H "X-MOCK-PROXY-PASS: hoge.example.com" http://127.0.0.1/hoge
GET /hoge HTTP/1.1
Host: hoge.example.com
User-Agent: curl/7.47.1
Accept: */*
X-MOCK-PROXY-PASS: hoge.example.com

Wenn Sie nginx, das Sie testen möchten, dazwischen legen und es wie curl => nginx => Mock-Server konfigurieren, können Sie sehen, ob der erwartete HTTP-Header übergeben wird, und wenn Sie den entsprechenden Header für das Debuggen eingeben, welchen Speicherort Ich habe das Gefühl, ich kann leicht testen, ob proxy_pass fertig ist.

Recommended Posts

Ein einfacher Mock-Server, der den HTTP-Anforderungsheader einfach in den Hauptteil der Antwort einbettet und zurückgibt.
Ein Server, der mit Flasche.py und OpenCV die Anzahl der Personen vor der Kamera zurückgibt
Erstellen Sie eine einfache App, die die Fetch-API für Ajax-Anforderungen in Flask enthält, und erklären Sie sie schnell.
Starten Sie einen einfachen WEB-Server, der den Header überprüfen kann
Die Geschichte der Erstellung von Botonyan, das den Inhalt von Google Text & Tabellen als Antwort auf ein bestimmtes Keyword in Slack zurückgibt
Überwachen Sie regelmäßig die HTTP-Antwort des Webservers
Ein einfacher Grund, warum der Rückgabewert von round (2.675,2) in Python 2,67 beträgt (in Wirklichkeit sollte er 2,68 betragen ...)
Ein einfacher Mock-Server, der den HTTP-Anforderungsheader einfach in den Hauptteil der Antwort einbettet und zurückgibt.
Erstellen Sie eine einfache App, die die Fetch-API für Ajax-Anforderungen in Flask enthält, und erklären Sie sie schnell.
Der Hintergrund der Zeichen im Textbild ist überbelichtet, um das Lesen zu erleichtern.
Ein Skript, das so lange sucht, bis die entsprechende URL mit einem Hatena-Lesezeichen versehen ist
[Hinweis] Ein Shell-Skript, das die CPU-Auslastung eines bestimmten Prozesses in einer while-Schleife überprüft.
[Python3] Machen Sie einen Screenshot einer Webseite auf dem Server und schneiden Sie sie weiter zu
Das Ergebnis der Erstellung eines Kartenalbums italienischer Jungvermählten in Python und dessen Weitergabe
#Eine Funktion, die den Zeichencode einer Zeichenfolge zurückgibt
Ein Skript, das den registrierten Server anpingt und eine bestimmte Anzahl von E-Mails mit Google Mail sendet, wenn dies fehlschlägt
So starten Sie einen einfachen WEB-Server, der CGI von PHP und Python ausführen kann
Ein Beispiel für einen Mechanismus, der eine Vorhersage von HTTP aus dem Ergebnis des maschinellen Lernens zurückgibt
Django gibt den Inhalt der Datei als HTTP-Antwort zurück
[Python] Die Rolle des Sterns vor der Variablen. Teilen Sie den Eingabewert und weisen Sie ihn einer Variablen zu
Ein einfacher Grund, warum der Rückgabewert von round (2.675,2) in Python 2,67 beträgt (in Wirklichkeit sollte er 2,68 betragen ...)
Verschrotten Sie den Zeitplan von Hinatazaka 46 und spiegeln Sie ihn in Google Kalender wider
Eine Formel, die einfach das Alter ab dem Geburtsdatum berechnet
Eine Funktion, die die Verarbeitungszeit einer Methode in Python misst
Beachten Sie, dass ich den Algorithmus des maschinell lernenden Naive Bayes-Klassifikators verstehe. Und ich habe es in Python geschrieben.
[Python / Jupyter] Übersetzen Sie den Kommentar des in die Zwischenablage kopierten Programms und fügen Sie ihn in eine neue Zelle ein.
Richten Sie mit Python einen Dummy-SMTP-Server ein und überprüfen Sie den Sendevorgang von Action Mailer