Sobes.tech
Назад к вопросам
Middle+
6

Как работает HTTP сервер в Go?

Компании, где спрашивали
MAX LTD Group

Ответ от нейросети

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!" на все запросы.