SlideShare a Scribd company logo
HTTP E HTTPS
RELATORE: SANINO ALESSANDRO
HTTPS://ALESSANDRO.SANINO.DEV
HTTP E HTTPS
• Il protocollo HTTP
• Richiesta HTTP
• Risposta HTTP
• HTTP Sicuro (HTTPS)
• HTTP Clients
IL PROTOCOLLO HTTP
HTTP (Hypertext Transfer Protocol) è una delle tecnologie alla base del Web; in particolare,
HTTP è un protocollo a livello di applicazione nato per la trasmissione di documenti, come ad
esempio i file HTML. Il protocollo HTTP è stato inizialmente pensato per la comunicazione tra web
browser e web server, ma può essere usato anche per altri scopi.
HTTP segue uno schema client-server, in cui una applicazione (client) apre una connessione verso
il server, effettua una richiesta e attende la risposta del server. Tra le altre caratteristiche di
questo protocollo, abbiamo l’essere basato su concetti come risorse e URI (Uniform Resource
Identifier) e utilizzare una struttura di messaggi semplice.
IL PROTOCOLLO HTTP - I
Nel momento in cui diciamo al browser di caricare una certa pagina web, il
browser agisce come client HTTP che comunica con un server tramite HTTP. In
particolare, supponendo di voler caricare la pagina
https://example.com/index.html, il browser aprirà una connessione verso il
server e invierà al server un messaggio di richiesta del contenuto del documento
HTML index.html che si trova nella root del server web https://example.com. Il
messaggio inviato dal browser si chiama richiesta (request)
IL PROTOCOLLO HTTP - II
Ricevuta la richiesta, il server si occuperà di recuperare il contenuto del file
richiesto e inviarlo in risposta a chi gli ha fatto richiesta. Anche il server web,
quindi, invierà un messaggio che si chiama risposta (response).
IL PROTOCOLLO HTTP - III
Una volta ricevuta il documento HTML il browser comincerà a fare il parsing della
pagina per renderizzare e caricare il contenuto e si accorgerà che il documento HTML
indica che sono necessari altri file remoti (risorse) per mostrarlo. Per esempio, i file
https://example.com/style.css, https://example.com/main.js e
https://pictures.example.com/logo.png.
Il browser, quindi, farà partire altri messaggi di richiesta a tutti i vari server, che
risponderanno con altrettanti messaggi di risposta.
IL PROTOCOLLO HTTP - IV
Lato server web, ognuna di queste richieste è indipendente dalle altre: solo il
browser sa che sono collegate tra loro perché servono a caricare una certa
pagina.
Per questo motivo il protocollo HTTP viene detto stateless (senza stato), poiché
non viene mantenuto alcun collegamento tra due richieste fatte sulla stessa
connessione.
IL PROTOCOLLO HTTP
IL PROTOCOLLO HTTP
• Client-Server
• Stateless
• Basato su TCP
• Può essere reso sicuro (HTTPS)
HTTP REQUEST
• Method
• URL: L’indirizzo a cui vogliamo fare la nostra richiesta HTTP
• Version: Versione del protocollo HTTP in uso (1.1 – 2 – 3 e così via)
• Headers: Campi «chiave» «valore» che definiscono varie caratteristiche
• Body (opzionale): Il contenuto della nostra richiesta
HTTP METHODS
• HEAD: Ottenere solo gli headers di una risorsa, senza richiederla
• GET: Ottenere una risorsa
• POST: Creare una nuova risorsa
• PUT: Sostituire interamente una risorsa esistente
• PATCH: Aggiornare parzialmente una risorsa esistente
• DELETE: Cancellare una risorsa esistente
HTTP METHODS - II
• TRACE: Restituisce la richiesta che è stata inviata così com’è (echo - debug di
rete)
• OPTIONS: Restituisce quali operazioni è possibile effettuare su una risorsa
• CONNECT: Crea un tunnel TCP/IP di connessione trasparente (si usa quando
impostiamo dei server proxy)
HTTP HEADERS - I
• Accept: Specifica i tipi di contenuto che il client può processare.
• Content-Type: Indica il tipo di media del corpo della richiesta o risposta.
• User-Agent: Fornisce informazioni sul browser o sul client che ha
effettuato la richiesta.
• Authorization: Contiene le credenziali per autenticare un utente con il
server.
HTTP HEADERS - II
• Cookie: Invia i cookie dal client al server.
• Set-Cookie: Invia i cookie dal server al client per essere salvati.
• Content-Length: numero intero che indica la dimensione della risorsa in
bytes (di solito questo header è presente nelle risposte, ma non nelle richieste
HTTP)
CONTENT-TYPE / ACCEPT – MEDIA TYPES
Entrambi questi headers vogliono un media type che rappresenta una tipologia di contenuto.
I media types più comuni sono:
• text/html: per documenti HTML.
• text/css: per fogli di stile CSS.
• text/javascript: per codice JavaScript.
• image/jpeg: per immagini in formato JPEG.
• image/png: per immagini in formato PNG.
• audio/mpeg: per file audio MP3.
• video/mp4: per video in formato MP4.
• application/json: per dati in formato JSON.
• application/pdf: per documenti PDF.
• application/xml: per dati in formato XML
AUTHORIZATION HEADER
Questo header può contenere valori per diversi tipi di autenticazione:
• API-Key: Una stringa che rappresenta una chiave di autenticazione di terze
parti
• Bearer Token: Una stringa che rappresenta un token di autenticazione
(opzionalmente temporizzato)
• Basic Authentication: l’autenticazione meno sicura.
Base64(Username + ‘:’ + Password)
Fondamenti di REST API (1/3) - I protocolli HTTP e HTTPS
HTTP RESPONSE
• Version: Versione del protocollo HTTP in uso (1.1 – 2 – 3 e così via)
• Status Code: Codice di stato della richiesta HTTP
• Headers: Campi «chiave» «valore» che definiscono varie caratteristiche della
risposta
• Body (opzionale): Il contenuto della nostra risposta
HTTP RESPONSE
HTTP STATUS CODES
• Definiscono le tipologie di risposte possibili da parte di un server HTTP a una
richiesta
• Si dividono in 4 gruppi
• Ogni status code è sempre rappresentato da un numero intero
HTTP STATUS CODES
• 1XX (Information): Questi sono meri status di informazione, pertanto dobbiamo
aspettarci che la richiesta ancora non sia stata completata (anche se stiamo
ricevendo una risposta possiamo aspettarcene altre)
• 2XX (Success): Operazione completata con successo
• 3XX (Redirection): Servono a garantire la redirezione verso nuovi URL
• 4XX (Client Error): Errori dovuti a un errore fatto dal client
• 5XX (Server Error): Errori dovuto a un errore nel server
HTTP STATUS CODES
1XX: Aspetta
2XX: Apposto, tieni
3XX: Guarda che hai sbagliato strada, devi andare la
4XX: HAI fatto un casino
5XX: HO fatto un casino
HTTP STATUS CODES : 1XX (PANORAMICA)
• 100: Continue
• …
• 122: Request-URI Too Long
HTTP STATUS CODES : 2XX (PANORAMICA)
• 200: OK – Richiesta completata con successo, ecco il risultato (body)
• 201: Created - Nuova risorsa creata con successo
• 202: Accepted
• 203: Non-Authoritative Information
• 204: No-Content - Richiesta completata con successo, ma non ho null’altro da
dichiarare
• …
HTTP STATUS CODES : 3XX (PANORAMICA)
• 300: Multiple Choices
• 301: Moved Permanently: La risorsa è stata spostata permanentemente a
un nuovo URL
• …
• 307: Temporary Redirect: La risorsa è stata spostata temporaneamente a
un nuovo URL
HTTP STATUS CODES : 4XX (PANORAMICA)
• 400: Bad Request – La richiesta fatta dal client non è stata fatta correttamente (di solito mancano
dei parametri richiesti dal server)
• 401: Unauthorized – La richiesta non è soddisfacibile poiché il client non è autenticato e non si sa
chi sia
• 402: Payment Required
• 403: Forbidden – La richiesta non è soddisfacibile poiché al client autenticato non è permesso fare
l’operazione
• 404: Not Found
• 405: Method Not Allowed – Il method specificato nella richiesta non è permesso per questa risorsa
• …
HTTP STATUS CODES : 5XX (PANORAMICA)
• 500: Internal Server Error – Errore sconosciuto interno al server
• 501: Not Implemented
• 502: Bad Gateway
• …
HTTP SICURO - HTTPS
HTTPS è la versione sicura di HTTP. Utilizza il protocollo SSL/TLS (Secure Sockets
Layer/Transport Layer Security) per criptare i dati inviati tra il client e il server.
Questo assicura che le informazioni siano protette da intercettazioni e
manipolazioni.
Quando nel browser vedete un «lucchetto» nella barra degli indirizzi significa che
il sito è protetto da un certificato TLS, e di conseguenza da HTTPS.
La configurazione lato server per l’HTTPS richiede la stessa configurazione per
HTTP, più la configurazione del certificato TLS.
GRAZIE PER L’ATTENZIONE
SANINO ALESSANDRO
HTTPS://ALESSANDRO.SANINO.DEV

More Related Content

PDF
Gli HTTP Security Header e altri elementi da sapere su HTTP in un Web Applica...
PPT
Come funziona la navigazione Web
PDF
Sistemi distribuiti
PDF
Hosting: storia del protocollo http
PPTX
World wide web
PPTX
corso web developer - Introduzione al web
PDF
Web service architetture e standard - Tesi - cap1
PPTX
Fondamenti di REST API (3/3) - Lo standard REST
Gli HTTP Security Header e altri elementi da sapere su HTTP in un Web Applica...
Come funziona la navigazione Web
Sistemi distribuiti
Hosting: storia del protocollo http
World wide web
corso web developer - Introduzione al web
Web service architetture e standard - Tesi - cap1
Fondamenti di REST API (3/3) - Lo standard REST

Similar to Fondamenti di REST API (1/3) - I protocolli HTTP e HTTPS (20)

PDF
Hosting: il successore di http 1.1 il perchè dell' http 2.0
PDF
Lezione 11: Accesso ai RESTful Web Services in Java
PDF
Ajax - Presente e futuro delle applicazioni web
PPT
4 - Introduzione al Web (1/2) - 16/17
PPT
6. Introduzione al web
PPT
04 - Introduzione al Web I
PPTX
Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
PDF
Happy Monday #1: the Web API guidelines for happy developers
PDF
Corso di servlet jsp e pattern
PPTX
Applicazioni web based
PDF
REST API fantastiche e dove trovarle
PPT
4. Introduzione al web (Parte I)
PDF
Web services
PDF
Laboratorio Di Basi Di Dati 05 Architettura Del Web
PDF
Creare API pubbliche, come evitare gli errori comuni
PDF
Lezione12: Autenticazione e gestione delle sessioni in REST
PDF
Rivoluziona il tuo sito con le WP REST API - Andrea Cardinali
PDF
Html e Css - 1 | WebMaster & WebDesigner
PDF
Corso PHP ENAIP - lezione #01 - 17/01/2014
Hosting: il successore di http 1.1 il perchè dell' http 2.0
Lezione 11: Accesso ai RESTful Web Services in Java
Ajax - Presente e futuro delle applicazioni web
4 - Introduzione al Web (1/2) - 16/17
6. Introduzione al web
04 - Introduzione al Web I
Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Happy Monday #1: the Web API guidelines for happy developers
Corso di servlet jsp e pattern
Applicazioni web based
REST API fantastiche e dove trovarle
4. Introduzione al web (Parte I)
Web services
Laboratorio Di Basi Di Dati 05 Architettura Del Web
Creare API pubbliche, come evitare gli errori comuni
Lezione12: Autenticazione e gestione delle sessioni in REST
Rivoluziona il tuo sito con le WP REST API - Andrea Cardinali
Html e Css - 1 | WebMaster & WebDesigner
Corso PHP ENAIP - lezione #01 - 17/01/2014
Ad

Fondamenti di REST API (1/3) - I protocolli HTTP e HTTPS

  • 1. HTTP E HTTPS RELATORE: SANINO ALESSANDRO HTTPS://ALESSANDRO.SANINO.DEV
  • 2. HTTP E HTTPS • Il protocollo HTTP • Richiesta HTTP • Risposta HTTP • HTTP Sicuro (HTTPS) • HTTP Clients
  • 3. IL PROTOCOLLO HTTP HTTP (Hypertext Transfer Protocol) è una delle tecnologie alla base del Web; in particolare, HTTP è un protocollo a livello di applicazione nato per la trasmissione di documenti, come ad esempio i file HTML. Il protocollo HTTP è stato inizialmente pensato per la comunicazione tra web browser e web server, ma può essere usato anche per altri scopi. HTTP segue uno schema client-server, in cui una applicazione (client) apre una connessione verso il server, effettua una richiesta e attende la risposta del server. Tra le altre caratteristiche di questo protocollo, abbiamo l’essere basato su concetti come risorse e URI (Uniform Resource Identifier) e utilizzare una struttura di messaggi semplice.
  • 4. IL PROTOCOLLO HTTP - I Nel momento in cui diciamo al browser di caricare una certa pagina web, il browser agisce come client HTTP che comunica con un server tramite HTTP. In particolare, supponendo di voler caricare la pagina https://example.com/index.html, il browser aprirà una connessione verso il server e invierà al server un messaggio di richiesta del contenuto del documento HTML index.html che si trova nella root del server web https://example.com. Il messaggio inviato dal browser si chiama richiesta (request)
  • 5. IL PROTOCOLLO HTTP - II Ricevuta la richiesta, il server si occuperà di recuperare il contenuto del file richiesto e inviarlo in risposta a chi gli ha fatto richiesta. Anche il server web, quindi, invierà un messaggio che si chiama risposta (response).
  • 6. IL PROTOCOLLO HTTP - III Una volta ricevuta il documento HTML il browser comincerà a fare il parsing della pagina per renderizzare e caricare il contenuto e si accorgerà che il documento HTML indica che sono necessari altri file remoti (risorse) per mostrarlo. Per esempio, i file https://example.com/style.css, https://example.com/main.js e https://pictures.example.com/logo.png. Il browser, quindi, farà partire altri messaggi di richiesta a tutti i vari server, che risponderanno con altrettanti messaggi di risposta.
  • 7. IL PROTOCOLLO HTTP - IV Lato server web, ognuna di queste richieste è indipendente dalle altre: solo il browser sa che sono collegate tra loro perché servono a caricare una certa pagina. Per questo motivo il protocollo HTTP viene detto stateless (senza stato), poiché non viene mantenuto alcun collegamento tra due richieste fatte sulla stessa connessione.
  • 9. IL PROTOCOLLO HTTP • Client-Server • Stateless • Basato su TCP • Può essere reso sicuro (HTTPS)
  • 10. HTTP REQUEST • Method • URL: L’indirizzo a cui vogliamo fare la nostra richiesta HTTP • Version: Versione del protocollo HTTP in uso (1.1 – 2 – 3 e così via) • Headers: Campi «chiave» «valore» che definiscono varie caratteristiche • Body (opzionale): Il contenuto della nostra richiesta
  • 11. HTTP METHODS • HEAD: Ottenere solo gli headers di una risorsa, senza richiederla • GET: Ottenere una risorsa • POST: Creare una nuova risorsa • PUT: Sostituire interamente una risorsa esistente • PATCH: Aggiornare parzialmente una risorsa esistente • DELETE: Cancellare una risorsa esistente
  • 12. HTTP METHODS - II • TRACE: Restituisce la richiesta che è stata inviata così com’è (echo - debug di rete) • OPTIONS: Restituisce quali operazioni è possibile effettuare su una risorsa • CONNECT: Crea un tunnel TCP/IP di connessione trasparente (si usa quando impostiamo dei server proxy)
  • 13. HTTP HEADERS - I • Accept: Specifica i tipi di contenuto che il client può processare. • Content-Type: Indica il tipo di media del corpo della richiesta o risposta. • User-Agent: Fornisce informazioni sul browser o sul client che ha effettuato la richiesta. • Authorization: Contiene le credenziali per autenticare un utente con il server.
  • 14. HTTP HEADERS - II • Cookie: Invia i cookie dal client al server. • Set-Cookie: Invia i cookie dal server al client per essere salvati. • Content-Length: numero intero che indica la dimensione della risorsa in bytes (di solito questo header è presente nelle risposte, ma non nelle richieste HTTP)
  • 15. CONTENT-TYPE / ACCEPT – MEDIA TYPES Entrambi questi headers vogliono un media type che rappresenta una tipologia di contenuto. I media types più comuni sono: • text/html: per documenti HTML. • text/css: per fogli di stile CSS. • text/javascript: per codice JavaScript. • image/jpeg: per immagini in formato JPEG. • image/png: per immagini in formato PNG. • audio/mpeg: per file audio MP3. • video/mp4: per video in formato MP4. • application/json: per dati in formato JSON. • application/pdf: per documenti PDF. • application/xml: per dati in formato XML
  • 16. AUTHORIZATION HEADER Questo header può contenere valori per diversi tipi di autenticazione: • API-Key: Una stringa che rappresenta una chiave di autenticazione di terze parti • Bearer Token: Una stringa che rappresenta un token di autenticazione (opzionalmente temporizzato) • Basic Authentication: l’autenticazione meno sicura. Base64(Username + ‘:’ + Password)
  • 18. HTTP RESPONSE • Version: Versione del protocollo HTTP in uso (1.1 – 2 – 3 e così via) • Status Code: Codice di stato della richiesta HTTP • Headers: Campi «chiave» «valore» che definiscono varie caratteristiche della risposta • Body (opzionale): Il contenuto della nostra risposta
  • 20. HTTP STATUS CODES • Definiscono le tipologie di risposte possibili da parte di un server HTTP a una richiesta • Si dividono in 4 gruppi • Ogni status code è sempre rappresentato da un numero intero
  • 21. HTTP STATUS CODES • 1XX (Information): Questi sono meri status di informazione, pertanto dobbiamo aspettarci che la richiesta ancora non sia stata completata (anche se stiamo ricevendo una risposta possiamo aspettarcene altre) • 2XX (Success): Operazione completata con successo • 3XX (Redirection): Servono a garantire la redirezione verso nuovi URL • 4XX (Client Error): Errori dovuti a un errore fatto dal client • 5XX (Server Error): Errori dovuto a un errore nel server
  • 22. HTTP STATUS CODES 1XX: Aspetta 2XX: Apposto, tieni 3XX: Guarda che hai sbagliato strada, devi andare la 4XX: HAI fatto un casino 5XX: HO fatto un casino
  • 23. HTTP STATUS CODES : 1XX (PANORAMICA) • 100: Continue • … • 122: Request-URI Too Long
  • 24. HTTP STATUS CODES : 2XX (PANORAMICA) • 200: OK – Richiesta completata con successo, ecco il risultato (body) • 201: Created - Nuova risorsa creata con successo • 202: Accepted • 203: Non-Authoritative Information • 204: No-Content - Richiesta completata con successo, ma non ho null’altro da dichiarare • …
  • 25. HTTP STATUS CODES : 3XX (PANORAMICA) • 300: Multiple Choices • 301: Moved Permanently: La risorsa è stata spostata permanentemente a un nuovo URL • … • 307: Temporary Redirect: La risorsa è stata spostata temporaneamente a un nuovo URL
  • 26. HTTP STATUS CODES : 4XX (PANORAMICA) • 400: Bad Request – La richiesta fatta dal client non è stata fatta correttamente (di solito mancano dei parametri richiesti dal server) • 401: Unauthorized – La richiesta non è soddisfacibile poiché il client non è autenticato e non si sa chi sia • 402: Payment Required • 403: Forbidden – La richiesta non è soddisfacibile poiché al client autenticato non è permesso fare l’operazione • 404: Not Found • 405: Method Not Allowed – Il method specificato nella richiesta non è permesso per questa risorsa • …
  • 27. HTTP STATUS CODES : 5XX (PANORAMICA) • 500: Internal Server Error – Errore sconosciuto interno al server • 501: Not Implemented • 502: Bad Gateway • …
  • 28. HTTP SICURO - HTTPS HTTPS è la versione sicura di HTTP. Utilizza il protocollo SSL/TLS (Secure Sockets Layer/Transport Layer Security) per criptare i dati inviati tra il client e il server. Questo assicura che le informazioni siano protette da intercettazioni e manipolazioni. Quando nel browser vedete un «lucchetto» nella barra degli indirizzi significa che il sito è protetto da un certificato TLS, e di conseguenza da HTTPS. La configurazione lato server per l’HTTPS richiede la stessa configurazione per HTTP, più la configurazione del certificato TLS.
  • 29. GRAZIE PER L’ATTENZIONE SANINO ALESSANDRO HTTPS://ALESSANDRO.SANINO.DEV