
HTTP-Client
http.Client, Requests, Timeouts, Transport, Redirects, Cookies, benutzerdefinierte Header
1Was ist der Hauptunterschied zwischen http.Get und http.Client.Get?
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.
2Was passiert, wenn http.Client.Timeout nicht gesetzt ist?
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.
3Wie fügt man benutzerdefinierte Header zu einem HTTP-Request hinzu?
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.
Warum ist es wichtig, response.Body.Close() aufzurufen?
Welche HTTP-Methode ermöglicht das Senden von JSON-Daten an den Server?
+15 Interview-Fragen
Weitere Go-Interviewthemen
Go-Grundlagen
Go-Datenstrukturen
Go-Interfaces
Fehlerbehandlung
Goroutines-Grundlagen
Channels
Go Modules
HTTP-Server
JSON-Kodierung
Database/SQL
context-Paket
Testing
Concurrency-Patterns
Synchronisationsprimitive
Go-Web-Frameworks
REST-API-Design
gRPC
Reflection
Speicherverwaltung
Performance-Optimierung
Generics
Go Design Patterns
Microservices
Sicherheit und Authentifizierung
Docker & Containerization
Kubernetes Basics
Fortgeschrittenes Go
CLI-Entwicklung
Meistere Go für dein nächstes Interview
Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.
Kostenlos starten