HTTP et Web. Camille Coti 1

Documents pareils
L3 informatique TP n o 2 : Les applications réseau

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Protection des protocoles

Développement des Systèmes d Information

Protocoles Applicatifs

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Dans l'épisode précédent

(structure des entêtes)

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion

Serveurs de noms Protocoles HTTP et FTP

Application Web et J2EE

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

18 TCP Les protocoles de domaines d applications

Programmation Internet Cours 4

Introduction à HTTP. Chapitre HTTP 0.9

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Les services usuels de l Internet

Types MIME (2) Typage des ressources Internet. Les URI. Syntaxe dans les URI. Possibilité de spécifier un paramètre du sous-type

HTTP 1.1. HyperText Transfer Protocol TCP IP ...

1 Introduction Propos du document Introduction De HTTP 1.0 à HTTP

1. La plate-forme LAMP

Glossaire. ( themanualpage.org) soumises à la licence GNU FDL.

Mac OS X Server Administration des technologies Web. Pour la version 10.3 ou ultérieure

SERVEUR HTTP Administration d apache

Le protocole HTTP. 10 minutes pour comprendre. HTTP/0.9 - Lacunes et limitations HTTP/1.0 HTTP/1.1

«Cachez-moi cette page!»

Gestion centralisée d un réseau de sites discrets. Nicolas JEAN

Hébergement de site web Damien Nouvel

Qu est ce qu Internet. Qu est-ce qu un réseau? Internet : à quoi ça sert? présentation des services. Exemple de configuration. Rôles des éléments

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

Couche application. La couche application est la plus élevée du modèle de référence.

HTTP. Technologies du Web. Programmation Web côté serveur. Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009

Présentation Internet

Cours CCNA 1. Exercices

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

Proxies,, Caches & CDNs

Introduction aux Technologies de l Internet

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Table des matières Hakim Benameurlaine 1

TIC. Réseau informatique. Historique - 1. Historique - 2. TC - IUT Montpellier Internet et le Web

Hébergement de sites Web

RFC 7230 : Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing

L identité numérique. Risques, protection

Développement Web. Les protocoles

Chapitre : Les Protocoles

Programmation Web. Madalina Croitoru IUT Montpellier

1 ère Université WEB. Courbevoie Samedi 21 octobre Votre site interactif sur internet.

Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet

FileMaker Server 12. publication Web personnalisée avec XML

Internet Information Services (versions 7 et 7.5) Installation, configuration et maintenance du serveur Web de Microsoft

Services sur réseaux. Trois services à la loupe. Dominique PRESENT Dépt S.R.C. - I.U.T. de Marne la Vallée

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Introduction aux «Services Web»

Mise à jour : Octobre 2011

4. SERVICES WEB REST 46

Les outils de création de sites web

Mise en œuvre des serveurs d application

Le serveur HTTPd WASD. Jean-François Piéronne

Cisco Certified Network Associate

Sécuriser les applications web de l entreprise

Vulnérabilités et sécurisation des applications Web

Plan Général Prévisionnel (1/2) Internet et Outils L1/IO François Armand. Plan Général Prévisionnel (2/2) Unix, Réseau: Plan

Chapitre 1 Windows Server

Réseaux et protocoles Damien Nouvel

Quelques protocoles et outils réseaux

Programmation Web. Introduction

CS REMOTE CARE - WEBDAV

WebDAV en 2 minutes. Tous ces objectifs sont complémentaires et ils sont atteints grâce au seul protocole WebDAV. Scénarii

Présentation du relais HTTP Open Source Vulture. Arnaud Desmons Jérémie Jourdin

Diffuser un contenu sur Internet : notions de base... 13

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

OUAPI Guide d installation Outil d administration de parc informatique. Documentation d installation et de paramétrage

Services Réseaux - Couche Application. TODARO Cédric

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

LAMP : une nouvelle infrastructure LAMP. Une architecture modulaire. Installation

UE5A Administration Réseaux LP SIRI

Architectures web/bases de données

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

Les Architectures Orientées Services (SOA)

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

BTS SIO Dossier BTS. PURCHLA Romain

Hébergement WeboCube. Un système performant et sécurisé. Hébergement géré par une équipe de techniciens

Services Réseau SSH. Michaël Hauspie. Licence Professionnelle Réseaux et Télécommunications

Les cahiers pratiques de Anonymat.org. SocksCap32. Edition du 20 Octobre 2000

Joomla! Création et administration d'un site web - Version numérique

FTP & SMTP. Deux applications fondamentales pour le réseau Internet.

Standard. Manuel d installation

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Solution d inventaire automatisé d un parc informatique et de télédistribution OCS INVENTORY NG. EHRHARD Eric - Gestionnaire Parc Informatique

Le serveur web Windows Home Server 2011

Architectures en couches pour applications web Rappel : Architecture en couches

IIS, c est quoi? Installation de IIS Gestion de base de IIS Méthodes d authentification. Edy Joachim,

TP Service HTTP Serveur Apache Linux Debian

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant

POVERELLO KASONGO Lucien SIO 2, SISR SITUATION PROFESSIONNELLE OCS INVENTORY NG ET GLPI

Caruso33 : une association à votre service

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Applications et Services WEB: Architecture REST

Transcription:

HTTP et Web TR2 Camille Coti 1 camille.coti@lipn.univ-paris13.fr 1 Département R&T, IUT de Villetaneuse, Université de Paris XIII 1 Camille Coti HTTP et Web

Plan du cours 2 / 1 2 Camille Coti HTTP et Web

3 / 1 3 Camille Coti HTTP et Web

Présentation 4 / 1 HTTP, HTML et Web Le protocole HTTP et le langage d affichage HTML sont liés depuis leur conception Serveur HTTP Navigateur communique avec le serveur HTTP affiche du HTML L apparition de HTTP et HTML est considérée comme la naissance du World Wide Web Le World Wide Web Ensemble de documents contenant des références les uns vers les autres (hyperliens) accessibles via Internet 4 Camille Coti HTTP et Web

Histoire 5 / 1 Débuts au CERN But : améliorer les diffusions des données en interne au CERN Début du travail : 1984 Création du WWW et proposition pour le projet HyperText : 1990 Premier navigateur Trois concepts de base : URL, HTML HTTP Normalisation Publication de RFC : 1994 : RFC 1738 (notion d URL), 2010 : RFC 5785 (notion d URI) 1995 : RFC 1866 (HTML 2.0) 1996 : RFC 1945 (HTTP/1.0) 1997 puis 1999 puis 2000 : RFC 2068 puis 2616 puis 2817 (HTTP/1.1) Consortiums : HTTP Working Group World Wide Web Consortium (W3C) 5 Camille Coti HTTP et Web

Le World Wide Web 6 / 1 Serveurs Serveurs Modèle client-serveur Internet relie les clients et les serveurs Les documents sont sur les serveurs Les clients accèdent aux serveurs et récupèrent les documents INTERNET Communication client-serveur Protocole HTTP Requête-réponse Clients Affichage par le client Langage d affichage HTML Formattage de l affichage 6 Camille Coti HTTP et Web

7 / 1 7 Camille Coti HTTP et Web

Protocole de transfert de données 8 / 1 Protocole de transfert de données FTP ne suffit pas au transfert de documents Affichage dans un navigateur Liens entre les documents Protocole réseau TCP/IP généralement utilisé Mais pas d hypothèse faite a priori dans le protocole Mode connecté Les données transmises sont considérées comme un flux 8 Camille Coti HTTP et Web

Transmission d une page 9 / 1 Modèle client-serveur Le serveur tourne en permanence Un client se connecte et envoie une requête Le serveur lui répond Fin de la conversation Communication mode ASCII Requête : mode texte Syntaxe : COMMANDE RESSOURCE Réponse : mode texte Encodage en texte, utilisation du type MIME pour les contenus non-texte 9 Camille Coti HTTP et Web

Commandes disponibles 10 / 1 Principales commandes Toutes les commandes ne sont pas forcément disponibles! (sécurité) GET : demande d une ressource (commande la plus utilisée) POST : ajout d une nouvelle ressource, contient des données HEAD : obtenir des informations sur la ressource OPTIONS : obtenir des informations sur les possibilités offertes par le serveur CONNECT : utilisation d un proxy TRACE : retourner ce que le serveur a reçu (utilisé comme diagnostic) Commandes spécifiques Nécessitent un accès privilégié (authentifié) PUT : remplacer une ressource sur le serveur DELETE : supprimer une ressource du serveur 10 Camille Coti HTTP et Web

Exemple : récupération d une page 11 / 1 Connexion au serveur $ telnet www.iutv.univ-paris13.fr 80 Trying 194.254.173.2... Connected to www.iutv.univ-paris13.fr. Escape character is ]. Demande d une page GET /iutv/index.php Réponse du serveur <HTML> [...] </HTML> Connection closed by foreign host. C est ce qui est interprêté par le navigateur 11 Camille Coti HTTP et Web

Demandes partielles 12 / 1 GET conditionnel Page récupérée seulement si elle a été depuis une date donnée If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT Si la page n a pas été modifiée : Le serveur n envoie qu une ligne (code 304) Le navigateur affiche une version en cache Sinon : Le serveur envoie la dernière version HEAD Ne demande que l en-tête de la page Permet de déterminer la date de dernière modification Obtient les informations d indexation de la page Vérifie la validité d une URL 12 Camille Coti HTTP et Web

Réponse du serveur 13 / 1 La réponse du serveur vient avec un code (3 chiffres) indicateur du résultat de la requête : 1xx : information 2xx : succès 3xx : redirection 4xx : erreur du client 5xx : erreur du serveur 13 Camille Coti HTTP et Web

14 / 1 200 : OK 200 : requête traitée avec succès 14 Camille Coti HTTP et Web

15 / 1 100 : Continue 100 : attente de la suite de la requête 15 Camille Coti HTTP et Web

16 / 1 401 : Unauthorized 401 : authentification nécessaire pour accéder à la ressource demandée 16 Camille Coti HTTP et Web

17 / 1 403 : Forbidden 403 : authentification refusée 17 Camille Coti HTTP et Web

18 / 1 404 : Not found 404 : la ressource demandée n a pas été trouvée 18 Camille Coti HTTP et Web

19 / 1 405 : Method not allowed 405 : méthode de requête non autorisée 19 Camille Coti HTTP et Web

20 / 1 408 : Request timeout 408 : temps d attente d une réponse du serveur écoulé 20 Camille Coti HTTP et Web

21 / 1 409 : Conflict 409 : la requête ne peut pas être traitée pour le moment (conflit de versions...) 21 Camille Coti HTTP et Web

22 / 1 413 : Request entity too large 413 : requête trop grosse 22 Camille Coti HTTP et Web

23 / 1 414 : Request IRU too long 414 : l URI demandée est trop longue 23 Camille Coti HTTP et Web

24 / 1 418 : I am a teapot 418 : je suis une théière (RFC 2324 définissant le Hyper Text Coffee Pot Control Protocol) 24 Camille Coti HTTP et Web

25 / 1 426 : Upgrade required 426 : le client utilise une version trop ancienne du protocole 25 Camille Coti HTTP et Web

26 / 1 429 : Too many requests 429 : le client a envoyé trop de requêtes en un temps donné 26 Camille Coti HTTP et Web

27 / 1 431 : Request Header Fields Too Large 431 : l en-tête de la requête ou un de ses champs est trop grand 27 Camille Coti HTTP et Web

28 / 1 450 : Blocked by Windows Parental Controls 450 : extension du contrôle parental de Microsoft 28 Camille Coti HTTP et Web

29 / 1 500 : Internal server error 500 : erreur côté serveur 29 Camille Coti HTTP et Web

30 / 1 599 : Network connect timeout error 599 : timeout côté serveur (proxy) 30 Camille Coti HTTP et Web

Le type MIME 31 / 1 Multipurpose Internet Mail Extensions Standard Internet RFC 2045, RFC 2046, RFC 2047, RFC 2048 et RFC 2077 Transmettre n importe quel contenu dans de l ASCII Origine L encodage des mails est en ASCII 7 bits Impossibilité de transmettre des langages basés sur l alphabet Latin nécessitant des caractères spéciaux Impossibilité de transmettre des langages basés sur un autre alphabet Impossibilité de transmettre autre chose que du texte Utiliser un type MIME permet d encode autre chose dans le corps ou dans l en-tête d un mail Par extension, dans toute communication basée sur ASCII 31 Camille Coti HTTP et Web

MIME : exemple dans un mail 32 / 1 En-tête On spécifie la version MIME-Version: 1.0 On annonce ce qui vient dans le corps Content-Type: Multipart/related; charset="iso-8859-1"; type="multipart/alternative"; boundary="------------boundary-00= JXS9QL80000000000000" Séparation entre les éléments Utilisation d un séparateur quand le type change --------------Boundary-00= JXS9LVC0000000000000-- Chaque élément est transmis comme une partie du mail 32 Camille Coti HTTP et Web

33 / 1 MIME : exemple dans un mail Transmission d une image --------------Boundary-00= JXS9QL80000000000000 Content-Type: image/gif; name="att1.gif" Content-Transfer-Encoding: base64 Content-ID: <D0DEE211-0A46-4E4F-AEC1-23417EEED16A> Texte L image est terminée, on repasse à du texte --------------Boundary-00= JXS9LVC0000000000000 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable HTML (pouvant être interprêté par le client mail) --------------Boundary-00= JXS9LVC0000000000000 Content-Type: Text/HTML; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable <HTML><HEAD> 33 Camille Coti HTTP et Web

34 / 1 34 Camille Coti HTTP et Web

35 / 1 Serveur Web Fonctionnement Le serveur Web écoute sur un port (généralement le port 80) Les clients se connectent sur ce port un client demande une page le serveur lui envoie cette page le client se déconnecte Exemples Open source : Apache HTTP Server (Apache), Tomcat, Jigsaw... Propriétaire : Microsoft IIS, Zeus... Adressage des documents Notion d URL Universal Ressource Locator L URL contient : L adresse IP ou symbolique (DNS) du domaine de la machine Le chemin vers le document sur ce serveur 35 Camille Coti HTTP et Web

Adressage des documents 36 / 1 Notion d URL (Universal Ressource Locator) Permet d identifier Le serveur sur lequel se situe le document Le document lui-même Composition d une URL L URL contient : L adresse IP ou symbolique (DNS) du domaine dont fait partie la machine ex : univ-paris13.fr Le nom de la machine sur laquelle tourne le serveur ex : www.iutv Le chemin relatif vers le document (par rapport au répertoires du serveur Web) ex : /iutv/reseaux telecommunications.php L URL de ce document est alors : www.iutv.univ-paris13.fr/iutv/reseaux telecommunications.php 36 Camille Coti HTTP et Web

37 / 1 Client Web Fonctionnement Envoi des requêtes aux serveurs Interprétation des URL Résolution DNS, localisation du serveur Mise en forme des requêtes HTTP Interprétation des réponses Affichage des documents Interprétation de l HTML Exécution des scripts côté client Conformation aux standards vérifiée par les tests Acid Si le document contient d autres parties (images, etc) Émission de requêtes pour les obtenir Exemples FireFox, Fennec, Opera, Chrome, Safari, Konqueror, Internet Explorer... 37 Camille Coti HTTP et Web

Applications Web 38 / 1 Types d applications Applications côté serveur Le serveur fait le calcul Sa réponse dépend de ce qu il a calculé Envoi de code HTML Exemple : PHP Applications côté client Le client fait le calcul Exemple : Javascript, applet Java... Comparatif Confidentialité Applications côté serveur : le code exécuté est invisible du client Charge Applications côté serveur : le client fait le travail, pas le serveuur 38 Camille Coti HTTP et Web

Illustation 39 / 1 Requête simple Exemple : affichage d une page Application serveur Exemple : interrogation d une base de données Client Requête Serveur Client Requête Serveur Interprétation de la requête Interrogation de la BD Réponse Réponse Réponse Base de données 39 Camille Coti HTTP et Web

De l affichage de documents aux applications distribuées 40 / 1 Limites du modèle Le client est toujours à l initiative de l échange Pas de push du serveur vers le client Pas de notifications d évènements Bricolage avec AJAX Timer : toutes les X secondes, le client demande au serveur s il y a quelque chose de nouveau (exemple : notifications Facebook) La connexion est fermée à la fin de l échange Le flux est coupé HTML5 : WebSockets Applets Java : connexion vers un servlet situé sur la machine serveur Applications déployées Soit centralisées tout se fait côté serveur : BD, blog, diffusion de contenu... Soit entièrement côté client tout se fait côté client : animations / jeux Flash, applets Java... 40 Camille Coti HTTP et Web

41 / 1 41 Camille Coti HTTP et Web

Serveur Apache HTTP 42 / 1 Présentation Serveur le plus répandu Environ 72,5% de parts de marché (décembre 2008) Deuxième : IIS, environ 18% (décembre 2008) Bien intégré dans une combinaison open source LAMP : Linux Apache MySQL PHP Mais très large compatibilité avec d autres technologies Modularité Ajout de fonctionalités par modules Permet de proposer une très large gamme de fonctionalités Sans forcément les charger toutes (plus léger, failles de sécurité...) 42 Camille Coti HTTP et Web

Configuration d Apache 43 / 1 Fichiers de configuration Généralement dans /etc/apache2/ (variable selon les versions et/ou la distribution Linux) httpd.conf et apache.conf Modules Configuration des modules mods-enabled/*.load mods-enabled/*.conf Sites hébergés Possibilité d héberger plusieurs sites sur un serveur sites-enabled/ sites-available/ Détermination : selon le port ou le nom d hôte <VirtualHost *:80> 43 Camille Coti HTTP et Web

Sécurité 44 / 1 Au niveau des communications Possibilité de crypter les communications avec SSL ou TLS Permet d éviter de faire passer des informations en clair (mots de passe, numéros de carte banquaire, de sécurité sociale...) Utilisation d un certificat signé par une autorité de certification Port 443 par défaut Protocole HTTPs Restrictions d accès Utilisation d un fichier.htaccess Définition de règles par répertoire et pour les sous-répertoires Global (tout le serveur ou tout le site) ou local (un répertoire donné et ses sous-répertoires) Définit les restrictions : par adresse IP du client, par type de ficheir, authentification du client... 44 Camille Coti HTTP et Web

Traces et logs 45 / 1 Traces d accès au serveur Disponibles dans /var/log/apache2/ access.log : toutes les requêtes arrivées au serveur 127.0.0.1 - - [22/Jan/2011:17:51:17 +0100] "GET /server-status?auto HTTP/1.1" 200 633 "-" "libwww-perl/5.836" errors.log : toutes les erreurs [Sun Jan 16 07:43:37 2011] [notice] Apache/2.2.16 (Debian) PHP/5.3.2-2 with Suhosin-Patch configured -- resuming normal operations Autres traces Possibilité de mettre en place une trace par Virtual Host PID du serveur Apache : /var/run/apache2.pid 45 Camille Coti HTTP et Web

46 / 1 Fichiers sur le serveur Site principal Localisation définie dans la configuration du serveur ou du virtual host /etc/apache2/sites-available/default: DocumentRoot /var/www Comptes utilisateurs Localisation dans un répertoire particulier du répertoire utilisateur, généralement /public html ou /WWW (défini dans la configuration du serveur ou du virtual host) /etc/apache2/mods-available/userdir.conf: Droits d accès UserDir public html Le serveur tourne généralement sous un utilisateur particulier : www-data, apache, root (peu sécurisé donc peu fréquent)... Les fichiers doivent être lisibles par cet utilisateur Les répertoires doivent être traversables par cet utilisateur Les scripts doivent être exécutables par cet utilisateur etc 46 Camille Coti HTTP et Web