Perché le connessioni iniziali sono sempre più lente


2

L'ho notato per la prima volta quando ho usato Insomnia (client HTTP) per testare alcuni dei miei endpoint API.

La prima richiesta che faccio al mio server API (e altri) è sempre di 100 ms +, ma le richieste sequenziali sono sempre molto veloci in termini di latenza.

Immagine della prima richiesta

Immagine della seconda richiesta

Com'è possibile? Ho provato a inviare dati casuali ogni richiesta e questo sta ancora accadendo. Di recente ho anche sentito parlare del protocollo QUIC di Google che ha lo scopo di ridurre i viaggi di andata e ritorno delle richieste di handshake da ~ 3 a 0 per server comuni. Ciò ha molto senso a ciò che sta accadendo, ma QUIC non è ancora distribuito in tutto il Web.


2
DNS è coinvolto?
Kamil Maciorowski il

Haha. Questo è tutto. Ma perché DNS richiede 100ms + ??
Kirk122,

2
Dipende davvero dalla tua configurazione. Ma una possibile spiegazione (tenendo conto del DNS) sarebbe che il tuo client non ha una voce memorizzata nella cache per quel server. Quindi, prima di poter effettuare una richiesta, è necessario effettuare una ricerca DNS per sapere a quale server connettersi. Il server e il client possono anche supportare keep alive, quindi forse la connessione non viene chiusa tra le richieste.
Seth,

QUIC può ridurre le latenze, ma non a zero. Funziona creando il proprio meccanismo che si comporta in qualche modo simile a tcp usando udp e superando alcuni dei limiti nel protocollo tcp. Non è magia però.
davidgo,

Potrebbe anche essere la gestione della sessione sull'endpoint remoto. La prima volta che ti connetti, alloca le risorse alla connessione e avvia i thread. Dopo di che stai solo riutilizzando le stesse risorse fino a quando non scadono e vengono liberate.
Appleoddity,

Risposte:


0

Come altri menzionato nei commenti al tuo post iniziale, potrebbe trattarsi di DNS, il che è un'idea molto ragionevole sulla causa del ritardo.

Tuttavia, non c'è modo per noi di conoscere la risposta effettiva alla tua domanda. Non sappiamo cosa sta succedendo con la tua configurazione, né possiamo, senza accesso.

C'è uno strumento che puoi usare per diagnosticare il problema. Fiddler è uno strumento eccellente, in cui posso consigliare vivamente. Può aiutare a diagnosticare problemi basati sul web. Ti suggerisco di provarci.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.