Bonjour/Bonsoir,
avant de commencer, je tiens tout d'abord à préciser que ce n'est qu'un projet très jeune. Donc ne réalisez pas de serveur HTTP avec ce logiciel ! Préférez pour l'instant utiliser Apache © qui est bien plus développé que ce programme-ci ! Ce programme est dans un but pédagogique, pour découvrir le fonctionnement d'un serveur HTTP. Merci donc de bien vouloir utiliser ce programme pour tester seulement les capacités, et par la suite, faire des remarques, idées et rapports de bogues ici.
pour m'occuper et ainsi maintenir un projet à long terme, j'ai décidé d'écrire un serveur HTTP. Je l'ai appelé Weigelia. Les capacités/avantages de mon programme (pour l'instant) sont:
. Il faut savoir qu'un serveur HTTP envoie des informations pour que le navigateur et le client communique tout les deux. Il y en a de deux sortes: les entêtes clients (votre navigateur) et les entêtes serveur (les sites que vous consultez):
Exemple d'entête client:
Exemple d'entête serveur:
Si vous êtes perdu, c'est tout à fait normal. Je vais vous expliquer en détail ce qui se passe. Nous allons d'abord commencer avec le client:
Host: localhost:60: Cette ligne permet d'indiquer à quel adresse le navigateur demande des informations. C'est une ligne qui est importante; elle permet d'indiquer au serveur ce que l'utilisateur souhaite afficher.
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0: Cette ligne est aussi importante, elle permet d'indiquer quel navigateur l'utilisateur possède, la version et le nom du système d'exploitation, si le système est en 32-bit ou 64-bit, quel version le navigateur utilise et son nom de code.
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8: Cette ligne permet d'indiquer au serveur ce que le navigateur peut comprendre, décoder.
Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3: Cette ligne indique quels langages le navigateur posède. Utile si vous souhaitez que votre site s'adapte à la langue du navigateur.
Accept-Encoding: gzip, deflate: Cette ligne permet d'indiquer qu'est ce que le navigateur peut aussi retranscrire en plus des encodages standards comme UTF-8 ou ASCII.
Connection: keep-alive: Cette ligne permet d'indiquer au navigateur s'il doit se déconnecter, rester en ligne pour attendre d'autre informations, ou alors d'autres types de connections.
Nous pouvons maintenant expliquer coté serveur:
HTTP/1.0 200 OK: Cette ligne permet de dire au client que le serveur n'a pas d'erreurs, que les informations sont correctes.
Date: Tue, 19 Mar 2017 18:19:30 GMT+1: Cette ligne indique quand les informations ont étés envoyés.
Server: Weigelia/1.0: Cette ligne indique le nom et la version du serveur.
Content-Length: 5: Cette ligne permet de dire au client quel est la taille en bytes des informations (sans compter l'entête, le contenu des informations).
Content-Type: text/plain: Cette ligne permet d'indiquer au client comment il devra l'interpréter. La valeur est exprimé en type MIME.
Connection: Closed: Cette ligne permet d'indiquer au navigateur si il n'y a pas d'autres informations à envoyer après cet entête.
Hello: Cette ligne est en réalité le contenu des informations (fichier texte, page web avec photo, feuilles de style CSS, scripts...)
C'est tout pour les entêtes, je pense que les cerveaux de certains ont chauffés...
Si vous souhaitez regarder les codes sources, j'ai crée une page GitHub ici; mais si vous souhaitez envoyer vos modifications, merci de faire des "pull requests" dans la branche Weigelia/pull-requests-here, merci
. Il faudra aussi penser à mettre tout en anglais, pour que tout le monde puisse comprendre sans à utiliser des traducteurs. Sur ce, je vous souhaite une excellente journée/soirée;
Redall.
avant de commencer, je tiens tout d'abord à préciser que ce n'est qu'un projet très jeune. Donc ne réalisez pas de serveur HTTP avec ce logiciel ! Préférez pour l'instant utiliser Apache © qui est bien plus développé que ce programme-ci ! Ce programme est dans un but pédagogique, pour découvrir le fonctionnement d'un serveur HTTP. Merci donc de bien vouloir utiliser ce programme pour tester seulement les capacités, et par la suite, faire des remarques, idées et rapports de bogues ici.
pour m'occuper et ainsi maintenir un projet à long terme, j'ai décidé d'écrire un serveur HTTP. Je l'ai appelé Weigelia. Les capacités/avantages de mon programme (pour l'instant) sont:
- Configuration qui ressemble à la syntaxe de Apache ©
- Console (affichage du traffic)
- Affichage d'images

Exemple d'entête client:
Code:
Host: localhost:60
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Exemple d'entête serveur:
Code:
HTTP/1.0 200 OK
Date: Tue, 19 Mar 2017 18:19:30 GMT+1
Server: Weigelia/1.0
Content-Length: 5
Content-Type: text/plain
Connection: Closed
Hello
Si vous êtes perdu, c'est tout à fait normal. Je vais vous expliquer en détail ce qui se passe. Nous allons d'abord commencer avec le client:
Host: localhost:60: Cette ligne permet d'indiquer à quel adresse le navigateur demande des informations. C'est une ligne qui est importante; elle permet d'indiquer au serveur ce que l'utilisateur souhaite afficher.
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0: Cette ligne est aussi importante, elle permet d'indiquer quel navigateur l'utilisateur possède, la version et le nom du système d'exploitation, si le système est en 32-bit ou 64-bit, quel version le navigateur utilise et son nom de code.
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8: Cette ligne permet d'indiquer au serveur ce que le navigateur peut comprendre, décoder.
Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3: Cette ligne indique quels langages le navigateur posède. Utile si vous souhaitez que votre site s'adapte à la langue du navigateur.
Accept-Encoding: gzip, deflate: Cette ligne permet d'indiquer qu'est ce que le navigateur peut aussi retranscrire en plus des encodages standards comme UTF-8 ou ASCII.
Connection: keep-alive: Cette ligne permet d'indiquer au navigateur s'il doit se déconnecter, rester en ligne pour attendre d'autre informations, ou alors d'autres types de connections.
Nous pouvons maintenant expliquer coté serveur:
HTTP/1.0 200 OK: Cette ligne permet de dire au client que le serveur n'a pas d'erreurs, que les informations sont correctes.
Date: Tue, 19 Mar 2017 18:19:30 GMT+1: Cette ligne indique quand les informations ont étés envoyés.
Server: Weigelia/1.0: Cette ligne indique le nom et la version du serveur.
Content-Length: 5: Cette ligne permet de dire au client quel est la taille en bytes des informations (sans compter l'entête, le contenu des informations).
Content-Type: text/plain: Cette ligne permet d'indiquer au client comment il devra l'interpréter. La valeur est exprimé en type MIME.
Connection: Closed: Cette ligne permet d'indiquer au navigateur si il n'y a pas d'autres informations à envoyer après cet entête.
Hello: Cette ligne est en réalité le contenu des informations (fichier texte, page web avec photo, feuilles de style CSS, scripts...)
C'est tout pour les entêtes, je pense que les cerveaux de certains ont chauffés...

Si vous souhaitez regarder les codes sources, j'ai crée une page GitHub ici; mais si vous souhaitez envoyer vos modifications, merci de faire des "pull requests" dans la branche Weigelia/pull-requests-here, merci

Redall.
Dernière édition: