Rédiger une réponse
Leçon 24 sur 47 du cours Réseautage avec le terminal de Coddy.
Vous avez lu suffisamment de réponses. Maintenant, écrivez-en une.
nc -l écoute sur un port, et tout ce que vous envoyez à son entrée est transmis au premier client qui se connecte. Cela fait de vous le serveur, sans aucun serveur web impliqué :
printf 'HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r\nhand written' | nc -l -p 9114 &Regardez ce que c’est : une ligne d’état, un en-tête, une ligne vide, puis le corps. Exactement la structure que vous avez lue, saisie à la main.
Désormais, tout ce qui parle HTTP l’acceptera. Dirigez curl vers le port et il signale un 200 parfaitement ordinaire avec un corps text/plain, car c’est tout ce que fait un serveur web : écrire du texte dans cette structure.
Cette astuce est réellement utile au travail. Lorsque vous devez voir ce que quelque chose vous envoie, placez un nc -l sur son chemin et lisez la requête qu’il effectue.
Défi
ExpertSois le serveur, à la main.
En utilisant nc -l sur le port 9114, servez une réponse dont la ligne d’état est HTTP/1.1 200 OK, avec un en-tête Content-Type: text/plain et un corps contenant exactement hand written. Récupérez-la ensuite avec curl et affichez le corps.
Sortie attendue :
hand writtenUtilisez
printfavec des fins de ligne\r\n, et n’oubliez pas la ligne vide avant le corps.
Essayez vous-même
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Réseautage avec le terminal
1Comment les réseaux communiquent
Qu’est-ce qu’un réseauClients et serveursAdresses IPVotre première requête2Noms et DNS
Pourquoi les noms existentLe fichier hostsRechercher un nomTypes d’enregistrementsRécapitulatif : les noms5HTTP à la main
Anatomie d’une requêteMéthodes de requêteCodes d’étatEn-têtes de réponseRédiger une réponseRécapitulatif : notions de base sur HTTP3Ports et sockets
Qu’est-ce qu’un portPorts bien connusLocalhostÉcoute ou connexionRécapitulatif : les ports6curl en profondeur
Afficher les en-têtesEnregistrer les réponsesEn-têtes personnalisésStatut et duréeCodes de sortie de curlRécapitulatif : options de curl9Authentification et débogage
Clés API et BearerL’agent utilisateurDélais d’attente et nouvelles tentativesLire un échecRécapitulatif : débogageEntraînez-vous par vous-même : Playground Terminal