• Aucun résultat trouvé

HTTP et Web – TR2 – Camille Coti

N/A
N/A
Protected

Academic year: 2022

Partager "HTTP et Web – TR2 – Camille Coti"

Copied!
46
0
0

Texte intégral

(1)

HTTP et Web – TR2 –

Camille Coti 1

[email protected]

1D´epartement R&T, IUT de Villetaneuse, Universit´e de Paris XIII

(2)

2 / 1

Plan du cours

(3)

3 / 1

(4)

4 / 1

Pr´ esentation

HTTP, HTML et Web

Le protocole HTTP et le langage d’affichage HTML sont li´ es depuis leur conception

Serveur HTTP Navigateur

communique avec le serveur HTTP affiche du HTML

L’apparition de HTTP et HTML est consid´ er´ ee comme la naissance du World Wide Web

Le World Wide Web Ensemble de documents

contenant des r´ ef´ erences les uns vers les autres (hyperliens)

accessibles via Internet

(5)

5 / 1

Histoire

D´ ebuts au CERN

But : am´ eliorer les diffusions des donn´ ees en interne au CERN D´ ebut du travail : 1984

Cr´ eation 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)

(6)

6 / 1

Le World Wide Web

INTERNET

Serveurs Serveurs

Clients

Mod` ele client-serveur Internet relie les clients et les serveurs

Les documents sont sur les serveurs

Les clients acc` edent aux serveurs et r´ ecup` erent les documents

Communication client-serveur Protocole HTTP

Requˆ ete-r´ eponse

Affichage par le client Langage d’affichage HTML

Formattage de l’affichage

(7)

7 / 1

(8)

8 / 1

Protocole de transfert de donn´ ees

Protocole de transfert de donn´ ees

FTP ne suffit pas au transfert de documents Affichage dans un navigateur

Liens entre les documents

Protocole r´ eseau

TCP/IP g´ en´ eralement utilis´ e

Mais pas d’hypoth` ese faite a priori dans le protocole Mode connect´ e

Les donn´ ees transmises sont consid´ er´ ees comme un flux

(9)

9 / 1

Transmission d’une page

Mod` ele client-serveur

Le serveur tourne en permanence

Un client se connecte et envoie une requˆ ete Le serveur lui r´ epond

Fin de la conversation

Communication mode ASCII Requˆ ete : mode texte

Syntaxe : COMMANDE RESSOURCE R´ eponse : mode texte

Encodage en texte, utilisation du type MIME pour les contenus non-texte

(10)

10 / 1

Commandes disponibles

Principales commandes

Toutes les commandes ne sont pas forc´ ement disponibles ! (s´ ecurit´ e) GET : demande d’une ressource (commande la plus utilis´ ee) POST : ajout d’une nouvelle ressource, contient des donn´ ees HEAD : obtenir des informations sur la ressource

OPTIONS : obtenir des informations sur les possibilit´ es offertes par le serveur

CONNECT : utilisation d’un proxy

TRACE : retourner ce que le serveur a re¸ cu (utilis´ e comme diagnostic)

Commandes sp´ ecifiques

N´ ecessitent un acc` es privil´ egi´ e (authentifi´ e)

PUT : remplacer une ressource sur le serveur

DELETE : supprimer une ressource du serveur

(11)

11 / 1

Exemple : r´ ecup´ eration d’une page

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´ eponse du serveur

<HTML> [...]

</HTML>

Connection closed by foreign host.

C’est ce qui est interprˆ et´ e par le navigateur

(12)

12 / 1

Demandes partielles

GET conditionnel

Page r´ ecup´ er´ ee seulement si elle a ´ et´ e depuis une date donn´ ee If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT Si la page n’a pas ´ et´ e modifi´ ee :

Le serveur n’envoie qu’une ligne (code 304) Le navigateur affiche une version en cache Sinon :

Le serveur envoie la derni` ere version

HEAD

Ne demande que l’en-tˆ ete de la page

Permet de d´ eterminer la date de derni` ere modification

Obtient les informations d’indexation de la page

V´ erifie la validit´ e d’une URL

(13)

13 / 1

R´ eponse du serveur

La r´ eponse du serveur vient avec un code (3 chiffres) indicateur du r´ esultat de la requˆ ete :

1xx : information

2xx : succ` es

3xx : redirection

4xx : erreur du client

5xx : erreur du serveur

(14)

14 / 1

200 : OK

200 : requˆ ete trait´ ee avec succ` es

(15)

15 / 1

100 : Continue

100 : attente de la suite de la requˆ ete

(16)

16 / 1

401 : Unauthorized

401 : authentification n´ ecessaire pour acc´ eder ` a la ressource demand´ ee

(17)

17 / 1

403 : Forbidden

403 : authentification refus´ ee

(18)

18 / 1

404 : Not found

404 : la ressource demand´ ee n’a pas ´ et´ e trouv´ ee

(19)

19 / 1

405 : Method not allowed

405 : m´ ethode de requˆ ete non autoris´ ee

(20)

20 / 1

408 : Request timeout

408 : temps d’attente d’une r´ eponse du serveur ´ ecoul´ e

(21)

21 / 1

409 : Conflict

409 : la requˆ ete ne peut pas ˆ etre trait´ ee pour le moment (conflit de versions...)

(22)

22 / 1

413 : Request entity too large

413 : requˆ ete trop grosse

(23)

23 / 1

414 : Request IRU too long

414 : l’URI demand´ ee est trop longue

(24)

24 / 1

418 : I am a teapot

418 : je suis une th´ ei` ere (RFC 2324 d´ efinissant le Hyper Text Coffee Pot

Control Protocol)

(25)

25 / 1

426 : Upgrade required

426 : le client utilise une version trop ancienne du protocole

(26)

26 / 1

429 : Too many requests

429 : le client a envoy´ e trop de requˆ etes en un temps donn´ e

(27)

27 / 1

431 : Request Header Fields Too Large

431 : l’en-tˆ ete de la requˆ ete ou un de ses champs est trop grand

(28)

28 / 1

450 : Blocked by Windows Parental Controls

450 : extension du contrˆ ole parental de Microsoft

(29)

29 / 1

500 : Internal server error

500 : erreur cˆ ot´ e serveur

(30)

30 / 1

599 : Network connect timeout error

599 : timeout cˆ ot´ e serveur (proxy)

(31)

31 / 1

Le type MIME

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´ e de transmettre des langages bas´ es sur l’alphabet Latin n´ ecessitant des caract` eres sp´ eciaux

Impossibilit´ e de transmettre des langages bas´ es sur un autre alphabet Impossibilit´ e de transmettre autre chose que du texte

Utiliser un type MIME permet d’encode autre chose dans le corps ou dans l’en-tˆ ete d’un mail

Par extension, dans toute communication bas´ ee sur ASCII

(32)

32 / 1

MIME : exemple dans un mail

En-tˆ ete

On sp´ ecifie 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´ eparation entre les ´ el´ ements

Utilisation d’un s´ eparateur quand le type change

---Boundary-00= JXS9LVC0000000000000--

Chaque ´ el´ ement est transmis comme une partie du mail

(33)

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´ ee, on repasse ` a du texte

---Boundary-00= JXS9LVC0000000000000 Content-Type: Text/Plain;

charset="ISO-8859-1"

Content-Transfer-Encoding: quoted-printable

HTML (pouvant ˆ etre interprˆ et´ e par le client mail) ---Boundary-00= JXS9LVC0000000000000 Content-Type: Text/HTML;

charset="ISO-8859-1"

Content-Transfer-Encoding: quoted-printable

(34)

34 / 1

(35)

35 / 1

Serveur Web

Fonctionnement

Le serveur Web ´ ecoute sur un port (g´ en´ eralement 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´ econnecte

Exemples

Open source : Apache HTTP Server (Apache), Tomcat, Jigsaw...

Propri´ etaire : 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

(36)

36 / 1

Adressage des documents

Notion d’URL (Universal Ressource Locator) Permet d’identifier

Le serveur sur lequel se situe le document Le document lui-mˆ eme

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´ epertoires du serveur Web)

ex : /iutv/reseaux telecommunications.php L’URL de ce document est alors :

www.iutv.univ-paris13.fr/iutv/reseaux telecommunications.php

(37)

37 / 1

Client Web

Fonctionnement

Envoi des requˆ etes aux serveurs Interpr´ etation des URL

R´ esolution DNS, localisation du serveur Mise en forme des requˆ etes HTTP

Interpr´ etation des r´ eponses Affichage des documents

Interpr´ etation de l’HTML Ex´ ecution des scripts cˆ ot´ e client

Conformation aux standards v´ erifi´ ee par les tests Acid Si le document contient d’autres parties (images, etc)

Emission de requˆ ´ etes pour les obtenir

Exemples

FireFox, Fennec, Opera, Chrome, Safari, Konqueror, Internet Explorer...

(38)

38 / 1

Applications Web

Types d’applications Applications cˆ ot´ e serveur

Le serveur fait le calcul

Sa r´ eponse d´ epend de ce qu’il a calcul´ e Envoi de code HTML

Exemple : PHP Applications cˆ ot´ e client

Le client fait le calcul

Exemple : Javascript, applet Java...

Comparatif Confidentialit´ e

Applications cˆ ot´ e serveur : le code ex´ ecut´ e est invisible du client Charge

Applications cˆ ot´ e serveur : le client fait le travail, pas le serveuur

(39)

39 / 1

Illustation

Requˆ ete simple

Exemple : affichage d’une page

Client Serveur

Requête

Réponse

Application serveur

Exemple : interrogation d’une base de donn´ ees

Client Serveur

Requête

Réponse Base de

données Interprétation de la requête

Interrogation de la BD

Réponse

(40)

40 / 1

De l’affichage de documents aux applications distribu´ ees

Limites du mod` ele

Le client est toujours ` a l’initiative de l’´ echange Pas de push du serveur vers le client Pas de notifications d’´ ev` enements

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´ ee ` a la fin de l’´ echange Le flux est coup´ e

HTML5 : WebSockets

Applets Java : connexion vers un servlet situ´ e sur la machine serveur

Applications d´ eploy´ ees Soit centralis´ ees

tout se fait cˆ ot´ e serveur : BD, blog, diffusion de contenu...

Soit enti` erement cˆ ot´ e client

tout se fait cˆ ot´ e client : animations / jeux Flash, applets Java...

(41)

41 / 1

(42)

42 / 1

Serveur Apache HTTP

Pr´ esentation

Serveur le plus r´ epandu

Environ 72,5% de parts de march´ e (d´ ecembre 2008) Deuxi` eme : IIS, environ 18% (d´ ecembre 2008) Bien int´ egr´ e dans une combinaison open source

LAMP : Linux Apache MySQL PHP

Mais tr` es large compatibilit´ e avec d’autres technologies

Modularit´ e

Ajout de fonctionalit´ es par modules

Permet de proposer une tr` es large gamme de fonctionalit´ es

Sans forc´ ement les charger toutes (plus l´ eger, failles de s´ ecurit´ e...)

(43)

43 / 1

Configuration d’Apache

Fichiers de configuration

G´ en´ eralement 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´ eberg´ es

Possibilit´ e d’h´ eberger plusieurs sites sur un serveur sites-enabled/

sites-available/

D´ etermination : selon le port ou le nom d’hˆ ote

<VirtualHost *:80>

(44)

44 / 1

S´ ecurit´ e

Au niveau des communications

Possibilit´ e de crypter les communications avec SSL ou TLS

Permet d’´ eviter de faire passer des informations en clair (mots de passe, num´ eros de carte banquaire, de s´ ecurit´ e sociale...)

Utilisation d’un certificat sign´ e par une autorit´ e de certification Port 443 par d´ efaut

Protocole HTTPs

Restrictions d’acc` es

Utilisation d’un fichier .htaccess

D´ efinition de r` egles par r´ epertoire et pour les sous-r´ epertoires

Global (tout le serveur ou tout le site) ou local (un r´ epertoire donn´ e et ses sous-r´ epertoires)

D´ efinit les restrictions : par adresse IP du client, par type de ficheir,

authentification du client...

(45)

45 / 1

Traces et logs

Traces d’acc` es au serveur

Disponibles dans /var/log/apache2/

access.log : toutes les requˆ etes arriv´ ees 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´ e de mettre en place une trace par Virtual Host

PID du serveur Apache : /var/run/apache2.pid

(46)

46 / 1

Fichiers sur le serveur

Site principal

Localisation d´ efinie dans la configuration du serveur ou du virtual host /etc/apache2/sites-available/default: DocumentRoot /var/www

Comptes utilisateurs

Localisation dans un r´ epertoire particulier du r´ epertoire utilisateur,

g´ en´ eralement

e

/public html ou

e

/WWW (d´ efini dans la configuration du serveur ou du virtual host)

/etc/apache2/mods-available/userdir.conf: UserDir public html

Droits d’acc` es

Le serveur tourne g´ en´ eralement sous un utilisateur particulier : www-data, apache, root (peu s´ ecuris´ e donc peu fr´ equent)...

Les fichiers doivent ˆ etre lisibles par cet utilisateur

Les r´ epertoires doivent ˆ etre traversables par cet utilisateur

Les scripts doivent ˆ etre ex´ ecutables par cet utilisateur

Références

Documents relatifs

— http://SERVEUR/cgi-bin/ : répertoire d’exécution des scripts CGI pointant vers /usr/lib/cgi-bin/ ; Ce serveur est également configuré pour exécuter les scripts PHP

IRTC plus élevée :. IDF/région Nord et

Affecter le badge à un utilisateur existant dans la liste, puis cliquer sur “Attribuer” ou cliquer sur “+” pour créer et attribuer le badge à un nouvel utilisateur..

Sphère Publique 34, avenue de Messine 75008

Service public 32, rue de Babylone 75007 Paris Tél.: 014275 88 23 Fax: 0142755225. Directeur de

Enfin le partenariat avec les organisations locales pour la maintenance des infrastructures sera acté. Ce dernier volet concernera, surtout, l’occupation anarchique

CERPAD dispose d’un Laboratoire avec un équipement performant pour : séparation des composants des globules, numération, mesure des composés chimiques et détection des anomalies..

Dans  apache  1,  le  fichier  de  configuration  principal  du  serveur est  /etc/httpd/conf/httpd.conf.  Il  est  conservé  vide  dans Apache2 pour  assurer