Sunteți pe pagina 1din 24

Cuprins

Arhitectura general
a a motoarelor de c
autare

Definitie

Specificatii

Discutii

Bibliografie

Regasirea Informatiilor pe WEB


Curs 08: Protocolul HTTP

s.l. dr. ing. Alexandru ARCHIP


alexandru.archip@cs.tuiasi.ro
Facultatea de Automatic
a si Calculatoare, Iasi

an universitar: 2014 2015

RIWeb 2014 2015/C08: Protocolul HTTP

1/ 24

Cuprins

Arhitectura general
a a motoarelor de c
autare

Definitie

Specificatii

Discutii

Bibliografie

Cuprins
1

Arhitectura generala a motoarelor de cautare


Motor de cautare pe WEB
Robot WEB

Definitie
Definitie, caracteristici

Specificatii
Cerere HTTP
Metode HTTP
Raspuns HTTP
Coduri de stare HTTP

Discutii

RIWeb 2014 2015/C08: Protocolul HTTP

2/ 24

Cuprins

Arhitectura general
a a motoarelor de c
autare

Definitie

Specificatii

Discutii

Bibliografie

Motor de c
autare pe WEB

Motor de cautare pe WEB

Figura 1: Arhitectura general


a a motoarelor de c
autare pe WEB [7]

RIWeb 2014 2015/C08: Protocolul HTTP

3/ 24

Cuprins

Arhitectura general
a a motoarelor de c
autare

Definitie

Specificatii

Discutii

Bibliografie

Robot WEB

Arhitectura unui robot WEB

Figura 2: Componentele unui robot WEB [7]

RIWeb 2014 2015/C08: Protocolul HTTP

4/ 24

Cuprins

Arhitectura general
a a motoarelor de c
autare

Definitie

Specificatii

Discutii

Bibliografie

Definitie, caracteristici

Definitie

HTTP Hyper Text Transfer Protocol


Protocol ce guverneaza schimbul de date n cadrul Word Wide Web
Reprezinta o standardizare a modelului cerere/raspuns
Conform [1]: Tim Berners-Lee (ntre 1989 si 1991) este considerat primul
coordonator al unei echipe de cercetare axate pe dezvoltarea HTTP.
Primele specificatii dateaza din anul 1945, fiind propuse de Vannevar Bush
Versiuni HTTP
HTTP 1.0 mai 1996
HTTP 1.1 1997 1999
HTTP 1.2 februarie 2000

RIWeb 2014 2015/C08: Protocolul HTTP

5/ 24

Cuprins

Arhitectura general
a a motoarelor de c
autare

Definitie

Specificatii

Discutii

Bibliografie

Definitie, caracteristici

Definitie (2)

Caracteristici
Nivel protocol (OSI) protocol de nivel
aplicatie
Protocol transport implicit TCP
Port implicit 80
Tip protocol fara stare (stateless)
Schema de transfer Comunicatie de tip
cerere/raspuns [2]

RIWeb 2014 2015/C08: Protocolul HTTP

Figura 3: Modelul cerere/r


aspuns aplicat n
cadrul protocolului HTTP

6/ 24

Cuprins

Arhitectura general
a a motoarelor de c
autare

Definitie

Specificatii

Discutii

Bibliografie

Cerere HTTP

Modelul cererii HTTP

Linie de cerere
METODA_HTTP<SP>resursa_dorita<SP>HTTP/VERSIUNE<CR><LF>
Header-e HTTP
Header: valoare header<CR><LF>
Linie vida
Caracterele <CR><LF>
Corpul mesajului
Optional, este prezent n mod uzual daca cererea necesita parametrii optionali

RIWeb 2014 2015/C08: Protocolul HTTP

7/ 24

Cuprins

Arhitectura general
a a motoarelor de c
autare

Definitie

Specificatii

Discutii

Bibliografie

Cerere HTTP

Sintaxa unei cereri HTTP si exemplu


Sintaxa cererii
METODA_HTTP<SP>resursa_dorita<SP>HTTP/VERSIUNE<CR><LF>
Header-1: valoare header<CR><LF>
Header-2: valoare header<CR><LF>
...
Header-n: valoare header<CR><LF>
<CR><LF>
Corp cerere

Model cerere
GET http://en.kioskea.net/ HTTP/1.0
Accept: text/html
If-Modified-Since: Saturday, 15-January-2000 14:37:11 GMT
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 95)
RIWeb 2014 2015/C08: Protocolul HTTP

8/ 24

Cuprins

Arhitectura general
a a motoarelor de c
autare

Definitie

Specificatii

Discutii

Bibliografie

Metode HTTP

Metode HTTP
Definitie
Mod de identificare a actiunii dorite din partea serverului HTTP asupra
resursei/documentului specificat n cerere.
Sinonim: predicat HTTP
Clasificari uzuale
Metode sigure (SAFE) acele metode HTTP a caror actiune nseamna doar
regasirea unei anumite resurse si, eventual, transferul acesteia catre
clientul apelant
Metode idempotente efectele unui set de cereri ce utilizeaza o metoda
idempotenta sunt aceleasi, indiferent de numarul acelor cereri sau
de ordinea n care au fost generate acele cereri

RIWeb 2014 2015/C08: Protocolul HTTP

9/ 24

Cuprins

Arhitectura general
a a motoarelor de c
autare

Definitie

Specificatii

Discutii

Bibliografie

Metode HTTP

Metode HTTP (2)

OPTIONS
Metoda HTTP idempotenta, prin intermediul careia se obtine listarea
completa a optiunilor disponibile pentru cereri/raspunsuri asupra unei
anumite resurse.
Raspunsurile oferite pentru acest tip de interogare NU pot fi stocate n cache.
In cazul n care cererea OPTIONS include un header de tip entitate, atunci
trebuie specificat n mod obligatoriu si header-ul Content-Type.
O cerere OPTIONS poate interoga intreg serverul, nu numai o anumita
resursa. In acest caz, URI-ul indicat n cerere va specifica resursa *.
In cazul entitatilor de tip proxy, se poate specifica suplimentar header-ul
Max-Forwards.

RIWeb 2014 2015/C08: Protocolul HTTP

10/ 24

Cuprins

Arhitectura general
a a motoarelor de c
autare

Definitie

Specificatii

Discutii

Bibliografie

Metode HTTP

Metode HTTP (3)

Exemplu de apel OPTIONS


OPTIONS * HTTP/1.1
Host: 192.168.243.80
HTTP/1.1 200 OK
Date: Sun, 24 Oct 2010 18:57:00 GMT
Server: Apache/2.2.3 (CentOS)
Allow: GET,HEAD,POST,OPTIONS,TRACE
Content-Length: 0
Connection: close
Content-Type: text/plain; charset=UTF-8

RIWeb 2014 2015/C08: Protocolul HTTP

11/ 24

Cuprins

Arhitectura general
a a motoarelor de c
autare

Definitie

Specificatii

Discutii

Bibliografie

Metode HTTP

Metode HTTP (4)

GET
Metoda HTTP sigura, idempotenta, prin intermediul careia se obtine
informatia identificata de URI-ul specificat de client.
Raspunsurile oferite pentru acest tip de interogare pot fi stocate n cache.
O cerere GET poate fi realizata n mai multe forme: GET conditional, GET
partial.
HEAD
Metoda HTTP echivalenta metodei GET, cu deosebirea ca NU returneaza
informatia dorita de client, ci doar header-ul HTTP aferent resursei indicate.
Raspunsurile oferite pentru acest tip de interogare pot fi stocate n cache.

RIWeb 2014 2015/C08: Protocolul HTTP

12/ 24

Cuprins

Arhitectura general
a a motoarelor de c
autare

Definitie

Specificatii

Discutii

Bibliografie

Metode HTTP

Metode HTTP (5)


POST
Metoda HTTP prin intermediul careia se cere, n mod uzual, unui server
WEB sa ataseze resursei indicate prin URI corpul transmis de catre client.
Raspunsurile unei astfel de cereri NU pot fi stocate n cache f
ar
a header-e
HTTP suplimentare (Cache-Control sau Expires).
PUT
Metoda HTTP prin intermediul careia se cere stocarea informatiilor prezente
n corpul mesajului n cadrul resursei identificate de URI-ul transmis de client.
DELETE
Metoda HTTP prin intermediul careia se cere stergerea resursei identificate
de URI-ul transmis.

RIWeb 2014 2015/C08: Protocolul HTTP

13/ 24

Cuprins

Arhitectura general
a a motoarelor de c
autare

Definitie

Specificatii

Discutii

Bibliografie

Metode HTTP

Metode HTTP (6)

TRACE
Metoda HTTP prin intermediul careia se cere invocarea unei aplicatii de tip
loop-back.
Destinatarul final al unei astfel de cereri ar trebui sa returneze n corpul
raspunsului cererea primita de la client.
Destinatarul final al unei astfel de cereri poate fi fie serverul de origine al
resursei, fie prima entitate de tip proxy/gateway ce primeste headerul
Max-Forwards cu valoare 0.
Cererile TRACE NU trebuie sa includa entitati.

RIWeb 2014 2015/C08: Protocolul HTTP

14/ 24

Cuprins

Arhitectura general
a a motoarelor de c
autare

Definitie

Specificatii

Discutii

Bibliografie

Metode HTTP

Metode HTTP (7)


Exemplu de apel TRACE
TRACE /riw/index.html HTTP/1.1
Host: 192.168.243.80
HTTP/1.1 200 OK
Date: Sun, 24 Oct 2010 19:01:07 GMT
Server: Apache/2.2.3 (CentOS)
Connection: close
Transfer-Encoding: chunked
Content-Type: message/http
38
TRACE /riw/index.html HTTP/1.1
Host: 192.168.243.80

RIWeb 2014 2015/C08: Protocolul HTTP

15/ 24

Cuprins

Arhitectura general
a a motoarelor de c
autare

Definitie

Specificatii

Discutii

Bibliografie

R
aspuns HTTP

Modelul raspunsului HTTP

Linie de stare
HTTP/VERSIUNE<SP>Status-Code<SP>Reason-Phrase<CR><LF>
Header-e HTTP
Header: valoare header<CR><LF>
Linie vida
Caracterele <CR><LF>
Corpul mesajului
Optional, este prezent dependent de tipul cerererii.

RIWeb 2014 2015/C08: Protocolul HTTP

16/ 24

Cuprins

Arhitectura general
a a motoarelor de c
autare

Definitie

Specificatii

Discutii

Bibliografie

R
aspuns HTTP

Sintaxa raspunsului

HTTP/VERSIUNE<SP>Status-Code<SP>Reason-Phrase<CR><LF>
Header-1: valoare header<CR><LF>
Header-2: valoare header<CR><LF>
...
Header-n: valoare header<CR><LF>
<CR><LF>
Corp r\u{a}spuns

RIWeb 2014 2015/C08: Protocolul HTTP

17/ 24

Cuprins

Arhitectura general
a a motoarelor de c
autare

Definitie

Specificatii

Discutii

Bibliografie

R
aspuns HTTP

Exemplu de raspuns
HTTP/1.1 405 Method Not Allowed
Date: Mon, 19 Oct 2009 09:04:05 GMT
Server: Apache/2
Allow:
ContentLength: 223
Connection: close
ContentType: text/html; charset=iso88591
<!DOCTYPE HTML PUBLIC "//IETF//DTD HTML 2.0//EN">
<html><head><title>405 Method Not Allowed</title></head>
<body><h1>Method Not Allowed</h1>
<p>The requested method TRACE is not allowed for the URL /.</p>
</body></html>

RIWeb 2014 2015/C08: Protocolul HTTP

18/ 24

Cuprins

Arhitectura general
a a motoarelor de c
autare

Definitie

Specificatii

Discutii

Bibliografie

Coduri de stare HTTP

Coduri de stare HTTP

Coduri 1xx INFORMAT


II
NU exista n cadrul versiunii HTTP/1.0 sau mai mic.
100 Continue: Serverul a primit header-ele corespunzatoare unei cereri
client, iar acesta din urma ar trebui sa transmita corpul cererii n cauza.
Clientul trebuie sa includa header-ul Expect: 100-Continue n cererea sa
initiala.
101 Switching-Protocols: Clientul a cerut schimbarea protocolului, acest
raspuns avand semnificatie de acknowledge din partea serverului.
102 Processing: Acest raspuns indica pentru client faptul ca server-ul a
primit cererea, dar raspunsul NU este formulat nca.

RIWeb 2014 2015/C08: Protocolul HTTP

19/ 24

Cuprins

Arhitectura general
a a motoarelor de c
autare

Definitie

Specificatii

Discutii

Bibliografie

Coduri de stare HTTP

Coduri de stare HTTP (2)


Coduri 2xx SUCCES
200 OK: raspunsul standard, n caz de succes.
201 Created: cererea a fost tratata cu succes, rezultatul nsemnand ca
raspunsul a fost creat sub forma unei resurse noi.
202 Accepted: cererea a fost acceptata spre procesare, dar procesarea
raspunsului NU s-a incheiat.
203 Non Authoritative Information (HTTP/1.1): cererea a fost procesata
cu succes, dar informatia rezultat a fost/poate fi preluata dintr-o resursa ce
nu apartine serverului.
206 Partial Content: cererea a fost procesata cu succes, dar serverul
returneaza doar un continut partial, ca urmare a header-ului Range inclus de
client.

RIWeb 2014 2015/C08: Protocolul HTTP

20/ 24

Cuprins

Arhitectura general
a a motoarelor de c
autare

Definitie

Specificatii

Discutii

Bibliografie

Coduri de stare HTTP

Coduri de stare HTTP (3)

Coduri 3xx REDIRECTARE


Acest tip de coduri sunt n general ntalnite n cazurile n care clientul trebuie
sa realizeze un set suplimentar de actiuni pentru a prelua resursa dorita.
Coduri 4xx ERORI CLIENT
Cererea client fie contine erori de sintaxa, fie NU poate fi procesata.
400 Bad Request: sintaxa cererii este eronata, sau cererea nu poate fi
procesata.
404 Not Found: resursa specificata n cerere nu poate fi gasita.
405 Not Allowed: cererea a fost realizata utilizand o metoda interzisa
pentru resursa indicata.

RIWeb 2014 2015/C08: Protocolul HTTP

21/ 24

Cuprins

Arhitectura general
a a motoarelor de c
autare

Definitie

Specificatii

Discutii

Bibliografie

Coduri de stare HTTP

Coduri de stare HTTP (4)

Coduri 5xx ERORI SERVER


Acest tip de coduri de eroare indica, n mod uzual, faptul ca serverul nu
poate procesa o cerere aparent valida.
500 Internal Server Error: cod de eroare generic.
501 Not Implemented: serverul fie nu recunoaste metoda indicata n
cerere, fie nu poate utiliza metoda n cauza.
503 Service Unavailable: serverul este temporar indisponibil.
505 HTTP Version Not Supported: serverul nu raspunde pentru versiunea
protocolului indicata n cerere.

RIWeb 2014 2015/C08: Protocolul HTTP

22/ 24

Cuprins

Arhitectura general
a a motoarelor de c
autare

Definitie

Specificatii

Discutii

Bibliografie

Discutii

Care sunt etapele implicate de analiza corecta a unui raspuns HTTP pentru a
prelua un document HTML?
Cum preluam o resursa WEB utilizand un proxy?

RIWeb 2014 2015/C08: Protocolul HTTP

23/ 24

Cuprins

Arhitectura general
a a motoarelor de c
autare

Definitie

Specificatii

Discutii

Bibliografie

Bibliografie

The History of the Internet By Mary Bellis, About.com Guide

The HTTP protocol @ kioskea

Hypertext Transfer Protocol From Wikipedia, the free encyclopedia

Hypertext Transfer Protocol HTTP/1.1, RFC 2616 Fielding, et al.

List of HTTP header fields From Wikipedia, the free encyclopedia

List of HTTP status codes From Wikipedia, the free encyclopedia

Christopher D. Manning, Prabhakar Raghavan and Hinrich Sch


utze,
Introduction to Information Retrieval, Cambridge University Press. 2008

RIWeb 2014 2015/C08: Protocolul HTTP

24/ 24