{{tag>réseau serveur internet}} ====== Web ====== [[wpfr>World_Wide_Web|Le Web]] est l'ensemble des documents et des services disponibles sur [[:Internet]] accessibles via le protocole HTTP(S). Une caractéristique essentielle du Web est la capacité de passer d'un service à un autre par des liens hypertexte. Ces liens forment le réseau d'où le Web (//toile// en anglais) tire son nom.\\ Un site Web est quant à lui un ensemble de pages Web liées entre elles, traitant d'un même sujet et visibles sur un même [[#nom de domaine]]. ===== HTTP et navigation ===== Pour accéder à un site Web, il faut utiliser un client Web, communément appelé //[[:navigateur]]//, par exemple : [[:Firefox]], [[:Chromium]], [[:Google Chrome]], [[:Opera]]… ==== URL ==== On passe généralement par un moteur de recherche pour trouver un site, mais on peut aussi saisir directement l'adresse d'une page web pour l'afficher. On parle alors d'//[[wpfr>Uniform_Resource_Locator|URL]]//. Une URL est donc l'adresse d'un contenu Web spécifique. Une URL se compose ainsi (sans crochet ni espace) : [//protocole//] **://** [//hôte//] **/** [//chemin//] **/** [//nom de la page web//] **?** [//chaîne de requête//] **#** [//signet//] * Dans le domaine du Web, les **//[[wpfr>Protocole_réseau|protocoles]]//** sont [[wpfr>Hypertext_Transfer_Protocol|HTTP]] ou [[wpfr>HyperText_Transfer_Protocol_Secure|HTTPS]]. Généralement il n'est pas nécessaire de saisir le protocole dans la barre d'adresses, le navigateur web l'ajoute automatiquement si il est manquant. Le protocole est même masqué par défaut dans la barre d'adresse de certains navigateurs. * L'**//hôte//** peut être soit une [[wpfr>Adresse_IP|adresse IP]] soit un [[#nom de domaine]] avec ou sans sous-domaine. Historiquement et dans le cas d'une configuration simple, les affirmations suivantes s'appliquent mais elles peuvent être rendues fausses par les fonctionnalités de [[:apache2#mod_rewrite|réécriture d'URL]] disponibles avec la plupart des serveurs web, et qu'on utilise couramment pour un meilleur référencement ou plus de pertinence sémantique : * Le **//chemin//** correspond au [[:chemins#chemin_relatif|chemin]] de la ressources sur le support de stockage du serveur, relativement à la racine de l'hôte ([[:apache2#hotes_virtuels|DocumentRoot]] pour [[apache2|Apache]]). * Le **//nom de la page web//** correspond au nom du fichier appelé sur le support de stockage du serveur. Il peut s'agir d'une page web HTML, mais aussi d'un script, d'une image, ou autre. * La **//chaîne de requête//** permet principalement de faire passer des variables à un script exécuté par le serveur web ou éventuellement par le navigateur (on parle de [[https://www.php.net/manual/fr/reserved.variables.get.php|variables GET]]). * Le **//signet//** permet d'accéder directement à un certain emplacement de la page (un chapitre ou un élément en particulier) lors de son premier affichage (le navigateur //scrolle// dans la page). Pour un client web il est seulement obligatoire de spécifier le protocole et l'hôte. C'est généralement l'adresse de la page d'accueil des sites qui est dans ce cas affichée par défaut (voir [[:Apache2#index|Index]]). ==== HTTP ==== En anglais, [[wpfr>Hypertext_Transfer_Protocol|HTTP]] est l'acronyme de //Protocole de Transfert HyperTexte//.\\ Un document [[wpfr>Hypertexte|hypertexte]] est un document contenant des [[wpfr>Hyperlien|hyperliens]]. Il s'agit généralement de documents [[wpfr>Hypertext_Markup_Language|HTML]]. Les hyperliens sont des liens vers d'autres URLs. Ils permettent d'établir un réseau entre les documents, les services, et avec d'autres formes de contenu (images, documents, multimédia...), et plus discrètement avec des scripts ([[wpfr>JavaScript]] le plus souvent) et feuilles de styles ([[wpfr>CSS]]). En HTML c'est l'attribut ''[[https://developer.mozilla.org/fr/docs/Web/HTML/Element/a#href|href]]'' qui permet d'indiquer l'URL cible d'un hyperlien. [[wpfr>HyperText_Transfer_Protocol_Secure|HTTPS]] est une version sécurisée du HTTP, qui implique que les informations échangées entre le navigateur et le serveur web soient chiffrées.\\ HTTP utilise par défaut le port **80**, et HTTPS le port **443**. Il existe une extension du protocole HTTP appelée [[:WebDAV]] qui permet de récupérer, envoyer et synchroniser des fichiers via le protocole HTTP. WebDAV a lui-même été étendu aux protocoles [[wpfr>CalDAV|CalDAV]] et [[wpfr>CardDAV|CardDAV]] qui permettent de gérer des agendas et des carnets d'adresses via le web. ===== Clients ===== Les clients web les plus couramment utilisés sont les [[:navigateur|navigateurs]] : [[:Firefox]], [[:Chromium]], [[:Google Chrome]], [[:Opera]], etc. Les autres clients HTTP sont par exemple, les [[wpfr>Robot_d'indexation|robots d'indexation]], les [[wpfr>Aspirateur_de_site_web|aspirateurs de site]] ou les [[wpfr>Agrégateur|agrégateurs web]]. Pour l'envoi, récupération et synchronisation de fichiers avec [[:WebDAV]], le client est souvent le gestionnaire de fichiers : [[:Dolphin]], [[:Nautilus]],… et utilise parfois des noms de protocoles non standard tels que //davs// (GNOME) ou //webdav// (KDE) (le nom standard du protocole est //[[wpfr>Schéma_d'URI#Schémas_enregistrés_auprès_de_l'IANA|dav]]//). Pour la synchronisation des contacts et agenda, les clients sont généralement les applications de gestion d'informations personnelles (PIM) de l’environnement de bureau, ou des [[:courriel|clients de messagerie]] qui implémentent ce type de synchronisation : [[:Evolution]], [[:Kontact]],… ===== Serveurs ===== Un serveur web est une machine fournissant l'ensemble des services permettant de mettre à disposition du contenu web. Son centre névralgique est donc le [[wpfr>Serveur_HTTP|serveur HTTP]].\\ Les serveurs HTTP les plus utilisés sur Internet sont [[:Apache]] et [[:Nginx]]. En plus de ces deux serveurs, les serveurs [[:Lighttpd]] et [[https://caddyserver.com|Caddy]] sont également disponibles sous Ubuntu. Pour plus de détails sur le fonctionnement d'un serveur web, voir le chapitre //[[:apache2#Mode de fonctionnement sommaire]]// dans la documentation d'Apache. Les applications et les langages de développement pour le web possèdent aussi souvent leur propre serveur HTTP intégré, c'est le cas pour [[:PHP]], [[:Python]], [[:NodeJS]], etc. De nombreuses applications implémentent aussi de petits serveurs web parmi leurs fonctionnalités (clients [[:BitTorrent]], outil de [[:synchronisation]] à distance, etc.). Un serveur web est rarement constitué uniquement d'un service HTTP. C'est le plus souvent une pile logicielle comprenant un serveur HTTP, un interpréteur de scripts et un système de gestion de bases de données.\\ On utilise couramment la pile [[:LAMP]] : Linux + Apache + MySQL + PHP, mais d'autres combinaisons existent : * [[https://lemp.io/|LEMP]] = Linux + Nginx + MySQL + PHP * Linux + Apache + MySQL + Python * Linux + Apache + PostgreSQL + PHP * Linux + NodeJS + PostgreSQL * etc. Pour utiliser un serveur web, on peut soit s'auto-héberger, soit passer par les services d'un [[:hébergeur]] qui s'occupe principalement de gérer une grande quantité de serveurs entreposés dans un centre de données (//datacenter//). ===== Nom de domaine ===== Les [[wpfr>https://fr.wikipedia.org/wiki/Nom_de_domaine|noms de domaine]] sont les éléments d'adresse Web qui correspondent à un site. Ils s'écrivent sous la forme : [//sous-domaine//] **.**[//[[wpfr>Domaine_de_deuxième_niveau|SLD]]//] **.** [//[[wpfr>Domaine_de_premier_niveau|TLD]]//] Par exemple ''ubuntu-fr.org'' est un nom de domaine, ''doc.ubuntu-fr.org'' en est un sous-domaine. ==== DNS ==== Pour communiquer ensemble, les machines d'un réseau, qu'il s'agisse d'ordinateurs personnels ou de serveurs, et qu'il s'agisse d'Internet ou d'un réseau domestique, utilisent des [[wpfr>Internet_Protocol|adresses IP]], et pas directement des noms de domaine.\\ Il existe aujourd'hui l'[[wpfr>IPv4]] et [[wpfr>IPv6]]. Les noms de domaine sont quant à eux enregistrés chez des prestataires qu'on appelle des [[wpfr>Registraire_de_nom_de_domaine|registrars]]. on peut en trouver une liste sur [[:hebergeur#achat_de_nom_de_domaine|cette page]]. Pour connaître l'adresse IP depuis le nom de domaine, l'ordinateur questionne un serveur de nom de domaine (ou [[wpfr>Domain_Name_Service|DNS]], pour //**D**omain **N**ame **S**ystem// ou //**D**omain **N**ame **S**ervice//).\\ Ceci peut poser des problèmes de confidentialité des données : un tiers peut avoir la liste des sites que vous consultez. Il arrive aussi que certains résolveurs DNS bloquent volontairement certains domaines (on parle de DNS menteurs). N'hésitez pas à consulter [[:anonymat#dns|cette page]] pour en savoir plus à ce sujet, et contourner le problème. === réseau privé === Sur un [[wpfr>réseau privé]] (local) il existe d'autres systèmes qui permettent d'utiliser des noms d'hôtes pour cibler les machines plutôt que leurs adresses IP. * [[:zeroconf#mDNS]] est conçu par Apple mais très bien implémenté par [[:ZeroConf]] sur Ubuntu. Il utilise le [[wpfr>Domaine_de_premier_niveau|TLD]] ''.local''. * [[:samba_smb.conf#WINS]] attribue des noms [[wpfr>NetBIOS]]. Il est conçu par Microsoft et implémenté par [[:Samba]]. Sur Linux on privilégie mDNS dans la mesure du possible. NetBIOS sera plutôt réservé à des [[:partage|partages]] avec des machines sous Windows. ---- //Contributeurs : [[:utilisateurs:krodelabestiole]]//