====== Le Fonctionnement d'Internet ====== > Vous utilisez incontestablement Internet au quotidien. Cependant, avez-vous une compréhension approfondie de ce qui se déroule réellement lorsque vous saisissez une adresse, telle que [[https://djangogirls.org|https://djangogirls.org]], dans votre navigateur et appuyez sur la touche "Entrée" ? Il est impératif de commencer par la réalisation que tout site web consiste en une multitude de fichiers sauvegardés sur un disque dur, similaires à vos fichiers multimédias tels que les films, la musique ou les photos. Cependant, ce qui distingue les sites web est qu'ils intègrent du code informatique appelé HTML. La compréhension de HTML peut s'avérer complexe, en particulier si vous n'êtes pas familiarisé avec la programmation. Toutefois, les navigateurs web tels que Chrome, Safari, Firefox, etc., sont spécialement conçus pour interpréter ce code. Ils suivent les instructions qu'il renferme afin de présenter les fichiers du site web exactement comme vous l'avez conçu. Tout comme tout autre fichier, les fichiers HTML doivent être stockés sur un disque dur, en l'occurrence, sur des ordinateurs puissants spéciaux appelés "serveurs". Ces serveurs ne possèdent ni écran, ni clavier, ni souris, car leur fonction principale est de stocker et de servir des données. C'est pour cette raison qu'ils portent le nom de "serveurs", car ils sont là pour vous "servir" des données. Cependant, il est légitime de se demander à quoi ressemble réellement Internet, n'est-ce pas ? Nous avons préparé une illustration pour vous donner un aperçu : {{https://tutorial.djangogirls.org/fr/how_the_internet_works/images/internet_1.png?600}} Le tableau est-il impressionnant ? En réalité, il représente un réseau de machines connectées les unes aux autres, communément appelées "serveurs". Il s'agit de centaines de milliers de machines réparties partout dans le monde, interconnectées par des millions de kilomètres de câbles. Vous pouvez consulter une carte des câbles sous-marins sur [[http://submarinecablemap.com|http://submarinecablemap.com]] pour apprécier la complexité de ce réseau. Voici une capture d'écran du site : {{https://tutorial.djangogirls.org/fr/how_the_internet_works/images/internet_3.png?600}} C'est fascinant, n'est-ce pas ? Néanmoins, il est impossible de connecter un câble direct entre chaque machine reliée à Internet. Ainsi, pour atteindre une machine donnée (par exemple, celle où le site [[https://djangogirls.org|https://djangogirls.org]] est stocké), il est nécessaire de faire transiter la demande par un grand nombre d'autres machines. Cela ressemble à ceci : {{https://tutorial.djangogirls.org/fr/how_the_internet_works/images/internet_2.png?600}} C'est un peu similaire à l'envoi d'une lettre lorsque vous saisissez [[https://djangogirls.org|https://djangogirls.org]]. Vous envoyez une lettre contenant la demande suivante : "Chères Django Girls, je souhaiterais consulter le site djangogirls.org. Pourriez-vous me le transmettre ?" Votre lettre est dirigée vers le bureau de poste le plus proche, puis elle est transférée vers un autre bureau de poste plus proche de votre destinataire, et ainsi de suite, jusqu'à atteindre sa destination. Il est important de noter que si vous envoyez de nombreuses lettres ("paquets de données") vers le même endroit, elles peuvent emprunter des chemins différents ("routeurs"). Ce choix dépend de la manière dont elles sont réparties dans chaque bureau de poste. {{https://tutorial.djangogirls.org/fr/how_the_internet_works/images/internet_4.png?600}} Le fonctionnement est similaire - vous envoyez des messages et attendez une réponse. Cependant, à la place de l'encre et du papier, vous utilisez des octets de données. Le concept demeure le même ! Au lieu des adresses postales (nom de rue, ville, code postal), nous utilisons des adresses IP. Votre ordinateur commence par interroger le DNS (Domain Name System) afin de traduire djangogirls.org en une adresse IP. Cette procédure est comparable à la consultation d'un vieux annuaire, où l'on recherche le nom d'une personne pour obtenir son numéro de téléphone et son adresse. Lorsque vous envoyez une lettre, certains éléments sont requis pour qu'elle parvienne à destination de manière adéquate : une adresse, un timbre, etc. Vous devez également utiliser un langage que le destinataire peut comprendre. Il en va de même pour les paquets de données que vous envoyez pour afficher un site web. Vous utilisez un protocole appelé HTTP (Hypertext Transfer Protocol). En conclusion, pour qu'un site web soit accessible, il doit être hébergé sur un "serveur" (une machine). Lorsque le "serveur" reçoit une demande (dans une lettre), il renvoie le site web correspondant (dans une autre lettre). Dans le contexte de ce tutoriel sur Django, vous pourriez vous interroger sur le rôle de Django. Lorsque vous renvoyez une réponse, il est rare que celle-ci soit identique pour tout le monde. Il est beaucoup plus avantageux de personnaliser les réponses, en particulier lorsque celles-ci sont destinées à des utilisateurs qui viennent de vous contacter, n'est-ce pas ? C'est là que Django intervient pour vous aider à composer des réponses personnalisées et captivantes. :) Assez de théorie, il est temps de passer à la création !

Comment fonctionne Internet

Vous utilisez sûrement Internet tous les jours. Mais savez-vous ce qui ce passe vraiment quand vous tapez une adresse comme https://djangogirls.org dans votre navigateur et appuyez sur Entrée?

La première chose que vous devez comprendre c’est qu’un site Web consiste en un tas de fichiers sauvegardés sur un disque dur -- tout comme vos films, musiques ou photos. Cependant, les sites web ont quelque chose d'unique : ils contiennent du code informatique appelé HTML.

Si vous n'avez pas l'habitude de la programmation, il peut être difficile de comprendre HTML au début, mais vos navigateurs web (comme Chrome, Safari, Firefox, etc.) adorent ça. Les navigateurs web sont conçus pour comprendre ce code, pour suivre les instructions qu'il contient et présenter les fichiers de votre site web exactement comme vous voulez qu'ils soient présentés.

Comme pour n'importe quel autre fichier, il faut stocker les fichiers HTML sur un disque dur quelque part. Pour Internet, on utilise des ordinateurs spéciaux, très puissants, appelés serveurs. Ils n'ont pas d'écran, de clavier ou de souris, car leur rôle est de stocker des données, et de les servir. C'est pour ça qu'on les appelle des serveurs : parce qu'ils sont là pour vous servir des données.

Bon, d'accord. Mais vous avez envie de savoir à quoi Internet ressemble, n'est-ce-pas ?

Nous vous avons fait un dessin ! Voilà à quoi ça ressemble :

Figure 1.1

C'est le bazar, non ? En fait, c'est un réseau de machines connectées entre elles (les serveurs dont on parlait plus tôt). Des centaines de milliers de machines ! Des millions de kilomètres de câbles, partout dans le monde ! Vous pouvez aller voir une carte des câbles sous-marins (http://submarinecablemap.com/) pour voir à quel point le réseau est compliqué. Voici une capture d'écran du site :

Figure 1.2

Fascinant, non ? Cependant, il n'est pas possible de tirer un câble entre chaque machine connectée à Internet. Du coup, pour atteindre une machine (par exemple, celle où https://djangogirls.org est sauvegardé), on doit faire passer une requête par plein d'autres machines.

Ça ressemble ça :

Figure 1.3

C'est un peu comme si, quand vous tapiez https://djangogirls.org, vous envoyiez une lettre qui dit "Chères Django Girls, je voudrais voir le site djangogirls.org. Pouvez-vous me l'envoyer ?"

Votre lettre part vers le bureau de poste le plus proche. Ensuite, il file vers un autre, qui est plus proche de votre destinataire. Puis un autre, et encore un autre, jusqu'à sa destination. Une chose à retenir : si vous envoyez beaucoup de lettres (data packets) au même endroit, il se pourrait qu'elles transitent par des postes différentes (routers). Cela dépend de la manière dont elles sont distribuées à chaque bureau de poste.

Figure 1.4

Cela fonctionne comme ça - vous envoyez des messages et attendez une réponse. Vous utilisez des octets de données à la place du papier et du crayon, mais l'idée est la même !

À la place des adresses postales (nom de rue, ville, code postal), nous utilisons des adresses IP. Votre ordinateur commence par demander au DNS (Domaine Name System) de traduire djangogirls.org en une adresse IP. Ça marche un peu comme un de ces vieux annuaires où l'on peut chercher le nom d'une personne et trouver son numéro de téléphone et son adresse.

Quand vous envoyez une lettre, elle a besoin de certaines choses pour transiter correctement : une adresse, un timbre, etc. Vous devez aussi utiliser une langue que votre destinataire comprend. C'est la même chose pour les paquets de données que vous envoyez pour voir un site web. Vous utilisez un protocole appelé HTTP (Hypertext Tranfer Protocol).

Donc, au final, pour avoir un site web il faut qu'il soit sur un serveur (c'est une machine). Lorsque le serveur reçoit une *requête/0> (dans une lettre), il envoie votre site Web (dans une autre lettre).</p>

Puisqu'on est dans un tutoriel sur Django, vous devez vous demander ce que Django fait. Quand vous envoyez une réponse, vous ne renvoyez pas toujours la même réponse à tout le monde. C'est bien mieux quand les lettres sont personnalisées, surtout quand elles s'adressent à quelqu'un qui vient de vous écrire, non ? Et bien Django vous aide à écrire les lettres personnalisées et intéressantes. :)

Assez parlé, il est temps de commencer à créer des trucs !