mercoledì 25 settembre 2013

HyperText Transfer Protocol

La prima specifica, gestita dal W3C (Worl Wide WebConsortium)risale alla fine degli anni 80, insieme ad essa le specifiche di HTML e URL costituiscono la base del WWW (World Wide Web). La prima versione effettivamente disponibile risale al 1991 (RFC 1945). Tale protocollo aveva alcuni difetti legati alla gestione dei server, delle connessioni e della sicurezza. Esso fu migliorato nel 1997 (RFC 2068) e successivamente nel 1999 (RFC 2616).



Il protocollo http funziona sul modello di richiesta/risposta tra client e server. Nell'uso comune il client corrisponde ad un browser ed il server al sito web.
Il protocollo http chiude la connessione ogni volta che la richiesta viene soddisfatta. In questo modo ogni volta che si clicca un collegamento (hyperlink) vengono liberate le risorse su la pagina/server iniziale per occuparle sul destinatario, ciò permette di avere un minor carico di lavoro sia sul client che sul server. Tale modalità, però, crea dei problemi nella gestione degli utenti, problemi risolti con l’utilizzo dei cookie (piccoli file inviati dal server al client che possono essere richiesti dal server successivamente).
Il messaggio di richiesta è diviso in tre parti:
  • Riga di richiesta, generalmente, utilizza tre metodi:
    • GET utilizzato per ottenere il contenuto risorsa richiesta (per es. la pagina);
    • HEAD utilizzato per ottenere solo i metadati del contenuto (per es. la data di modifica)
    • POST utilizzato per inviare informazioni al server (per es. la scelta di un menu)
  •  Informazioni aggiuntive (header), i più usati sono:
    • HOST: nome del server che ospita il sito;
    • USER AGENT: identificazione del browser (tipo, produttore, versione …)
  • Messaggio di richiesta (body)

Il messaggio di risposta  è diviso a sua volta in tre parti:
  • Riga di stato, riporta un codice numerico di tre cifre che indica lo stato:
    • 1nn messaggi informativi;
    • 2nn richiesta soddisfatta;
    • 3nn non esiste una risposta, ma la richiesta è corretta e viene indicato come ottenerla (redirection);
    • 4xx non esiste una risposta, la richiesta è sbagliata;
    • 5xx non esiste una risposta, problema interno del server.
  • Informazioni aggiuntive (header), i più usati sono:
    • Server: indica il tipo e la versione del server;
    • Tipo di contenuto: indica il tipo di contenuto restituito, gestiti da IANA (RFC1521) (html,pain, sml, immage …)
  • Contenuto della risposta (body)

Lo streaming di contenuti audio e video su http viene gestito come il download di un file. Sarà il client utilizzato a renderlo disponibile prima che esso sia terminato.
L’utilizzo di HTTP, come in tutti i casi ha i suoi pro ed i suoi contro:
  • PRO:
    • E’ un protocollo facile e stabile. Esistono numerose applicazioni server siano esse proprietarie che open source. Esistono Web Browser per quasi tutti i sistemi operativi esistenti.
    • Esistono Web Browser per quasi tutti i sistemi operativi esistenti.
    • Permette di trasferire e utilizzare immediatamente di contenuti multimedial.
    • Tutto il traffico HTTP nasce anonimo e in chiaro (non cifrato)
  • CONTRO:
    • In maniera nativa non supporta alcun tipo di crittografia. Per ovviare ciò è stato creato il protocollo HTTPS.
    • Il restart automatico delle trasmissioni non è disponibile.
    • Non supporta alcun tipo di compressione dei dati trasferiti.
    • Tutto il traffico HTTP nasce anonimo e in chiaro (non cifrato)