Web e protocollo HTTP Flashcards
Internet e il Web
Internet:
- logicamente connesso attraverso uno spazio degli indirizzi unico e globale, basato su protocollo IP
- supporta comunicazione tramite la suite di protocolli TCP/IP
- fornisce, utilizza e rende accessibili servizi di alto livello
Web: è solo uno dei servizi supportati da Internet ed è un sistema di documenti in formato ipertestuale, messi in relazione tramite link e resi accessibili grazie a Internet
World Wide Web
L’idea nasce nel 1989 al CERN per realizzare un meccanismo per la diffusione rapida di articoli, appunti, opinioni ecc. (12 marzo 1989 Tim Berners-Lee).
Nasce davvero il 6 agosto 1991 quando Tim Berners Lee pubblica il primo sito web
Dal 1993 il CERN rese il WWW ad uso pubblico, accessibile a tutti e furono sviluppate tecnologie che permisero agli utenti:
- creazione di documenti ipertestuali
- messa a disposizione di questi documenti sul Web
- identificarli con un identificativo
- richiederli tramite protocollo di comunicazione
- visualizzarli su un computer
Identificare le risorse sul Web
Una risorsa sul web è dotata di un URL, un indirizzo, con cui è possibile accedervi.
- https → protocollo di comunicazione da usare per avere le informazioni della risorsa
- www.unimore.it → nome del server web che contiene le informazioni della risorsa
- /ateneo/DES.html → percorso della risorsa specifica
Browser
E’ un’applicazione software necessaria per poter navigare sul web. Consente di:
- inserire l’URL del sito che vogliamo visitare o raggiungerlo tramite link
- sfogliare avanti/indietro le pagine del sito web
- stampare il documento
- fare il download di file al server al nostro sito, a seconda del tipo di risorsa
Protocollo HTTP
E’ un protocollo di comunicazione per facilitare l’implementazione del web, basato su metodi di comunicazione di richiesta-risposta.
Sono nate delle estensioni (es. https che implementa un protocollo più sicuro sul web).
Coinvolge diverse entità:
- Client → agente che fa la richiesta (es. browser)
- Server → agente che dovrebbe avere le informazioni richieste (es. server web)
- Messaggio di richiesta → messaggio mandato dal client al server in cui vengono chieste informazioni riguardo una risorsa specifica
- Messaggio di risposta → messaggio che il server restituisce al client (positivo o negativo)
Le richieste possono essere di diverse tipologie e vengono definite grazie all’uso di uno specifica metodo:
-
GET → permette di richiedere informazioni sulla risorsa definita dall’URL specificato (es. click su un link)
- → metodo safe: usato solo per recuperare informazioni dal server web, senza cambiarne lo stato
- → metodo idempotente: più richieste sullo stesso URL hanno lo stesso effetto
- POST → permette di specificare informazioni aggiuntive ad una risorsa esistente che risiede su un server
- PUT → permette di associare informazioni incluse nella ricerca mentre creo la risorsa specificata (idempotente)
- DELETE → permette di rimuovere dal server web le informazioni relative alla risorsa specificata
HTTP GET
GET è preponderante nel web perchè viene usato per richiedere una qualsiasi risorsa mentre gli altri metodi non sono sempre utilizzabili liberamente da tutti i client (decide il server)-
- URL al browser
- HTTP request al web server
- HTTP response al browser
- Pagina web all’utente
Messaggi HTTP
- Richiesta HTTP → formata da una parte dati (quasi sempre vuota tramite caso di compilazione form) + header
-
Risposta HTTP → formata da una parte dati (il doc richiesto) + header.
Tutte le risposte contengono metadati e codici di stato nell’header e a volta dati nel payload. Codici di stato: numeri a tre cifre, la cui prima definisce la classe di risposta:- Risposta informatica (di solito non usato)
- Successo (es. 200 OK)
- Re-direct (es 303 see other)
- Client error (es. 403 forbidden, 404 not found)
- Server error (es. 503 service unavailable, 500 internal server error)
Richiesta HTTP
Server web → computer che esegue un software specifico che permette di ricevere, gestire e soddisfare richieste HTTP proveniente da un client (es browser).
Il suo nome è incluso nell’URL, nella parte host.
La richiesta è più complessa del semplice URL.
- Metodo HTTP: GET
- Percorso
- Protocollo e versione: HTTP/1.1
- Host: nome del server web da contattare
Quando il server web riceve una richiesta, cerca localmente informazioni:
- se trova la risorsa → fa una copia che viene impacchettata nel payload di un nuovo messaggio HTTP di risposta e la invia al mittente specificando 200
- se non trova la risorsa → associa il codice errore nello stato e opzionalmente la situazione occorsa
Domain Name System (DNS)
Noi cerchiamo un server usando il suo nome ma il server in realtà è identificato tramite un indirizzo IP.
Il DNS associa nomi facilmente memorizzabili a indirizzi IP numerici e viceversa, tramite un’operazione di conversione che si chiama risoluzione. E’ una sorta di rubrica telefonica.
In Internet ci sono tanti computer demandati a questa operazione, chiamati server DNS, il cui ruolo è quello di restituire un corretto indirizzo IP per un certo nome. Quando un server DNS viene interrogato può chiedere aiuto ad altri server DNS se non conoscono direttamente l’indirizzo IP richiesto.
Non viene usato un unico server DNS perchè sarebbe:
- single point of failure
- volume di traffico
- distanza
I client di solito interrogano i DNS resolver che agiscono come portinai di un albergo, sono degli intermediari da cui è possibile ottenere informazioni sui nomi dei server web:
- hanno memorizzato l’informazione richiesta (se qualcuno l’ha richiesta poco prima) → forniscono la risposta
- non hanno memorizzato l’informazione →inoltrano la richiesta per recuperarla dall’opportuno DNS server
DNS resolver di solito sono gestiti dagli ISP (internet service provider, operatori di telefonia)
Protocollo DNS
Il sistema DNS è basato su un protocollo DNS di livello applicazione, basato su approccio distribuito e gerarchico:
- le informazioni sono distribuite tra varie entità server
- alcuni server DNS contengono molte informazioni non dettagliate
- alcuni server DNS contengono poche informazioni dettagliate
Per ogni dominio c’è sempre un server DNS responsabile del dominio, ad esempio per des.unimore.it c’è un dns server per dominio it, uno per unimore.it e uno per des.unimore.it
Il responsabile di un dominio mantiene un elenco dei responsabili dei suoi sottodomini e ne conosce i relativi indirizzi IP.
Per tradurre l’indirizzo DNS di un nodo della rete nel suo indirizzo IP bisogna interrogare il server DNS responsabile di ciascuno dei domini
Nomi DNS
Il nome DNS è formato da una successione di parole separate da punti dove ogni componente identifica un dominio:
- dominio di primo livello → identifica la nazione di appartenenza (it, fr, en) oppure la categoria della società proprietaria del calcolatore (edu, org, com)
- dominio di secondo livello → individua singola organizzazione (università, azienda, ente)
- dominio di terzo, quarto ecc livello → sono opzionali, identificano sottounità