Utente:Anotherhacktivist/sand

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca


HTTP è l'acronimo di HyperText Transfer Protocol (protocollo di trasferimento di un ipertesto). Usato come principale sistema per la trasmissione di informazioni sul web. Le specifiche del protocollo sono attualmente in carica al W3C (World Wide Web Consortium)

La prima versione dell'HTTP risale al 1945 ed frutto degli studi di Vannervar Bush. Venne pensato per la gestione in rete dei documenti HTML. L'HTTP funziona su un mecchanismo richiesta/risposta: il client esegue una richiesta ed il server restituisce la risposta. Nell'uso comune il client corrisponde al browser ed il server al sito web. Vi sono quindi tue tipi di messaggi HTTP: messaggi richiesta e messaggi risposta.

HTTP differisce da altri protocolli di livello 5 come FTP, per il fatto che le connessioni vengono generalmente chiuse una volta che una particolare richiesta (o una serie di richieste correlate) è stata soddisfatta. Questo comportamento rende il protocollo HTTP ideale per il World Wide Web, in cui le pagine molto spesso contengono dei collegamenti (link) a pagine ospitate da altri server. Talvolta però pone problemi agli sviluppatori di contenuti web, perchè la natura senza stato (stateless) costringe ad utilizzare dei metodi alternativi per conservare lo stato dell'utente. Spesso questi metodi si basano sull'uso dei cookie .

Esiste anche una versione sicura del protocollo HTTP chiamata HTTPS, usa vari sistemi di crittografia per rendere la comunicazione comprensibile solo a client e server.

Le versioni attualmente in uso dell'HTTP sono la 1.0 e la 1.1.

Messagio di richiesta[modifica | modifica wikitesto]

Il messaggio richiesta è composto di tre parti:

  • Linea di richiesta (request line)
  • Sezione Header (informazioni aggiuntive)
  • Body (corpo del messaggio)

Linea di richiesta[modifica | modifica wikitesto]

La linea di richiesta è composta dal metodo, URI e versione del protocollo. Il metodo di richiesta può essere uno dei seguenti

  • GET
  • POST
  • HEADER
  • PUT
  • DELETE
  • TRACE
  • CONNECT

l'URI sta per Uniform Resource Identifier ed indica l'oggetto della richiesta (ad esempio la pagina web che si intende ottenere)

I metodi HTTP più comuni sono GET e POST. Il metodo GET è usato per ottenere il contenuto della risorsa indicata come URI (come può essere il contenuto di una pagina HTML ). Una richiesta con metodo GET non prevede l'uso del body

Il metodo POST è usato di norma per inviare informazioni al server (ad esempio i dati di un form) In questo caso l'URI indica che cosa si sta inviando e il body ne indica il contenuto.

Gli header della richiesta[modifica | modifica wikitesto]

Gli header di richiesta più comuni sono:

Host. Nome del server a cui si riferisce l'URI).

User-Agent. Identificazione del tipo di client: tipo browser, marca, versione ecc.)

Messaggio di risposta[modifica | modifica wikitesto]

Il messaggio di risposta è composto dalle seguenti tre parti:

  • Linea di stato (status-line)
  • Sezione header
  • Body (contenuto della risposta)

Linea di stato[modifica | modifica wikitesto]

La linea di stato riporta un codice a tre cifre catalogato nel seguento modo:

1xx : Informational 2xx: Success 3xx: Redirection 4xx: Client error 5xx: Server error

Nel caso più comune il server risponde con un codice 200 (OK) e fornisce contentuto nella sezione body. Altri casi comuni sono:

302 Found. La risorsa è raggoiungibile con un altro URI indicato nel header Locaion. Di norma i browser eseguono la richiesta all'URI indicato in modo automatico senza interazione dell'utente.

404 Not Found. La risorsa richiesta non è stata trovata e non se ne conosce l'ubicazione. Di solito avviene quando l'URI è indicato in modo incorretto od è stato il contenuto dal server.

500 Internal Server Error. Il server non è in grado di risolvere la richiesta per un suo problema interno.

Gli header della risposta[modifica | modifica wikitesto]

Gli header della risposta più comuni sono:

  • Server. Indica il tipo la marca , la versione del server. Un po' l'equivalente dell'header di richiesta User-Agent
  • Content-Type. Indica il tipo di contenuto restituito. La codifica di tali tipi (detti Media type) sono registrati presso IANA (Internet Assigned Number Authority ) e sono detti tipi MIME (Multimedia Internet Message Extensions), la loro codifica è descritta nel documento RFC 1521. I principali sono:
    • text/html. Documento HTML)
    • text/plaintext. Documento di testo non formattato)
    • image/jpeg.Immagine di fromato JPEG

Esempi di messaggi HTTP[modifica | modifica wikitesto]

Richiesta:

GET /wiki/Pagina_principale HTTP/1.1 
Connection: Keep-Alive
User-Agent: Mozilla/5.0 (compatible; Konqueror/3.2; Linux) (KHTML, like Gecko)
Accept: text/html, image/jpeg, image/png, text/*, image/*, */*
Accept-Encoding: x-gzip, x-deflate, gzip, deflate, identity
Accept-Charset: iso-8859-1, utf-8;q=0.5, *;q=0.5 
Accept-Language: en
Host: it.wikipedia.org

Risposta:

HTTP/1.0 200 OK
Date: Mon, 28 Jun 2004 10:47:31 GMT
Server: Apache/1.3.29 (Unix) PHP/4.3.4
X-Powered-By: PHP/4.3.4
Vary: Accept-Encoding,Cookie
Cache-Control: private, s-maxage=0, max-age=0, must-revalidate
Content-Language: it
Content-Type: text/html; charset=utf-8
Age: 7673
X-Cache: HIT from wikipedia.org
Connection: close
  
<HTML>
[ ...] 

Riferimenti[modifica | modifica wikitesto]