• Aucun résultat trouvé

The HTTP protocol

N/A
N/A
Protected

Academic year: 2022

Partager "The HTTP protocol"

Copied!
16
0
0

Texte intégral

(1)

The HTTP protocol

(2)

Encodage

Qu’est-ce qu’un byte? Qu’est-ce qu’un caract `ere?

Repr ´esenter une s ´equence de caract `eres par une s ´equence de bytes Repr ´esenter une structure arborescente par une s ´equence de

caract `eres

Repr ´esenter un document par une structure arborescente

(3)

La vie d’une requ ˆete

http:// { host } / { rest }

1. Contacter le serveur DNS pour obtenir l’adresse IP de

{ host }

2. Se connecter (par TCP/IP) `a cette adresse IP 3. Envoyer la requ ˆete:

GET /{rest} HTTP/1.1 Host: {host}

4. Recevoir une r ´eponse, telle que

HTTP/1.0 200 OK

Content-Type: text/html

(4)

DNS - Domain Name Service

Syst `eme distribu ´e mondial Table associative hi ´erarchique

serveurs racines responsables du domaine

.

Autres serveurs responsables de

.ca.

, puis de

.umontreal.ca.

Usage de r ´eplication et de “caches” pour supporter la charge Plusieurs infos par nom (A, AAAA, MX, NS, ...)

Un nom peut correspondre `a un autre nom ou une liste d’adresses IP

(5)

Requ ˆetes qui viennent de FORM

GET / { rest } ? { params } HTTP/1.1

Requ ˆetes en lecture seulement!

Les param `etres ont la forme:

{ params }

=

{ key1 } = { val1 } & { key2 } = { val2 } ...

Encodage d’une table associative en un s ´equence de bytes Le

Host: { host }

est une autre table associative

(6)

Requ ˆetes POST

Pour les cas o `u on veut avoir un effet sur le serveur

POST /{rest} HTTP/1.1

Host: {host}

Content-Type: {type}

{content}

Pas de limite de taille

Contenu pas visible dans votre browser ou votre historique Browser sait qu’il ne faut pas le renvoyer!

Type populaires:

application/x-www-form-urlencoded

et

multipart/form-data

(7)

HTTPS

HTTP trafic est librement lisible en chemin

HTTPS utilise la cryptographie pour cacher l’information en transit Un serveur HTTP peut en cacher un autre

HTTPS utilise la cryptographie pour authentifier le serveur Protocol TLS Transport Layer Security:

authentification et ´etablissement de cl ´e Attaques MITM

(8)

Cookies

Rec¸us dans les r ´eponses HTTP via:

Set-Cookie: {key}={value}; {attributs}

Renvoy ´es par

Cookie: {key1}={value1}; {key2}={value2}; ...

lors des envois suivants

Attributs:

Expires

,

Domain

,

Secure

,

Path

(9)

Formulaires

La base de l’interaction en “Web 1.0”

Utilis ´es pour:

Sp ´ecifier une requ ˆete de recherche d’information

Fournir une interactivit ´e

Envoyer de l’information `a un serveur Types de formulaires:

Recherche, commande, inscription, ajout `a un panier, sondage, menu, login, ...

(10)

El ´ement ´ FORM

Regroupe et organise des ´el ´ements d’entr ´ee Attributs:

action

: Indique la destination de la requ ˆete, sous forme d’URL

method

: Sp ´ecifie le type de requ ˆete.

GET

: requ ˆete en lecture seulement

POST

: envoi d’information qui affecte l’ ´etat du serveur

(11)

El ´ements d’entr ´ee ´

Attribut

name

, unique (par formulaire), utilis ´e comme nom d’argument Beaucoup de types diff ´erents:

Boˆıtes de textes:

input

avec

type="text"

Boutons:

input

avec

type="button"

Check box:

input

avec

type="checkbox"

Listes d ´eroulantes:

select+option

Grosses boˆıtes de texte:

textarea

(12)

Exemple de formulaire

<form method="get">

<input type="hidden" name="rep"

value="bugit" />

Show issue:

<input type="text" name="issue"

placeholder="{number or name}" />

</form>

Envoie une requ ˆete de la forme:

GET / { script } ?rep=bugit&issue= { mytext } HTTP/1.1 Host: { host }

Pas de bouton “submit”, mais

RET

dans le texte envoie le formulaire

(13)

Exemple (suite)

attribut

action=" { URL } "

utilise la m ˆeme “page” par d ´efault Peut r ´esulter en une requ ˆete telle que

GET /{script}?rep=bugit&issue=h%26%23215 HTTP/1.1

Host: {host}

(14)

Common Gateway Interface

Standard original pour g ´en ´erer des pages dynamiquement

Chaque requ ˆete

http:// { host } / { script } ? { args }

ex ´ecute le programme

{ script }

Le programme rec¸oit une description de la requ ˆete dans son environnement

Le programme renvoie la r ´eponse

au format attendu par HTTP ou presque

(15)

CGI environnement

REQUEST METHOD

indique si c’est un

GET

ou

POST QUERY STRING

contient les arguments

SCRIPT NAME

contient le

/ { script } HTTP HOST

contient le nom d’h ˆote utilis ´e

HTTP USER AGENT

contient le nom du browser ...

(16)

CGI output

Format de sortie du protocole HTTP sauf:

Pas de premi `ere ligne genre

HTTP/1.0 200 OK

A la place:`

Status:

Et

Location:

Références

Documents relatifs

Même en tenant compte du décalage concernant l’âge de départ (dès 55 ans pour les cheminots, 60 ans pour les salariés du secteur privé), l’écart entre la durée

A l'oral, le bilinguisme biennois se fonde donc plutôt sur le français et le dialecte et la présence de francophones ne suscite pas l'emploi plus fréquent de l'allemand

1 – (A and B) In-situ hybridization of mRNA for Necab-1 and Gad1: Necab-1 positive cells are located within the stratum lacunosum moleculare, the stratum radiatum and the stratum

Pas plus que face aux fonds vautours, le droit ne protège pour l’heure les pays en développement face à leurs autres créanciers, quand bien même le remboursement de la dette

  Introduction: Présentation HTTP;.   Installation et

u’m), c’est pourtant l’occupation à laquelle il sera réduit. Devant ce genre d’humiliation, Il est à signaler d’abord que Tawḥīdī n’a jamais manifesté

Se mettre en contact avec son ressenti, c'est pouvoir saisir le sens caché derrière l'apparence, se libérer des influences négatives et fonder l'historicité du sujet, sa capacité à

Cette observation illustre la complexité de la prise en charge tardive du VIH, avec la coexistence d’une histoplasmose disséminée acquise en Haïti (2) et d’une