Curs nr. 08 - Protocolul HTTP.pdf

24
Cuprins Arhitectura general˘ a a motoarelor de c˘ autare Definit ¸ie Specificat ¸ii Discut ¸ii Bibliografie Reg˘ asirea Informat ¸iilor pe WEB Curs 08: Protocolul HTTP ¸ s.l. dr. ing. Alexandru ARCHIP [email protected] Facultatea de Automatic˘ si Calculatoare, Ia¸ si an universitar: 2014 – 2015 RIWeb 2014 – 2015/C08: Protocolul HTTP 1/ 24

Transcript of Curs nr. 08 - Protocolul HTTP.pdf

  • Cuprins Arhitectura generala a motoarelor de cautare Definitie Specificatii Discutii Bibliografie

    Regasirea Informatiilor pe WEBCurs 08: Protocolul HTTP

    s.l. dr. ing. Alexandru [email protected]

    Facultatea de Automatica si Calculatoare, Iasi

    an universitar: 2014 2015

    RIWeb 2014 2015/C08: Protocolul HTTP 1/ 24

  • Cuprins Arhitectura generala a motoarelor de cautare Definitie Specificatii Discutii Bibliografie

    Cuprins

    1 Arhitectura generala a motoarelor de cautareMotor de cautare pe WEBRobot WEB

    2 DefinitieDefinitie, caracteristici

    3 SpecificatiiCerere HTTPMetode HTTPRaspuns HTTPCoduri de stare HTTP

    4 Discutii

    RIWeb 2014 2015/C08: Protocolul HTTP 2/ 24

  • Cuprins Arhitectura generala a motoarelor de cautare Definitie Specificatii Discutii Bibliografie

    Motor de cautare pe WEB

    Motor de cautare pe WEB

    Figura 1: Arhitectura generala a motoarelor de cautare pe WEB [7]

    RIWeb 2014 2015/C08: Protocolul HTTP 3/ 24

  • Cuprins Arhitectura generala a motoarelor de cautare 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 generala a motoarelor de cautare Definitie Specificatii Discutii Bibliografie

    Definitie, caracteristici

    Definitie

    HTTP HyperText 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 primulcoordonator 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 generala a motoarelor de cautare Definitie Specificatii Discutii Bibliografie

    Definitie, caracteristici

    Definitie (2)

    Caracteristici

    Nivel protocol (OSI) protocol de nivelaplicatie

    Protocol transport implicit TCP

    Port implicit 80

    Tip protocol fara stare (stateless)

    Schema de transfer Comunicatie de tipcerere/raspuns [2] Figura 3: Modelul cerere/raspuns aplicat n

    cadrul protocolului HTTP

    RIWeb 2014 2015/C08: Protocolul HTTP 6/ 24

  • Cuprins Arhitectura generala a motoarelor de cautare Definitie Specificatii Discutii Bibliografie

    Cerere HTTP

    Modelul cererii HTTP

    Linie de cerere

    METODA_HTTPresursa_doritaHTTP/VERSIUNE

    Header-e HTTP

    Header: valoare header

    Linie vida

    Caracterele

    Corpul mesajului

    Optional, este prezent n mod uzual daca cererea necesita parametrii optionali

    RIWeb 2014 2015/C08: Protocolul HTTP 7/ 24

  • Cuprins Arhitectura generala a motoarelor de cautare Definitie Specificatii Discutii Bibliografie

    Cerere HTTP

    Sintaxa unei cereri HTTP si exemplu

    Sintaxa cererii

    METODA_HTTPresursa_doritaHTTP/VERSIUNE

    Header-1: valoare header

    Header-2: valoare header

    ...

    Header-n: valoare header

    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 generala a motoarelor de cautare Definitie Specificatii Discutii Bibliografie

    Metode HTTP

    Metode HTTP

    Definitie

    Mod de identificare a actiunii dorite din partea serverului HTTP asupraresursei/documentului specificat n cerere.

    Sinonim: predicat HTTP

    Clasificari uzuale

    Metode sigure (SAFE) acele metode HTTP a caror actiune nseamna doarregasirea unei anumite resurse si, eventual, transferul acesteia catreclientul apelant

    Metode idempotente efectele unui set de cereri ce utilizeaza o metodaidempotenta sunt aceleasi, indiferent de numarul acelor cereri saude ordinea n care au fost generate acele cereri

    RIWeb 2014 2015/C08: Protocolul HTTP 9/ 24

  • Cuprins Arhitectura generala a motoarelor de cautare Definitie Specificatii Discutii Bibliografie

    Metode HTTP

    Metode HTTP (2)

    OPTIONS

    Metoda HTTP idempotenta, prin intermediul careia se obtine listareacompleta a optiunilor disponibile pentru cereri/raspunsuri asupra uneianumite 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, atuncitrebuie specificat n mod obligatoriu si header-ul Content-Type.

    O cerere OPTIONS poate interoga intreg serverul, nu numai o anumitaresursa. In acest caz, URI-ul indicat n cerere va specifica resursa *.

    In cazul entitatilor de tip proxy, se poate specifica suplimentar header-ulMax-Forwards.

    RIWeb 2014 2015/C08: Protocolul HTTP 10/ 24

  • Cuprins Arhitectura generala a motoarelor de cautare 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 generala a motoarelor de cautare Definitie Specificatii Discutii Bibliografie

    Metode HTTP

    Metode HTTP (4)

    GET

    Metoda HTTP sigura, idempotenta, prin intermediul careia se obtineinformatia 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, GETpartial.

    HEAD

    Metoda HTTP echivalenta metodei GET, cu deosebirea ca NU returneazainformatia 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 generala a motoarelor de cautare Definitie Specificatii Discutii Bibliografie

    Metode HTTP

    Metode HTTP (5)

    POST

    Metoda HTTP prin intermediul careia se cere, n mod uzual, unui serverWEB sa ataseze resursei indicate prin URI corpul transmis de catre client.

    Raspunsurile unei astfel de cereri NU pot fi stocate n cache fara header-eHTTP suplimentare (Cache-Control sau Expires).

    PUT

    Metoda HTTP prin intermediul careia se cere stocarea informatiilor prezenten corpul mesajului n cadrul resursei identificate de URI-ul transmis de client.

    DELETE

    Metoda HTTP prin intermediul careia se cere stergerea resursei identificatede URI-ul transmis.

    RIWeb 2014 2015/C08: Protocolul HTTP 13/ 24

  • Cuprins Arhitectura generala a motoarelor de cautare Definitie Specificatii Discutii Bibliografie

    Metode HTTP

    Metode HTTP (6)

    TRACE

    Metoda HTTP prin intermediul careia se cere invocarea unei aplicatii de tiploop-back.

    Destinatarul final al unei astfel de cereri ar trebui sa returneze n corpulraspunsului cererea primita de la client.

    Destinatarul final al unei astfel de cereri poate fi fie serverul de origine alresursei, fie prima entitate de tip proxy/gateway ce primeste headerulMax-Forwards cu valoare 0.

    Cererile TRACE NU trebuie sa includa entitati.

    RIWeb 2014 2015/C08: Protocolul HTTP 14/ 24

  • Cuprins Arhitectura generala a motoarelor de cautare 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

    0

    RIWeb 2014 2015/C08: Protocolul HTTP 15/ 24

  • Cuprins Arhitectura generala a motoarelor de cautare Definitie Specificatii Discutii Bibliografie

    Raspuns HTTP

    Modelul raspunsului HTTP

    Linie de stare

    HTTP/VERSIUNEStatus-CodeReason-Phrase

    Header-e HTTP

    Header: valoare header

    Linie vida

    Caracterele

    Corpul mesajului

    Optional, este prezent dependent de tipul cerererii.

    RIWeb 2014 2015/C08: Protocolul HTTP 16/ 24

  • Cuprins Arhitectura generala a motoarelor de cautare Definitie Specificatii Discutii Bibliografie

    Raspuns HTTP

    Sintaxa raspunsului

    HTTP/VERSIUNEStatus-CodeReason-Phrase

    Header-1: valoare header

    Header-2: valoare header

    ...

    Header-n: valoare header

    Corp r\u{a}spuns

    RIWeb 2014 2015/C08: Protocolul HTTP 17/ 24

  • Cuprins Arhitectura generala a motoarelor de cautare Definitie Specificatii Discutii Bibliografie

    Raspuns 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

    405 Method Not Allowed

    Method Not Allowed

    The requested method TRACE is not allowed for the URL /.

    RIWeb 2014 2015/C08: Protocolul HTTP 18/ 24

  • Cuprins Arhitectura generala a motoarelor de cautare Definitie Specificatii Discutii Bibliografie

    Coduri de stare HTTP

    Coduri de stare HTTP

    Coduri 1xx INFORMATII

    NU exista n cadrul versiunii HTTP/1.0 sau mai mic.

    100 Continue: Serverul a primit header-ele corespunzatoare unei cerericlient, iar acesta din urma ar trebui sa transmita corpul cererii n cauza.Clientul trebuie sa includa header-ul Expect: 100-Continue n cererea sainitiala.

    101 Switching-Protocols: Clientul a cerut schimbarea protocolului, acestraspuns avand semnificatie de acknowledge din partea serverului.

    102 Processing: Acest raspuns indica pentru client faptul ca server-ul aprimit cererea, dar raspunsul NU este formulat nca.

    RIWeb 2014 2015/C08: Protocolul HTTP 19/ 24

  • Cuprins Arhitectura generala a motoarelor de cautare 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 caraspunsul a fost creat sub forma unei resurse noi.

    202 Accepted: cererea a fost acceptata spre procesare, dar procesarearaspunsului NU s-a incheiat.

    203 Non Authoritative Information (HTTP/1.1): cererea a fost procesatacu succes, dar informatia rezultat a fost/poate fi preluata dintr-o resursa cenu apartine serverului.

    206 Partial Content: cererea a fost procesata cu succes, dar serverulreturneaza doar un continut partial, ca urmare a header-ului Range inclus declient.

    RIWeb 2014 2015/C08: Protocolul HTTP 20/ 24

  • Cuprins Arhitectura generala a motoarelor de cautare 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 trebuiesa 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 fiprocesata.

    404 Not Found: resursa specificata n cerere nu poate fi gasita.

    405 Not Allowed: cererea a fost realizata utilizand o metoda interzisapentru resursa indicata.

    RIWeb 2014 2015/C08: Protocolul HTTP 21/ 24

  • Cuprins Arhitectura generala a motoarelor de cautare 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 nupoate procesa o cerere aparent valida.

    500 Internal Server Error: cod de eroare generic.

    501 Not Implemented: serverul fie nu recunoaste metoda indicata ncerere, fie nu poate utiliza metoda n cauza.

    503 Service Unavailable: serverul este temporar indisponibil.

    505 HTTP Version Not Supported: serverul nu raspunde pentru versiuneaprotocolului indicata n cerere.

    RIWeb 2014 2015/C08: Protocolul HTTP 22/ 24

  • Cuprins Arhitectura generala a motoarelor de cautare Definitie Specificatii Discutii Bibliografie

    Discutii

    1 Care sunt etapele implicate de analiza corecta a unui raspuns HTTP pentru aprelua un document HTML?

    2 Cum preluam o resursa WEB utilizand un proxy?

    RIWeb 2014 2015/C08: Protocolul HTTP 23/ 24

  • Cuprins Arhitectura generala a motoarelor de cautare Definitie Specificatii Discutii Bibliografie

    Bibliografie

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

    2 The HTTP protocol @ kioskea

    3 Hypertext Transfer Protocol From Wikipedia, the free encyclopedia

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

    5 List of HTTP header fields From Wikipedia, the free encyclopedia

    6 List of HTTP status codes From Wikipedia, the free encyclopedia

    7 Christopher D. Manning, Prabhakar Raghavan and Hinrich Schutze,Introduction to Information Retrieval, Cambridge University Press. 2008

    RIWeb 2014 2015/C08: Protocolul HTTP 24/ 24

    Arhitectura generala a motoarelor de cautareMotor de cautare pe WEBRobot WEB

    DefinitieDefinitie, caracteristici

    SpecificatiiCerere HTTPMetode HTTPRaspuns HTTPCoduri de stare HTTP

    Discutii