
Client HTTP
http.Client, request, timeout, transport, redirect, cookie, header personalizzati
1Qual è la principale differenza tra http.Get e http.Client.Get?
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.
2Cosa succede se http.Client.Timeout non è impostato?
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.
3Come aggiungere header personalizzati a una richiesta HTTP?
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.
Perché è importante chiamare response.Body.Close()?
Quale metodo HTTP permette di inviare dati JSON al server?
+15 domande da colloquio
Altri argomenti di colloquio Go
Fondamenti di Go
Strutture dati in Go
Interfacce in Go
Gestione degli errori
Goroutine di base
Channels
Go Modules
Server HTTP
Codifica JSON
Database/SQL
Pacchetto context
Testing
Pattern di concorrenza
Primitive di sincronizzazione
Framework web Go
Progettazione di API REST
gRPC
Reflection
Gestione della memoria
Ottimizzazione delle prestazioni
Generics
Go Design Patterns
Microservices
Sicurezza e autenticazione
Docker & Containerization
Kubernetes Basics
Go Avanzato
Sviluppo CLI
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