
Klient HTTP
http.Client, requesty, timeouty, transport, przekierowania, cookies, niestandardowe nagłówki
1Jaka jest główna różnica między http.Get a http.Client.Get?
Jaka jest główna różnica między http.Get a http.Client.Get?
Odpowiedź
http.Get używa domyślnego klienta HTTP (http.DefaultClient), który nie oferuje żadnej personalizacji, natomiast http.Client.Get pozwala konfigurować parametry takie jak timeouty, polityki przekierowań czy niestandardowy transport. W produkcji zaleca się utworzenie niestandardowego klienta HTTP, aby kontrolować zachowanie requestów i uniknąć bezterminowego blokowania.
2Co się stanie, jeśli http.Client.Timeout nie zostanie ustawiony?
Co się stanie, jeśli http.Client.Timeout nie zostanie ustawiony?
Odpowiedź
Bez jawnego timeoutu klient HTTP czeka na odpowiedź serwera bezterminowo, co może zablokować aplikację, jeśli serwer nie odpowiada. Domyślny timeout wynosi zero, co oznacza brak limitu czasu. Zawsze ustawiaj rozsądny timeout w produkcji, aby uniknąć zablokowanych goroutine i wycieków zasobów.
3Jak dodać niestandardowe nagłówki do żądania HTTP?
Jak dodać niestandardowe nagłówki do żądania HTTP?
Odpowiedź
Niestandardowe nagłówki dodaje się przez http.Request.Header.Set() lub Header.Add() po utworzeniu żądania za pomocą http.NewRequest. Metoda Set zastępuje istniejące wartości, podczas gdy Add dodaje nową wartość dla tego samego klucza. To podejście jest niezbędne do uwierzytelniania, negocjacji treści lub śledzenia żądań za pomocą niestandardowych identyfikatorów.
Dlaczego ważne jest wywołanie response.Body.Close()?
Która metoda HTTP umożliwia wysłanie danych JSON do serwera?
+15 pytań z rozmów
Inne tematy rekrutacyjne Go
Podstawy Go
Struktury danych w Go
Interfejsy w Go
Obsługa błędów
Podstawy goroutines
Channels
Go Modules
Serwer HTTP
Kodowanie JSON
Database/SQL
Pakiet context
Testing
Wzorce współbieżności
Prymitywy synchronizacji
Frameworki webowe Go
Projektowanie API REST
gRPC
Reflection
Zarządzanie pamięcią
Optymalizacja wydajności
Generics
Go Design Patterns
Microservices
Bezpieczeństwo i uwierzytelnianie
Docker & Containerization
Kubernetes Basics
Zaawansowany Go
Tworzenie CLI
Opanuj Go na następną rozmowę
Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.
Zacznij za darmo