Documentation
¶
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"`
}
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 Интерфейс пакета.