Friday, December 12, 2008

Introduzione ad HTTP

Sto tenendo un corso di informatica di base internamente alla mia azienda, particolarmente orientato al mondo internet, così ho pensato di condividere un po' di materiale.

In questo post parlerò brevemente della nascita del protocollo HTTP, attraverso il quale dialogano ogni giorno tutti i browser e i server web del mondo, e indicherò qualche risorsa che ho letto a riguardo e che ho trovato interessante.

Nascita di HTTP
La sigla HTTP sta per Hyper Text Transfer Protocol. Il suo nome è molto esplicativo: un protocollo per lo scambio di documenti ipertestuali.

L'idea originaria è di Tim Berners Lee, a quei tempi ricercatore al CERN, e consisteva in un insieme di tecnologie (computer, reti, protocolli di comunicazione, e un linguaggio per gli ipertesti) che supportasse la creazione di una rete interconnessa di documenti scientifici.

In questo modo i ricercatori di tutto il mondo avrebbero avuto la possibilità di pubblicare le proprie ricerche sotto forma di ipertesti, cioè documenti arricchiti di "citazioni" (link) ad altri documenti residenti in qualsiasi altro nodo della rete. Questa rete interconnessa di documentazione avrebbe rappresentato la conoscenza scientifica in maniera molto simile a come esiste nel mondo reale, e ne avrebbe facilitato enormemente la consultazione. (consiglio la lettura de "L'architettura del nuovo Web", di Tim Berners Lee, editore Feltrinelli)

I principi architetturali della comunicazione in questo contesto si trovano in un lavoro del 2000 di Roy Fielding: Architectural Styles and the Design of Network-based Software Architectures

Le specifiche originali di HTTP si trovano in:
Hypertext Transfer Protocol -- HTTP/1.0
Hypertext Transfer Protocol -- HTTP/1.1

La versione in uso attualmente è HTTP/1.1

Con il passare del tempo è venuto spontaneo di aggiungere come risorsa disponibile in rete, oltre alla documentazione pura e semplice , anche dei veri e propri servizi/applicazioni il cui output venisse comunque generalmente prodotto sotto forma di ipertesto.

Dato che originariamente non era stato previsto che un utente potesse interagire con un nodo della rete in maniera più articolata di una semplice richiesta di un documento, la specifica di base di HTTP è stata integrata con caratteristiche utili a mantenere uno stato dell'interazione tra un client e un server. La specifica di tali caratteristiche si trova in:
HTTP State Management Mechanism

No comments: