Go 1.27 evita di buttare una connessione HTTP per un a capo
net/http recupera i piccoli resti non letti nelle risposte HTTP/1, rendendo più facile riusare una connessione già aperta.
Che succede
Hai letto il JSON, chiuso il corpo della risposta e ottenuto i dati che servivano. Eppure la connessione potrebbe essere inutilizzabile per la richiesta successiva: basta che dopo il JSON sia rimasto un a capo non letto. In HTTP/1 le risposte viaggiano una dopo l’altra, e bisogna arrivare alla fine di una per riconoscere l’inizio della prossima.
Da Go 1.27, net/http prova a consumare in background il contenuto rimasto quando chiudi il corpo: al massimo 256 KB o 50 millisecondi. Se riesce, può rimettere la connessione a disposizione, evitando un nuovo collegamento TCP e TLS.
Il Go Blog mostra un esempio di 100 richieste che passa da circa 710 a 150 millisecondi sul computer degli autori. È il risultato di quel test, non un’accelerazione generale di Go. HTTP/2 gestisce flussi separati sulla stessa connessione e non ha questo specifico problema.
Perché conta
Il byte che non ti interessava poteva costare più della risposta: obbligava il client a rifare da capo il collegamento.
Leggi la fonte
go.devVuoi sapere di più su pillole come questa?
Nella stessa edizione
Phloem fa crescere il tuo repository come una rete di radici
Scion di Anthropic ricorda Mononoke. Un suo autore chiede il credito
Oxide fa stare un rack virtuale dentro un mini-PC
Petal mette la finestra del collega sulla tua scrivania
OpenCode 2.0 dà a terminale, desktop e script lo stesso interlocutore
Go 1.27 evita di buttare una connessione HTTP per un a capo
Sentry Flutter 10 smette di contare come crash gli errori che non fermano l’app
Prossima Pillola