Documentation ¶
Overview ¶
Package web
Index ¶
- Variables
- type Configuration
- type Error
- func (e *Error) AlreadyRunning() error
- func (e *Error) HandlerIsNotSet() error
- func (e *Error) ListenSystemdFDS() error
- func (e *Error) ListenSystemdNotFound() error
- func (e *Error) ListenSystemdPID() error
- func (e *Error) ListenSystemdQuantityNotMatch() error
- func (e *Error) NoConfiguration() error
- func (e *Error) ServerHandlerIsNotSet() error
- func (e *Error) TLSIsNil() error
- type Interface
Constants ¶
This section is empty.
Variables ¶
var ( // Mime Справочник MIME типов. Mime = dic.Mime() // Method Справочник HTTP методов запросов. Method = dic.Method() // Header Справочник заголовков. Header = dic.Header() // Status Справочник статусов HTTP ответов. Status = dic.Status() )
Справочники реализованы в отдельной библиотеке. Но есть две причины их появления тут: 1. При написании кода не требуется подключать отдельную библиотеку, а библиотека web уже будет подключена. 2. Все справочник уже являются объектами-одиночками, поэтому ссылки на них не влияют на память, только на удобство.
Functions ¶
This section is empty.
Types ¶
type Configuration ¶
type Configuration struct { // Описание сетевого или локального доступа к серверу. net.Configuration `yaml:"Network" json:"network"` // TODO Сделать ограничение по доменам. // Domains Список всех доменов, на которые отвечает сервер. // Если не пусто, то для всех других доменов будет ответ "Requested host unavailable". // Default value: [] - all domain Domain []string `yaml:"Domain" json:"domain"` // ReadTimeout Время ожидания запроса включая ReadHeaderTimeout. // Если не указано или рано 0 - таймаута нет. // Default value: 0 - no timeout ReadTimeout time.Duration `yaml:"ReadTimeout" json:"read_timeout"` // ReadHeaderTimeout Время ожидания заголовка запроса. // Если не указано или рано 0 - таймаута нет. // Default value: 0 - no timeout ReadHeaderTimeout time.Duration `yaml:"ReadHeaderTimeout" json:"read_header_timeout"` // WriteTimeout Время ожидания выдачи ответа. // Если не указано или рано 0 - таймаута нет. // Default value: 0 - no timeout WriteTimeout time.Duration `yaml:"WriteTimeout" json:"write_timeout"` // IdleTimeout Максимальное время ожидания следующего входящего соединения для открытого сокета, до его закрытия. // Используется при включённом keep-alives. // Если не указано или рано 0 - таймаута нет // Default value: 0 - no timeout IdleTimeout time.Duration `yaml:"IdleTimeout" json:"idle_timeout"` // ShutdownTimeout Максимальное время ожидания завершения работы веб сервера до начала принудительного обрыва // соединений и остановки процессов. // Если не указано или рано 0 - таймаута нет. // Default value: 30s ShutdownTimeout time.Duration `yaml:"ShutdownTimeout" json:"shutdown_timeout" default-value:"30s"` // MaxHeaderBytes Максимальный размер заголовка запроса. // Default value: 1 MB (from net/http/DefaultMaxHeaderBytes) MaxHeaderBytes int `yaml:"MaxHeaderBytes" json:"max_header_bytes" default-value:"1048576"` // TODO Сделать ограничение на максимальный размер тела запроса. // MaxBodyBytes Максимальный размер тела запроса. // Default value: 0 - unlimited MaxBodyBytes uint64 `yaml:"MaxBodyBytes" json:"max_body_bytes"` // KeepAliveDisable Отключение режима "оставаться в живых" (keep alive). // Default value: false - keep alive are enabled. KeepAliveDisable bool `yaml:"KeepAliveDisable" json:"keep_alive_disable"` // DisableGeneralOptionsHandler Отключение обработки HTTP запросов методом OPTION. // Если установлено значение "истина", на все запросы методом OPTION сервер отвечает кодом 200 и передаёт в // заголовке Content-Length значение 0. // Если установлено значение "ложь", запросы передаются контроллеру и обрабатываются обычным образом. // Default value: false - запросы передаются контроллеру. DisableGeneralOptionsHandler bool `yaml:"DisableGeneralOptionsHandler" json:"disable_general_options_handler"` // TODO Сделать загрузку данных по прокси протоколу. // ProxyProtocol Включение прокси протокола. // Прокси протокол позволяет веб-серверу получать информацию о подключении клиента, передаваемую через // прокси-серверы и средства балансировки нагрузки, такие как HAProxy, Amazon Elastic Load Balancer (ELB) и другие. // С помощью прокси протокола веб-сервер может узнать IP-адрес клиента для HTTP, SSL, HTTP/2, SPDY, WebSocket, TCP // запросов приходящих от прокси сервера. // Default value: false ProxyProtocol bool `yaml:"ProxyProtocol" json:"proxy_protocol"` }
Configuration Структура конфигурации веб сервера.
type Error ¶
type Error struct{}
Error object of package
func (*Error) AlreadyRunning ¶ added in v3.0.5
AlreadyRunning Сервер уже запущен.
func (*Error) HandlerIsNotSet ¶ added in v3.0.5
HandlerIsNotSet Не установлен обработчик запросов ВЕБ сервера.
func (*Error) ListenSystemdFDS ¶ added in v3.0.5
ListenSystemdFDS Переменная окружения LISTEN_FDS пустая, либо содержит не верное значение.
func (*Error) ListenSystemdNotFound ¶ added in v3.0.5
ListenSystemdNotFound Получение сокета systemd по имени, имя не найдено.
func (*Error) ListenSystemdPID ¶ added in v3.0.5
ListenSystemdPID Переменная окружения LISTEN_PID пустая, либо содержит не верное значение.
func (*Error) ListenSystemdQuantityNotMatch ¶ added in v3.0.5
ListenSystemdQuantityNotMatch Полученное количество LISTEN_FDS не соответствует переданному LISTEN_FDNAMES.
func (*Error) NoConfiguration ¶ added in v3.0.5
NoConfiguration Конфигурация сервера отсутствует либо равна nil.
func (*Error) ServerHandlerIsNotSet ¶ added in v3.0.5
ServerHandlerIsNotSet Не установлен обработчик основной функции TCP сервера.
type Interface ¶
type Interface interface { // ID Уникальный идентификатор сервера. // Если идентификатор не был указан в конфигурации, создаётся при запуске. ID() string // Handler Назначение обработчика запросов ВЕБ сервера. // Обработчик необходимо назначить до запуска ВЕБ сервера. Handler(handler http.Handler) Interface // ListenAndServe Открытие адреса или сокета без использования конфигурации веб сервера (конфигурация по // умолчанию), запуск веб сервера для обслуживания входящих соединений. ListenAndServe(addr string) Interface // ListenAndServeTLS Открытие адреса или сокета с использованием TLS, без использования конфигурации веб сервера // (конфигурация по умолчанию), запуск веб сервера для обслуживания входящих соединений. ListenAndServeTLS(addr string, certFile string, keyFile string, tlsConfig *tls.Config) Interface // ListenAndServeWithConfig Настройка сервера с использованием переданной конфигурации, открытие адреса или сокета // на прослушивание, запуск веб сервера для обслуживания входящих соединений. ListenAndServeWithConfig(conf *Configuration) Interface // ListenAndServeTLSWithConfig Настройка сервера с использованием переданной конфигурации в режиме TLS, открытие // адреса или сокета на прослушивание, запуск веб сервера для обслуживания входящих соединений. ListenAndServeTLSWithConfig(conf *Configuration, tlsConfig *tls.Config) Interface // ListenersSystemdWithoutNames Возвращает срез net.Listener сокетов переданных в процесс веб сервера из systemd. ListenersSystemdWithoutNames() (ret []net.Listener, err error) // ListenersSystemdWithNames Возвращает карту срезов net.Listener сокетов переданных в процесс веб сервера // из systemd. ListenersSystemdWithNames() (ret map[string][]net.Listener, err error) // ListenersSystemdTLSWithoutNames Возвращает срез net.listener для TLS сокетов переданных в процесс веб сервера // из systemd. ListenersSystemdTLSWithoutNames(tlsConfig *tls.Config) (ret []net.Listener, err error) // ListenersSystemdTLSWithNames Возвращает карту срезов net.listener для TLS сокетов переданных в процесс веб сервера // из systemd. ListenersSystemdTLSWithNames(tlsConfig *tls.Config) (ret map[string][]net.Listener, err error) // NewListener Создание нового слушателя соединений net.Listener на основе конфигурации веб сервера. NewListener(conf *Configuration) (ret net.Listener, err error) // NewListenerTLS Создание нового слушателя соединений net.Listener в режиме TLS, на основе конфигурации // веб сервера. NewListenerTLS(conf *Configuration, tlsConfig *tls.Config) (ret net.Listener, err error) // Serve Запуск веб сервера для входящих соединений на основе переданного слушателя net.Listener. Serve(net.Listener) Interface // ServeWithId Запуск веб сервера для входящих соединений на основе переданного слушателя net.Listener с // указанием ID сервера. ServeWithId(ltn net.Listener, id string) Interface // ServeTLS Запуск веб сервера для входящих соединений на основе переданного слушателя net.Listener с // использованием TLS. ServeTLS(ltn net.Listener, tlsConfig *tls.Config) Interface // ServeTLSWithId Запуск веб сервера для входящих соединений на основе переданного слушателя net.Listener с // использованием TLS и указанием ID сервера. ServeTLSWithId(ltn net.Listener, tlsConfig *tls.Config, id string) Interface // Wait Блокируемая функция ожидания завершения веб сервера, если он запущен. // Если сервер не запущен, функция завершается немедленно. Wait() Interface // Stop Отправка сигнала прерывания работы веб сервера с учётом значения ShutdownTimeout. Stop() Interface // Clean Очистка последней ошибки. Clean() Interface // Errors Справочник ошибок. Errors() *Error // Error Функция возвращает последнюю ошибку веб сервера или библиотеки "github.com/webnice/net", на которой // основан ВЕБ сервер. Error() error }
Interface Интерфейс пакета.