
HTTP-клієнт
http.Client, запити, timeout-и, transport, редиректи, cookie, кастомні заголовки
1Яка основна різниця між http.Get та http.Client.Get?
Яка основна різниця між http.Get та http.Client.Get?
Відповідь
http.Get використовує HTTP-клієнт за замовчуванням (http.DefaultClient), який не пропонує жодного налаштування, тоді як http.Client.Get дозволяє конфігурувати параметри, як-от timeout-и, політики редиректів чи кастомний transport. У продакшені рекомендується створити кастомний HTTP-клієнт, щоб контролювати поведінку запитів і уникати безкінечного блокування.
2Що відбувається, якщо http.Client.Timeout не встановлено?
Що відбувається, якщо http.Client.Timeout не встановлено?
Відповідь
Без явного timeout HTTP-клієнт чекає на відповідь сервера безкінечно, що може заблокувати застосунок, якщо сервер не відповідає. Timeout за замовчуванням дорівнює нулю, що означає відсутність обмеження за часом. Завжди встановлюйте розумний timeout у продакшені, щоб уникнути заблокованих goroutine та витоків ресурсів.
3Як додати кастомні заголовки до HTTP-запиту?
Як додати кастомні заголовки до HTTP-запиту?
Відповідь
Кастомні заголовки додаються через http.Request.Header.Set() або Header.Add() після створення запиту за допомогою http.NewRequest. Метод Set замінює наявні значення, тоді як Add додає нове значення для того самого ключа. Цей підхід необхідний для автентифікації, узгодження вмісту чи відстеження запитів за допомогою кастомних ідентифікаторів.
Чому важливо викликати response.Body.Close()?
Який HTTP-метод дозволяє надсилати дані JSON на сервер?
+15 питань зі співбесід
Інші теми співбесід Go
Основи Go
Структури даних Go
Інтерфейси Go
Обробка помилок
Основи goroutines
Channels
Go Modules
HTTP-сервер
Кодування JSON
Database/SQL
Пакет context
Testing
Патерни конкурентності
Примітиви синхронізації
Веб-фреймворки Go
Проєктування REST API
gRPC
Reflection
Керування пам'яттю
Оптимізація продуктивності
Generics
Go Design Patterns
Microservices
Безпека та автентифікація
Docker & Containerization
Kubernetes Basics
Просунутий Go
Розробка CLI
Опануй Go для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно