Comme le dit le titre, je voudrais écrire un serveur HTTP. Ma question est la suivante: comment puis-je faire cela? Je sais que cela semble très général et aussi "haut niveau", mais il y a une méthode à ma folie. Je crois que la réponse à cette question devrait être une langue agnostique linguistique; Signification, peu importe la langue que j'utilise (par exemple, C, C++, Java, etc.) La réponse doit être la même. J'ai une idée générale de la façon dont cela est censé travailler:
Comme je l'ai dit, je crois que c'est le processus, mais je ne suis pas sûr à 100%. Cela me conduit au cœur de ma question. Comment ou où une personne découvre-t-elle ces informations?
Et si je ne voulais pas écrire un serveur HTTP, que si je voulais écrire un serveur FTP, un serveur de discussion, une visionneuse d'images, etc.? Comment une personne trouve-t-elle les étapes/processus exacts nécessaires pour créer un serveur HTTP de travail?
Un collègue m'a parlé de l'en-tête HTML, alors je ne le saurais jamais sans lui. Il a également dit quelque chose à propos de la remise de chaque demande à un nouveau fil. Y a-t-il un gros livre de la façon dont les choses fonctionnent? Existe-t-il un manuel de ce qu'il faut pour être un serveur HTTP?
J'ai essayé Googling "Comment fonctionne un serveur HTTP", mais les seules réponses que je pouvais trouver étaient orientées vers votre Joe moyen et non vers une personne qui souhaite programmer un serveur HTTP.
Vous lisez le RFC 2616 sur http/1.1 , et vous allez pour cela.
C'était en fait un projet de ma 3e année dans l'école d'ingénieur, et c'est à peu près la description du projet.
Vos outils sont:
Choses à considérer pour plus de plaisir:
S'amuser. C'est une chose très cool à regarder.
Ils sont de plus en plus faciles à résoudre en premier et leurs RFC sont beaucoup plus faciles à digérer (bien, le IRC One a des parties impaires, mais le FPP est assez clair).
Bien sûr, certains détails de la mise en œuvre seront fortement dépendants de la langue et de la pile que vous utilisez pour la mettre en œuvre. J'ai approché tout cela en C, mais je suis sûr que cela peut être amusant aussi bien dans d'autres langues (ok, peut-être pas autant de plaisir, mais toujours amusant).
Chacun des protocoles utilisés sur Internet est spécifié dans un ou plusieurs documents publics appelés RFCS. Tous les RFC actuels peuvent être trouvés à http://www.rfc-editor.org/ , qui a également une fonction de recherche décente.
Le protocole HTTP (version 1.1), par exemple, est spécifié dans RFC2616 et le protocole FTP est spécifié dans RFC959 .
Comme la spécification se passe, les RFC sont, à mon avis, très bien lisibles.