HTTP
RFC
HTTP/1.1: https://www.w3.org/Protocols/ : rfc da 7230 a 7240 HTTP/2: https://tools.ietf.org/html/rfc7540 (https://httpwg.org/specs/rfc7540.html)
Cos’è HTTP
HTTP acronimo di Hypertext Transfer Protocol è un protocollo di trasferimento di ipertesti (i documenti web).
Si basa su un modello Requeste-Response: Domanda (del client) – Risposta (del server) senza memoria delle richieste-risposte precedenti, per questo è un Stateless Protocol.
Riesce però a gestire le informazioni necessarie con meccanismi che si appoggiano ai dati archiviati dallo user-agent (ad esempio tramite HTTP Headers – Cookies) per cui è un Stateful Session Protocol.
Per questo HTTP è un protocollo stateless, ma non sessionless.
User Agent
Gli user-agent sono tutti i dispositivi, tra cui i browser, in grado di gestire il protocollo HTTP e gli ipertesti.
HTTP/1.1
Gli standard della versione 1.1 sono stati gestiti dal W3C e qui si trovano le RFC attualmente valide : https://www.w3.org/Protocols/
HTTP/2
La versione 2 è stata invece affidata allo IETF HTTP Working Group. Si tratta di un’ottimizzazione delle performance dell’HTTP/1.1 (compressione migliorata e dr multiple sulla stessa connessione TCP) e dell’aggiunta della possibilità da parte del server di effettuare push di risorse (ti mando oltre al documento html anche i css, js, … perché so già che ti serviranno). Tutte le altre specifiche esistenti per l’HTTP/1.1 restano sostanzialmente le stesse.
Oggigiorno circa il 27% delle connessioni è su HTTP/2.
La documentazione ufficiale dell’HTTP/2 è tenuta dallo IETF HTTP Working Group.
Nel sito dello IETF HTTP Working Group è presente anche una raccolta ufficiale della documentazione HTTP/1.1.
HTTPS
Encryption
URI
Un Uniform Resource Identifier identifica una risorsa su internet ed è definito proprio nell’rfc di http/1.1
Può essere un URL o un URN.
Esempi di URL:
- ftp://ftp.lidialab.it/lidialab.txt
- http://lidialab.it/lidialab.html
- file://C:/lidialab.txt
- mailto:info@lidialab.it
- telnet://net.lidialab.it/
- irc://irc.freenode.net/lidialab
URN
Un Uniform Resource Name è un URI che identifica una risorsa senza la locazione della stessa.
Esempi di URN:
- tel:+1111-1111-1111
- isbn:0-111-22334-5
URL
Un Uniform Resource Locator è un tipo di URI che identifica univocamente l’indirizzo di una risorsa Internet, come ad esempio un documento html, un file css o js, un’immagine.
Schema di un URL
protocollo://[username[:password]@]host[:porta]</percorso>[?querystring][#fragment]
Metodi HTTP
GET
HEAD
POST
PUT
DELETE
CONNECT
OPTIONS
TRACE
Tool
Firefox > Developer Tool > Network (Rete) > Abilitare Tutti e ricaricare la pagina
Corsi, letture per lo studio
HTTP Essential Training with Morten Rand-Hendriksen on Lynda.com