РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1011 of 1593 menu

Функция http.ListenAndServeTLS

Функция http.ListenAndServeTLS запускает HTTPS сервер, который принимает входящие соединения на указанном адресе и порту, используя протокол TLS для шифрования трафика. В первый параметр мы передаем адрес для прослушивания, во второй параметр мы передаем путь к файлу сертификата, в третий параметр мы передаем путь к файлу приватного ключа, в четвертый параметр мы передаем обработчик запросов.

Синтаксис

err := http.ListenAndServeTLS(addr, certFile, keyFile, handler)

Пример

Давайте запустим простой HTTPS сервер, который будет возвращать приветственное сообщение на все запросы:

package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, HTTPS!") }) err := http.ListenAndServeTLS(":443", "server.crt", "server.key", nil) if err != nil { fmt.Println("Server error:", err) } }

Результат выполнения кода:

"Server running on https://localhost:443"

Пример

Давайте создадим сервер с кастомным обработчиком и собственным конфигом TLS:

package main import ( "fmt" "net/http" ) type myHandler struct{} func (h myHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Custom handler response") } func main() { handler := myHandler{} err := http.ListenAndServeTLS(":8443", "cert.pem", "key.pem", handler) if err != nil { fmt.Println("Server error:", err) } }

Результат выполнения кода:

"Server started on port 8443 with custom handler"

Пример

Давайте используем функцию с адресом localhost и стандартным обработчиком по умолчанию:

package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/test", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Test endpoint") }) err := http.ListenAndServeTLS("localhost:8080", "localhost.crt", "localhost.key", nil) if err != nil { fmt.Println("Server error:", err) } }

Результат выполнения кода:

"Server listening on https://localhost:8080"

Смотрите также

  • функцию http.ListenAndServe,
    которая запускает HTTP сервер без TLS шифрования
  • функцию Server.ListenAndServeTLS,
    которая запускает TLS сервер с дополнительными настройками
  • функцию Server.ListenAndServe,
    которая запускает HTTP сервер с расширенной конфигурацией
  • функцию http.ServeFile,
    которая отдает файлы через HTTP сервер
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить