Go

Client HTTP

http.Client, request, timeout, transport, redirect, cookie, header personalizzati

18 domande da colloquio·
Mid-Level
1

Qual è la principale differenza tra http.Get e http.Client.Get?

Risposta

http.Get usa un client HTTP predefinito (http.DefaultClient) che non offre alcuna personalizzazione, mentre http.Client.Get consente di configurare parametri come timeout, politiche di redirect o transport personalizzato. In produzione, è consigliato creare un client HTTP personalizzato per controllare il comportamento delle richieste ed evitare blocchi indefiniti.

2

Cosa succede se http.Client.Timeout non è impostato?

Risposta

Senza un timeout esplicito, il client HTTP attende indefinitamente la risposta del server, il che può bloccare l'applicazione se il server non risponde. Il timeout predefinito è zero, ovvero nessun limite di tempo. Imposta sempre un timeout ragionevole in produzione per evitare goroutine bloccate e perdite di risorse.

3

Come aggiungere header personalizzati a una richiesta HTTP?

Risposta

Gli header personalizzati si aggiungono tramite http.Request.Header.Set() o Header.Add() dopo aver creato la richiesta con http.NewRequest. Il metodo Set sostituisce i valori esistenti mentre Add aggiunge un nuovo valore per la stessa chiave. Questo approccio è necessario per l'autenticazione, la negoziazione del contenuto o il tracciamento delle richieste con identificatori personalizzati.

4

Perché è importante chiamare response.Body.Close()?

5

Quale metodo HTTP permette di inviare dati JSON al server?

+15 domande da colloquio

Padroneggia Go per il tuo prossimo colloquio

Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.

Inizia gratis