[PYTHON] Un simple serveur simulé qui incorpore simplement l'en-tête de la requête HTTP dans le corps de la réponse et le renvoie.

Je voulais un petit serveur simulé qui intègre simplement l'en-tête de la requête HTTP dans la réponse et le renvoie lors de la vérification du fonctionnement de proxy_pass de nginx.

En parlant de serveurs HTTP simples, le one-liner de python suffit pour la distribution de fichiers statiques,

$ sudo python -m SimpleHTTPServer 80

Cette fois, je voulais intégrer l'en-tête de la requête HTTP dans le corps de la réponse et le renvoyer, j'ai donc écrit un simple script python. À propos, python est implémenté en python car il est inclus dans de nombreuses distributions Linux par défaut et peut être fait avec uniquement la bibliothèque standard et aucun module dépendant supplémentaire. À propos, python est une série 2.7.

$ python --version
Python 2.7.12

Créez un script comme celui-ci avec le nom 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()

Exécutez via sudo pour la commodité d'écouter le port 80.

$ sudo python mock_server.py

Essayez curl.

$ 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

Si vous mettez nginx que vous souhaitez tester entre les deux et que vous le configurez comme curl => nginx => serveur simulé, vous pouvez voir si l'en-tête HTTP attendu est passé et si vous remplissez l'en-tête approprié pour le débogage, quel emplacement J'ai l'impression de pouvoir facilement tester si proxy_pass en a terminé avec.

Recommended Posts

Un simple serveur simulé qui incorpore simplement l'en-tête de la requête HTTP dans le corps de la réponse et le renvoie.
Un serveur qui renvoie le nombre de personnes devant la caméra avec bottle.py et OpenCV
Créez une application simple qui intègre l'API Fetch pour les requêtes Ajax dans Flask et expliquez-la rapidement.
Lancez un serveur WEB simple qui peut vérifier l'en-tête
L'histoire de la création de Botonyan qui renvoie le contenu de Google Docs en réponse à un mot-clé spécifique sur Slack
Surveillez régulièrement la réponse HTTP du serveur Web
Une raison simple pour laquelle la valeur de retour de round (2.675,2) est de 2,67 en python (elle devrait être de 2,68 en réalité ...)
Un simple serveur simulé qui incorpore simplement l'en-tête de la requête HTTP dans le corps de la réponse et le renvoie.
Créez une application simple qui intègre l'API Fetch pour les requêtes Ajax dans Flask et expliquez-la rapidement.
L'arrière-plan des caractères de l'image texte est surexposé pour faciliter la lecture.
Un script qui poursuit sa recherche jusqu'à ce que l'URL correspondante soit mise en signet avec Hatena Bookmark
[Note] Un script shell qui vérifie l'utilisation du processeur d'un processus spécifique dans une boucle while.
[Python3] Prenez une capture d'écran d'une page Web sur le serveur et recadrez-la davantage
Le résultat de la création d'un album de cartes de jeunes mariés italiens en Python et de son partage
#Une fonction qui renvoie le code de caractère d'une chaîne de caractères
Un script qui envoie un ping au serveur enregistré et envoie un e-mail avec Gmail un certain nombre de fois en cas d'échec
Comment démarrer un serveur WEB simple qui peut exécuter des cgi de php et python
Un exemple de mécanisme qui renvoie une prédiction par HTTP à partir du résultat de l'apprentissage automatique
Django renvoie le contenu du fichier sous forme de réponse HTTP
[Python] Le rôle de l'astérisque devant la variable. Divisez la valeur d'entrée et affectez-la à une variable
Une raison simple pour laquelle la valeur de retour de round (2.675,2) est de 2,67 en python (elle devrait être de 2,68 en réalité ...)
Racler le calendrier de Hinatazaka 46 et le refléter dans Google Agenda
Une formule qui calcule simplement l'âge à partir de la date de naissance
Une fonction qui mesure le temps de traitement d'une méthode en python
Notez que je comprends l'algorithme du classificateur Naive Bayes. Et je l'ai écrit en Python.
[Python / Jupyter] Traduisez le commentaire du programme copié dans le presse-papiers et insérez-le dans une nouvelle cellule.
Configurer un serveur SMTP factice avec Python et vérifier le fonctionnement de l'envoi depuis Action Mailer