Go

HTTP-Client

http.Client, Requests, Timeouts, Transport, Redirects, Cookies, benutzerdefinierte Header

18 Interview-Fragen·
Mid-Level
1

Was ist der Hauptunterschied zwischen http.Get und http.Client.Get?

Antwort

http.Get verwendet einen Standard-HTTP-Client (http.DefaultClient), der keine Anpassung bietet, während http.Client.Get die Konfiguration von Parametern wie Timeouts, Redirect-Richtlinien oder benutzerdefiniertem Transport ermöglicht. In der Produktion wird empfohlen, einen benutzerdefinierten HTTP-Client zu erstellen, um das Verhalten der Requests zu steuern und unbegrenztes Blockieren zu vermeiden.

2

Was passiert, wenn http.Client.Timeout nicht gesetzt ist?

Antwort

Ohne expliziten Timeout wartet der HTTP-Client unbegrenzt auf die Serverantwort, was die Anwendung blockieren kann, wenn der Server nicht antwortet. Der Standard-Timeout ist null, was keine Zeitbegrenzung bedeutet. Setze in der Produktion immer einen angemessenen Timeout, um blockierte Goroutines und Ressourcenlecks zu vermeiden.

3

Wie fügt man benutzerdefinierte Header zu einem HTTP-Request hinzu?

Antwort

Benutzerdefinierte Header werden über http.Request.Header.Set() oder Header.Add() hinzugefügt, nachdem der Request mit http.NewRequest erstellt wurde. Die Set-Methode ersetzt vorhandene Werte, während Add einen neuen Wert für denselben Schlüssel anhängt. Dieser Ansatz ist für Authentifizierung, Content Negotiation oder das Verfolgen von Requests mit benutzerdefinierten Bezeichnern erforderlich.

4

Warum ist es wichtig, response.Body.Close() aufzurufen?

5

Welche HTTP-Methode ermöglicht das Senden von JSON-Daten an den Server?

+15 Interview-Fragen

Meistere Go für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten