{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "18b6a704",
   "metadata": {},
   "source": [
    "# DNS, l'annuaire d'Internet"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "88b612d3",
   "metadata": {},
   "source": [
    "> Connaissez vous le super moteur de recherche 216.58.214.163 ? Non ? Pourtant vous l'utilisez très souvent !\n",
    "\n",
    "> De la même manière que votre amie Alice poste quotidiennement ses pensées sur un morceau d'eurodance sur le fameux 95.100.86.78 !\n",
    "\n",
    "> Et que dire de Bob, qui fait f5 toutes les 10 min sur 46.33.191.5 ?\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3b4bbc30",
   "metadata": {},
   "source": [
    "Cela vous parait idiot ? Pourtant les adresses IP citées au dessus sont bel et bien utilisées quotidiennement par des milliers de personnes. Néanmoins, vous les connaissez probablement mieux sous leur petit nom *__google__*, *__tiktok__* et *__pronote__* !"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ed6af1df",
   "metadata": {},
   "source": [
    "Comme nous l'avons vu avec l'adresse IP, chaque machine possède un identifiant sur le réseau. Tout comme chaque personne possède une adresse physique : lorsque vous allez voir tatie Monique, vous vous rendez là où elle vit, et bien c'est pareil avec un site internet."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5e90b50c",
   "metadata": {},
   "source": [
    "---------"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "385a074e",
   "metadata": {},
   "source": [
    "### Pourquoi le DNS ?"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "91ffcd74",
   "metadata": {},
   "source": [
    "Si, à l'époque, on stockait les adresses des sites dans un fichier HOST.TXT, celui ci n'a jamais dépassé les 600 entrées :\n",
    "\n",
    "Très rapidement, cette solution devint ingérable au vu de la croissance exponentielle du nombre de sites mis en ligne.\n",
    "En 1983, le DNS voit le jour. Et très rapidement, ce système montra son utilité : quatre années plus tard, on enregistrait plus de 20 000 enregistrements de nom de domaine."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "63edbe5b",
   "metadata": {},
   "source": [
    "Pour nous autres, êtres humains, il est complexe de retenir toutes les adresses IP des sites que l'on souhaite visiter. Et à moins de tout noter dans un repertoire, jamais vous ne vous rappelerez de tous ces nombres."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "449c7618",
   "metadata": {},
   "source": [
    "C'est pour cela que le __protocole__ *Domain Name System* a été crée.\n",
    "\n",
    "![dns.gif](assets/dns.gif)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "467bc6c7",
   "metadata": {},
   "source": [
    "---------"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d186c5d5",
   "metadata": {},
   "source": [
    "### Adresse symbolique"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8e14b61a",
   "metadata": {},
   "source": [
    "Le protocole DNS permet d'associer une adresse IP à une *__adresse symbolique__* aussi appelée __*URL*__: celle ci est simple à retenir, et très souvent en rapport avec son contenu : http://www.nice.fr/fr/ par exemple, est le site qui traite de la ville de ...Nice."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7da4b8b6",
   "metadata": {},
   "source": [
    "Toutes ces adresses vont être enregistrées auprès d'un organisme, *L'ICANN*."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "30af3eab",
   "metadata": {},
   "source": [
    "### URL"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8b87822f",
   "metadata": {},
   "source": [
    "> Vous l'aurez compris, le principe du DNS est de faire le lien entre l'adresse IP et l'URL d'un site.\n",
    "Mais c'est quoi, une URL ?"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "09a80e5f",
   "metadata": {},
   "source": [
    "Une URL, ou Uniform Ressource Locator, est composée de 5 parties; le protocole, le sous-domaine, le nom de domaine principal, le domaine de deuxième niveau et le répertoire."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ff34a201",
   "metadata": {},
   "source": [
    "Par exemple, dans cette adresse, que peut on retrouver ? \n",
    "\n",
    "![url_ada.png](assets/url_ada.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "776b386a",
   "metadata": {},
   "source": [
    "| Partie                                        | Type                       | Définition                                                                                                                                    |\n",
    "|-----------------------------------------------|----------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|\n",
    "| HTTPS                                         | Protocole                  | Indique au navigateur le type de ressource souhaitée                                                                                          |\n",
    "| WWW                                           | Sous-domaine               | Séparé du domaine par un point, il permet de diviser un site en plusieurs parties.Par convention, on le nomme www s'il s'agit d'une page web. |\n",
    "| franceculture                                 | Domaine Principal          | Généralement, indique le nom de votre site web et permet immédiatement de savoir ce que l'on va y trouver.                                    |\n",
    "| fr                                            | Domaine de deuxième niveau | Précise le type d’entité sous laquelle est enregistrée votre organisation sur internet (ici, la France, mais on trouve org, net, com...)      |\n",
    "| ada-lovelace-la-premiere-codeuse-de-lhistoire | Repertoire                 | Indique la ressource à laquelle vous êtes en train d'accéder (page web, vidéo, fichier texte, page html, dossier...)                          |"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "eef0dad8",
   "metadata": {},
   "source": [
    "[![principe_url](https://img.youtube.com/vi/WLZM2SoSArc/0.jpg)](https://www.youtube.com/watch?v=WLZM2SoSArc)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "08ac63c3",
   "metadata": {},
   "source": [
    "Répondez aux questions suivantes :\n",
    "\n",
    "- De combien de parties est composée une url ?\n",
    "- Pour chaque partie, donner votre propre définition\n",
    "- Si une partie de l'URL est incorrecte, que se passe -il ?"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d3be21c8",
   "metadata": {},
   "source": [
    "Voici une autre url : https://fr.wikipedia.org/wiki/Ada_Lovelace"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "96ff77be",
   "metadata": {},
   "source": [
    "Remplissez le tableau correspondant :\n",
    "\n",
    "| Partie | Type                       | Définition                                                                                                                                    |\n",
    "|--------|----------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|\n",
    "| ...    | Protocole                  | Indique au navigateur le type de ressource souhaitée                                                                                          |\n",
    "| ...    | Sous-domaine               | Séparé du domaine par un point, il permet de diviser un site en plusieurs parties.Par convention, on le nomme www s'il s'agit d'une page web. |\n",
    "| ...    | Domaine Principal          | Généralement, indique le nom de votre site web et permet immédiatement de savoir ce que l'on va y trouver.                                    |\n",
    "| ...    | Domaine de deuxième niveau | Précise le type d’entité sous laquelle est enregistrée votre organisation sur internet (ici, la France, mais on trouve org, net, com...)      |\n",
    "| ...    | Repertoire                 | Indique la ressource à laquelle vous êtes en train d'accéder (page web, vidéo, fichier texte, page html, dossier...)                          |"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6f803ff9",
   "metadata": {},
   "source": [
    "-------"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "56cbdce4",
   "metadata": {},
   "source": [
    "### Organisation de l'annuaire"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0b6ed74a",
   "metadata": {},
   "source": [
    "```mermaid\n",
    "\n",
    "graph TB;\n",
    "subgraph racine\n",
    "    a[\".\"]\n",
    "    end\n",
    "subgraph Domaines du plus haut niveau\n",
    "\ta-->com;\n",
    "    a-->org;\n",
    "    a-->net;\n",
    "    a-->gov;\n",
    "    a-->...;\n",
    "    end\n",
    "subgraph Sous-domaines\n",
    "    com-->google;\n",
    "    org-->wikipedia;\n",
    "    net-->etc...;\n",
    "    end\n",
    "subgraph Sous-domaines de wikipedia\n",
    "    wikipedia-->fr;\n",
    "    wikipedia-->en;\n",
    "    end\n",
    "    \n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e35c3def",
   "metadata": {},
   "source": [
    "--------"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "496bfdbb",
   "metadata": {},
   "source": [
    "### Resolution de nom"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f798afd9",
   "metadata": {},
   "source": [
    "Que se passe t-il lorsque l'on tape dans son navigateur web *__ViveLaSNT.fr__* ?"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d4d4e9dc",
   "metadata": {},
   "source": [
    "[![Resolution de nom](https://img.youtube.com/vi/av0zX-dr8o8/0.jpg)](https://www.youtube.com/watch?v=av0zX-dr8o8)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fd8c9bc5",
   "metadata": {},
   "source": [
    "---------"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a4639a6a",
   "metadata": {},
   "source": [
    "Prenons l'adresse de l'établissement : \n",
    "\n",
    "https://www.lyc-thierry-maulnier.ac-nice.fr\n",
    "\n",
    "✏ Quelles sont les informations visibles en un coup d'oeil ?\n",
    "\n",
    "✏ Comment peut-on décomposer cette URL ?"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bc258662",
   "metadata": {},
   "source": [
    "### Manipulations"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "451b0d5e",
   "metadata": {},
   "source": [
    "- Ouvrez une console d'invite de commande sous windows (Windows + R puis taper cmd, entrée) et faites les exercices suivants :\n",
    "    - *nslookup* www.google.fr\n",
    "    \n",
    "    - Essayer de joindre le site en utilisant l'adresse IP.\n",
    "    \n",
    "    - Que constatez vous ?\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "59f958a6",
   "metadata": {},
   "source": [
    "Après avoir vu le résultat de cette commande, en déduire son principe de fonctionnement.\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7c2b23be",
   "metadata": {},
   "source": [
    "\n",
    "Ouvrir le site https://dnslookup.online et refaire les mêmes manipulations.\n",
    "\n",
    "Que constatez vous ?"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
