Back to questions
Middle+
5
Как работает HTTP сервер в Go?
Companies where asked
MAX LTD Group
Answer from AI
sobes.tech AI
HTTP сервер в Go работает на базе пакета net/http, который реализует HTTP-протокол и предоставляет удобный интерфейс для создания серверов.
Основные моменты работы:
- Сервер слушает указанный адрес и порт с помощью
http.ListenAndServe. - Для обработки запросов регистрируются обработчики (handlers), которые реализуют интерфейс
http.Handlerили функцию с сигнатуройfunc(http.ResponseWriter, *http.Request). - При поступлении запроса Go создает объект
http.Requestс информацией о запросе и объектhttp.ResponseWriterдля формирования ответа. - Обработчик читает данные из запроса, выполняет логику и записывает ответ через
ResponseWriter. - Встроенный сервер поддерживает параллельную обработку запросов с помощью горутин, что обеспечивает высокую производительность.
Пример простого HTTP сервера:
package main
import (
"fmt"
"net/http"
)
func helloHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, World!")
}
func main() {
http.HandleFunc("/", helloHandler)
http.ListenAndServe(":8080", nil)
}
Этот код запускает сервер на порту 8080, который отвечает "Hello, World!" на все запросы.