PROTOCOLLI

http

L'HTTP (protocollo di trasferimento di un ipertesto) è il protocollo che permette di inviare e ricevere documenti attraverso il web.
Un protocollo è un insieme di regole che determina quali messaggi possono essere scambiati, e quali messaggi rappresentano risposte appropriate ad altri.

Nell'HTTP, ci sono due diversi ruoli: server e client. In genere, è il client ad avviare la conversazione; il server risponde.
L'HTTP è costituito da testo; ovvero i messaggi sono essenzialmente porzioni di testo, sebbene il loro corpo possa contenere anche altri media. L'utilizzo del testo rende semplice monitorare un interscambio HTTP.

I messaggi HTTP sono costituiti da un intestazione (header) ed un corpo (body). Il body spesso può rimanere vuoto; esso contiene le informazioni che volete trasmettere via rete, e fruirne secondo le istruzioni contenute nell'header.
L'header contiene metadati, come ad esempio le informazioni di codifica, la dimensione del corpo dei dati e il loro formato, servono a fornire informazioni sul client, sul server, sulla sessione o sul tipo di dati trasportati nel corpo.

HTTPs L'HTTPS (HyperText Transfer Protocol Secure) è la versione crittografata e sicura dell'HTTP. È il protocollo che permette a browser di comunicare con un sito web garantendo che i dati scambiati rimangano privati e non possano essere intercettati da malintenzionati.
invia i dati in modalità crittografata.

metodi HTTP

I metodi HTTP sono i comandi che comunicano al server cosa fare con i dati identificati dalla URL.
Sono: GET, POST, PUT, DELETE, PATCH.
Ogni richiesta http specifica un determinato metodo, nel suo header.

I metodi GET e POST sono le due richieste HTTP (o metodi) più utilizzate in assoluto sul web. La differenza fondamentale sta nello scopo: GET serve per richiedere dati dal server, mentre POST serve per inviare dati da salvare o elaborare

GET I dati vengono inseriti direttamente nell'URL sotto forma di stringa di query (es. cerca.php?prodotto=scarpe&colore=rosso), sono quindi visibili a chiunque guardi lo schermo, rimangono memorizzati nella cronologia del browser, nei segnalibri e nei log del server, non deve mai essere esuto per dati sensibili.
Ha un limite di caratteri rigoroso (circa 2.048 caratteri nella maggior parte dei browser) perché legato alla lunghezza massima dell'URL.
GET é memorizzabile in cache e aggiornare la pagina o inviare la richiesta più volte non cambia il risultato sul server e non crea duplicati.

POST dati sono nascosti all'interno del corpo della richiesta (Body) e non appaiono mai nell'URL, non appaiono nella cronologia o nei segnalibri. Offre una maggiore riservatezza visiva, ma richiede comunque il protocollo cifrato HTTPS per essere sicuro contro i pirati informatici
Non ha limiti teorici di dimensione. Permette di inviare file pesanti, immagini o enormi blocchi di testo
Se aggiorni una pagina dopo aver inviato un modulo POST, il browser ti mostrerà un avviso (es. "Vuoi reinviare i dati?") perché l'azione potrebbe duplicare un'operazione.

tcp/ip

I protocolli TCP e IP sono le fondamenta di Internet.
L'IP (Internet Protocol) si occupa di instradare e indirizzare i dati, mentre il TCP (Transmission Control Protocol) garantisce che la trasmissione avvenga in modo affidabile, ordinato e senza errori.

Il funzionamento si articola su due livelli distinti ma interdipendenti:

IP: Assegna gli indirizzi (Indirizzi IP) e stabilisce il percorso migliore per far viaggiare le informazioni attraverso la rete. Spezzetta i dati in unità chiamate pacchetti. Ogni pacchetto contiene l'indirizzo del mittente e del destinatario.
Invia i pacchetti sperando che arrivino, ma non verifica la loro ricezione.

TCP: Interviene prima e dopo l'azione dell'IP per garantire che i dati arrivino integri e nell'ordine corretto.
Instaura una connessione solida, assegna un numero progressivo ai pacchetti e attende una conferma dal destinatario. Se un pacchetto si perde, lo reinvia. Controlla il flusso dei dati per evitare che il destinatario venga sovraccaricato

Il protocollo HTTP non viaggia da solo, ma si "appoggia" interamente su TCP/IP per muoversi nella rete.
In informatica questo concetto si chiama incapsulamento.
Se la richiesta HTTP cfosse una lettera cartacea:
la lettera contiene il messaggio, ma per essere spedita deve essere inserita dentro una serie di buste via via più grandi.

Il browser genera la richiesta HTTP. Ad esempio: "Mostrami la pagina /index.html". Questo è il contenuto puro del messaggio.
La richiesta HTTP viene inserita dentro una "busta" TCP.
TCP stabilisce prima una connessione sicura con il server
La busta TCP viene inserita in una busta ancora più grande: il pacchetto IP.
IP scrive sopra il tuo indirizzo IP (mittente) e l'indirizzo IP del server (destinatario). Grazie a queste informazioni, i router sparsi per internet sanno dove indirizzare fisicamente il pacchetto.

HTTP definisce cosa chiedere,
TCP garantisce che la richiesta arrivi integra,
IP trova la strada per farla arrivare a destinazione