La semantica principale di HTTP è stata mantenuta in HTTP/2. Ciò significa che ha ancora HTTP methods
come GET
, POST
, ecc., HTTP headers
e URIs
per identificare le risorse.
Cosa è cambiato in HTTP/2 rispetto al HTTP/1.1 è il modo in cui l'HTTP semantica (ad esempio "Voglio PUT
risorsa /foo
sull'host domain.com
") viene trasportato sul filo.
In questa ottica, le API REST create su HTTP/1.1 continueranno a funzionare in modo trasparente come in precedenza, senza modifiche da apportare alle applicazioni. Il contenitore web che esegue le applicazioni si occuperà di tradurre il nuovo formato di filo nella consueta semantica HTTP per conto delle applicazioni e l'applicazione vedrà semplicemente la semantica HTTP di livello superiore, indipendentemente dal fatto che sia stata trasportata via HTTP/1.1 o HTTP/2 sul filo.
Poiché il formato HTTP/2 wire è più efficiente (in particolare a causa del multiplexing e della compressione), anche le API REST sopra HTTP/2 ne trarranno vantaggio.
L'altro miglioramento importante presente in HTTP/2, HTTP/2 Push
, si riferisce al download efficiente di risorse correlate e probabilmente non è utile nel caso REST.
Un tipico requisito di HTTP/2 deve essere distribuito su TLS. Ciò richiede ai deployer di passare da http
a https
e configurare l'infrastruttura richiesta per supportarlo (acquistare i certificati da un'autorità attendibile, rinnovarli, ecc.).
Quindi non è necessario modificare nulla per quanto riguarda l'applicazione web/api?Basta configurarlo sul server (incluso TLS) e funziona bene? – greenhoorn
corretto. Non posso parlare per ogni web server là fuori, ma per Jetty (sono un committer) devi solo configurare Jetty con il modulo 'http2' e sei a posto. – sbordet