Il 0% ha trovato utile questo documento (0 voti)
10 visualizzazioni6 pagine

Appunti TPS

Il documento descrive l'evoluzione di Internet e del Web, partendo dalla creazione di ARPANET fino ad arrivare alle attuali versioni del Web, come il Web 3.0 e le sue potenziali evoluzioni future. Viene spiegato il funzionamento del protocollo HTTP, le sue versioni e le modalità di comunicazione client-server, insieme ai dettagli sui metodi di richiesta e risposta. Infine, si discute l'importanza delle sessioni e dei cookie per mantenere lo stato della comunicazione tra client e server.

Caricato da

giomaffo66
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
10 visualizzazioni6 pagine

Appunti TPS

Il documento descrive l'evoluzione di Internet e del Web, partendo dalla creazione di ARPANET fino ad arrivare alle attuali versioni del Web, come il Web 3.0 e le sue potenziali evoluzioni future. Viene spiegato il funzionamento del protocollo HTTP, le sue versioni e le modalità di comunicazione client-server, insieme ai dettagli sui metodi di richiesta e risposta. Infine, si discute l'importanza delle sessioni e dei cookie per mantenere lo stato della comunicazione tra client e server.

Caricato da

giomaffo66
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 6

Appunti TPS:

Parte 1:

Internet, sistema di comunicazione.


Web, insieme di pagine che forniscono servizi agli utenti.

L’evoluzione del Web nel tempo:

Prima di internet c’erano delle reti che collegavano solo università e centri di ricerca per lo
scambio di file e email.

Il WWW nasce nel 1991, grazie a Tim Berners Lee.


La comunicazione era realizzata da pochi utenti mentre gli utenti che usufruivano dei contenuti
erano tanti, questo perché molti non contribuivano alla creazione di contenuti.

Ciò che conosciamo come WEB 2.0 nasce negli anni 2000. Troviamo piattaforme che
rivoluzionarono il web, iniziano a diffondersi blog, social network e wiki. La comunicazione si era
evoluta, tutti contribuivano, tutti gli utenti non sono quindi solo utilizzatori ma contribuiscono
anche alla creazione di contenuti.

Troviamo poi il WEB 3.0, ovvero la definitiva evoluzione attuale del web, verso una versione più
intelligente e autonoma.
Le caratteristiche sono:
1.​ Decentralizzazione e proprietà dei dati. I dati e gli asset digitali (versione digitale di dati
che possono essere digitalizzati e memorizzati) non sono conservati in database
centralizzati, ma su una rete distribuita. Le applicazioni sono realizzate utilizzando
servizi web distribuiti. (API di Google Maps per integrare le mappe sulla propria
applicazione)
2.​ WEB semantico e Intelligenza Artificiale: si utilizzano tecnologie che rendono le
informazioni leggibili agli utenti e comprensibili dalla macchina.

Infine, il WEB 4.0 rappresenta l’ipotesi di un’evoluzione futura.


Le caratteristiche di questa tipologia non sono delineate perché variano in base all'evoluzione
tecnologica.
Tra queste troviamo:
1.​ Utilizzo di intelligenza artificiale.
2.​ IOT (Internet of Things), l’internet delle cose renderà gli oggetti presenti nella nostra
quotidianità smart, in modo da aiutarci nel corso della nostra giornata.
3.​ Esperienze immersive e realtà aumentata/virtuale.

Sono nati dei servizi chiamati WEB service. Servizi che hanno come utenti le applicazioni, che
poi a loro volta usufruiranno del web service per comunicare con l’utente umano. Vi sono web
service gratuiti e a pagamento. (geocoding esempio, consente di conoscere le coordinate
geografiche dando in input un indirizzo)

Internet è l’evoluzione di un progetto per un sistema di comunicazione di calcolatori noto come


ARPANET sviluppato da ARPA (Advanced Research Project Agency).
ARPAnet, secondo alcune fonti non confermate, è stato ideato per ottenere un sistema di
comunicazione in grado di resistere ad eventuali attacchi militari.
Inizialmente collegava solo un paio di LAN ma nel tempo, le connessioni crescevano
esponenzialmente.

Come funziona?

Una LAN (Local Area Network) è costituita da una serie di dispositivi connessi internamente ad
un dispositivo chiamato SWITCH.
Nel caso però che la connessione avvenga attraverso onde, il dispositivo si chiama Access
Point e la LAN prende il nome di WLAN (Wireless).

La WAN (Wide Area Network) è una connessione internet formata da milioni di LAN connesse
fra di loro grazie ai router.
I router hanno il compito di smistare il traffico nelle rete consentendo la comunicazione tra
HOST che si trovano su LAN diverse.

Grazie ad Internet, gli host collegati possono scambiarsi dati. Il modello di riferimento per lo
scambio dei dati è quello client/server, il server fornisce dei servizi ad altri client. Il client effettua
le richieste e il server fornisce il servizio ed inoltre, non prende mai l’iniziativa, aspetta solo una
richiesta e poi la soddisfa.

Parte 2:

Molti protocolli di livello applicativo che utilizzano TCP come protocollo a livello trasporto
implementano la modalità di comunicazione client-server.

Entrambi processi, il client effettua richieste di risorse.


In questa richiesta verrà specificato l’indirizzo IP del server e il numero di porta relativo al
servizio, verrà inoltro indicato il numero di porta che il client userà per ricevere dati, spesso
questo numero di porta cambia per questo è chiamato porta effimera. Mentre il server rimane in
ascolto di eventuali richieste.

La nascita del protocollo HTTP avviene con Tim Berners Lee, fisico e informatico presso il
CERN. L’idea fu quella di realizzare un protocollo che consentisse facilmente la visualizzazione
di articoli sotto forma di ipertesti.

Le caratteristiche del protocollo HTTP:


Il client effettua delle richieste al server, queste richieste sono un messaggio chiamato request.
Il server rimane in attesa di ricevere queste richieste e risponde con un messaggio chiamato
response.
Le richieste sono le operazioni da svolgere su una risorsa che può essere di qualsiasi tipo e
viene identificata da una stringa chiamata URL (Uniform Resource Locator).
Le operazioni che il client chiede di svolgere sono in genere:
1.​ Creazione
2.​ Lettura
3.​ Eliminazione
4.​ Aggiornamento
Insieme di queste è chiamato CRUD (Create, Read, Update, Delete)

Il protocollo HTTP è stateless, significa che non mantiene memoria delle richieste effettuate.
Ogni richiesta è quindi indipendente dalle richieste effettuate precedentemente.
Per mantenere lo stato di comunicazione si usano sessioni e cookies.

HTTP utilizza come protocollo a livello di trasporto TCP, quindi utilizza la well known port TCP
80, ma per rendere più sicuro HTTP è stato aggiunto TLS (Transport Layer Security), l’unione di
questi viene indicata come protocollo HTTPS e utilizza la porta well known TCP 443.

L’evoluzione del protocollo HTTP nel tempo:


1.​ HTTP 0.9
a.​ Poteva effettuare solo richieste (GET) di risorse e la connessione TCP non era
persistente, chiudendo la connessione dopo aver richiesto una risorsa ad un
server.
2.​ HTTP 1.0 uscito nel 1991
a.​ Introdotta la possibilità di trasmettere ogni tipo di risorsa e di svolgere altre
operazioni sulle risorse ma la connessione rimaneva non persistente, quindi per
far sì che il client ottenesse nuove risorse dallo stesso server, doveva stabilire
una nuova connessione per ogni risorsa.
3.​ HTTP 1.1 uscito nel 1997
a.​ La connessione diviene persistente ma a tempo, interrotta dopo un certo tempo.
Introdotti HTTPS, per aumentare la sicurezza, il catching per memorizzare le
risorse sul client e i cookies.
4.​ HTTP 2.0 uscito nel 2015
a.​ Attualmente il più utilizzato. Le risorse vengono trasferite in binario e interpretate
dal browser. Aggiunto il multiplexing, il quale aumenta la velocità di trasmissione
di dati permettendo di trasmettere più byte stream. Aggiunta la modalità push,
velocizza anche questo la trasmissione di dati permettendo al server di capire
quando le risorse fanno parte di una stessa richiesta.
5.​ HTTP 3.0 uscito nel 2022
a.​ E’ basato sul protocollo QUIC inventato da Google, utilizza UDP anzichè TCP
come protocollo e rende obbligatorio l’utilizzo di TLS per la cifratura di dati.

Request, come è fatta:


1.​ Request Line che contiene:
a.​ Metodo, indica cosa vuole fare il client con la risorsa.
b.​ URL, indica dove si trova la risorsa.
c.​ Versione, è la versione del protocollo che il client utilizza per effettuare la
request.
2.​ L’Header fornisce informazioni aggiuntive sulla richiesta grazie a delle coppie parametro
valore.
3.​ Body contiene i dati che il client vuole inviare al server all’interno della request, è
opzionale e può essere quindi vuoto.

Metodi della Request Line:


1.​ Get si usa per chiedere la risorsa e leggerla. Il server invierà la risorsa nel body di
response.
2.​ Post si usa per inviare dati a una risorsa e a differenza di Get, che può svolgere la
stessa azione, con Post i dati vengono trasmessi all’interno del body, più sicuro rispetto
a Get che li trasmette nell’URL che non viene crittografato.
3.​ Put per chiedere di modificare la risorsa. I dati da modificare saranno indicati nel body.
4.​ Delete per chiedere di eliminare la risorsa.
5.​ Head richiede l’header di una risorsa, invierà quindi solo l’Header e non la risorsa
stessa. Utilizzato per sapere il tipo di dati oppure quando e se è stata modificata.
6.​ Option lo usa il client per richiedere i metodi che possono essere utilizzati nella request.

Parametri di Header di Request:


1.​ Host specifica il nome dell’host a cui è destinata la richiesta e può anche essere un
indirizzo IP, questo parametro è obbligatorio da HTTP 1.1.
2.​ User agent contiene informazioni sul client che esegue la request.
3.​ Referer indica al server l’indirizzo da dove arriva la request e server per mantenere la
tracciabilità delle navigazioni.
4.​ Accept il client specifica in quali formati è in grado di ricevere la risorsa richiesta.
Possibili formati specificati dallo standard Internet Media Type, i media type sono
sempre specificati da una coppia tipo/sottotipo.
5.​ Content type il client specifica qual è il formato dei dati inviati nel body.
6.​ Connection specifica se il client vuole mantenere una connessione persistente.
a.​ Persistente Connection: keep - alive
b.​ Altrimenti Connection: close
7.​ ETag contiene un codice che viene utilizzato nel meccanismo di cache del client. Ogni
nuova risorsa viene identificata con un codice ETag e memorizzata nella cache del
browser rendendo la connessione più veloce rispetto ad una nuova richiesta server. (Se
però venisse modificata viene modificato anche il suo codice ETag e il browser, durante
la richiesta, invia il suo codice ETag e il server verifica se è stata aggiornata. Se
cambiata il server comunica al browser di usare la cache, altrimenti invia la nuova
risorsa)

Response:
1.​ Status Line che contiene:
a.​ Versione, la versione del protocollo utilizzato dal server.
b.​ Status, codice di tre cifre che indica l’esito della richiesta.
c.​ Messaggio, trascrizione a parole di ciò che viene indicato nello Status.
2.​ L’Header fornisce informazioni aggiuntive sulla richiesta grazie a delle coppie parametro
valore.
3.​ Body contiene i dati che il server invia al client.

Possibili codici di stato:


1.​ XX: Poco utilizzata, ancora in fase di elaborazione da parte del server.
2.​ XX: Successo, la richiesta ha avuto successo.
3.​ XX: Indica che il client deve effettuare un’altra azione affinchè la richiesta sia soddisfatta.
4.​ XX: Indica un errore nella request dal lato client, come un errore di sintassi.
a.​ Esempio: 404 Not found, Risorsa non trovata.
5.​ XX: Indica un errore del server. La request è corretta ma il server non è in grado di
soddisfarla.

I metodi sono testabili accedendo ad un client Telnet (dal prompt) ad un web server come
XAMPP.

Come menzionato prima, le sessioni vengono usate per mantenere lo stato di una
comunicazione fra client e server perché il protocollo di sua natura non tiene memoria degli
scambi di dati avvenuti precedentemente.

La sessione è definita come una serie di scambi di informazioni legati fra di loro fra due punti di
un sistema di comunicazione, consente dunque di mantenere memoria dello scambio di dati fra
i due host. E grazie ad un codice di sessione, il browser e il server possono riconoscere che
stanno comunicando nella stessa sessione, adattando il contenuto in base alle preferenze
dell'utente.

Ecco come funziona:


Alla prima connessione, il server genera un Session ID e lo invia al client nel parametro
Set-Cookie della risposta.
Il client, non avendo cookie iniziali, riceve questo identificativo e si impegna a includerlo in ogni
richiesta successiva tramite il parametro Cookie nell'header.
Quando il server riceve richieste con il Session ID, associa i dati relativi alla sessione dell'utente
(es. prodotti nel carrello) e personalizza le risposte.

Altri parametri dell’header sono i seguenti:


1.​ Domain contiene il dominio al quale inviare il cookie.
2.​ Path indica uno specifico pathname del server in cui il cookie è valido, è più preciso
rispetto a Domain.
3.​ Expires indica quando scade il cookie, se è persistente viene memorizzato nella
memoria di massa del client ed eliminato quando scaduto.
4.​ Secure è un valore booleano che se assume il valore true viene trasmesso solo se il
protocollo è HTTPS.

Classificazione dei cookies:


1.​ Persistenti, memorizzati nella memoria di massa del client.
2.​ Di sessione, eliminati quando il browser viene chiuso.
3.​ Anonimi, raccolgono informazioni sulla navigazione senza associarle a un utente
specifico.
4.​ Specifici, raccolgono informazioni associate all'account di un utente autenticato.
5.​ Di prime parti, inviati direttamente dal dominio del sito che l'utente sta visitando.
6.​ Di terze parti, inviati da un dominio diverso rispetto al sito visitato, spesso per scopi
pubblicitari o di tracciamento. Ad esempio, Google Ads, invierà un cookie al browser
dell'utente. Questo cookie consente alla piattaforma di tracciare le informazioni sulla
navigazione dell'utente attraverso più siti.

Potrebbero piacerti anche