dic

package module
v1.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 30, 2024 License: MIT Imports: 9 Imported by: 20

README

dic

GoDoc Go Report Card Coverage Status

Описание

Библиотека справочников. Реализованы следующие справочники:

  • Mime - Справочник MIME типов.

  • Method - Справочник HTTP методов запросов.

  • Header - Справочник заголовков.

  • Status - Справочник статусов HTTP ответов.

  • File - Справочник MIME типов расширений файлов.

  • Error - Справочник ошибок.

Справочники реализованы таким образом, чтобы их можно было дополнять пользовательскими данными через встраивание. А получившийся пользовательский справочник обладал бы всеми свойствами справочника данной библиотеки и принимался бы теми же функциями, которые используют исходный справочник.

Подключение
go get github.com/webnice/dic
Пример дополнения справочника пользовательскими данными
package main

import "fmt"

// CustomHeader Структура нового справочника с дополнительными пользовательскими заголовками.
type CustomHeader struct {
	Headers // Встраивание всех уже существующих заголовков.

	// MyCustomHeader1 Заголовок my-custom/header-1.
	MyCustomHeader1 IHeader

	// HeaderSecondCustom Заголовок header-second/custom.
	HeaderSecondCustom IHeader
}

// Реализация дополнительных пользовательских заголовков справочника.
var custom = &CustomHeader{
	Headers:            Header(),                          // Подключение всех существующих заголовков.
	MyCustomHeader1:    NewHeader("My-Custom/Header-1"),   // Заголовок my-custom/header-1.
	HeaderSecondCustom: NewHeader("Header-Second/Custom"), // Заголовок header-second/custom.
}

// Использование нового справочника.
func main() {
	var mch = custom.MyCustomHeader1
	var result = custom.AcceptPatch.IsEqual(mch)

	fmt.Printf("Является ли заголовок %q эквивалентным заголовку %q? Ответ: %t\n", mch, custom.AcceptPatch, result)
	hcc := custom.HeaderSecondCustom
	result = hcc.IsEqual(mch)
	fmt.Printf("Является ли заголовок %q эквивалентным заголовку %q? Ответ: %t\n", hcc, mch, result)
}

Результат:
Является ли заголовок "My-Custom/Header-1" эквивалентным заголовку "Accept-Patch"? Ответ: false
Является ли заголовок "Header-Second/Custom" эквивалентным заголовку "My-Custom/Header-1"? Ответ: false

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Errors added in v1.3.0

type Errors struct {
	// Unknown Неизвестная ошибка.
	Unknown IError
}

Errors Предопределённые ошибки.

func Error added in v1.3.0

func Error() Errors

Error Справочник ошибок.

func (*Errors) NewError added in v1.3.0

func (errs *Errors) NewError(template string, arg ...string) IError

NewError Создание объекта под интерфейс IError, функция предназначена для формирования настраиваемых справочников.

func (*Errors) ParseError added in v1.3.0

func (errs *Errors) ParseError(e error, db ...any) (ret IError)

ParseError Анализ ошибки завёрнутой в стандартный интерфейс ошибки и извлечение IError. Если ошибка IError не найдена, создание новой ошибки с интерфейсом IError на базе ошибки error.

func (*Errors) Unbind added in v1.3.0

func (errs *Errors) Unbind(err error) (ierr IError)

Unbind Разыменовывает error, представленный стандартным интерфейсом ошибки, в объект IError. Если в error не содержится объекта удовлетворяющего интерфейсу IError, возвращается nil.

type Headers

type Headers struct {
	// AIm Заголовок "A-IM", RFC3229. Допустимые манипуляции с экземпляром запроса. Пример: A-IM: feed.
	AIm IHeader
	// Accept Заголовок "Accept", HTTP/1.0. Список допустимых форматов ресурса.
	Accept IHeader
	// AcceptCh Заголовок "Accept-CH", HTTP/1.1. Может быть установлен сервером, чтобы указать, какие заголовки клиентских подсказок клиент должен включать в последующие запросы.
	AcceptCh IHeader
	// AcceptCharset Заголовок "Accept-Charset", HTTP/1.0. Перечень поддерживаемых кодировок для предоставления пользователю.
	AcceptCharset IHeader
	// AcceptEncoding Заголовок "Accept-Encoding", HTTP/1.0. Перечень поддерживаемых способов кодирования содержимого сущности при передаче.
	AcceptEncoding IHeader
	// AcceptLanguage Заголовок "Accept-Language", HTTP/1.0. Список поддерживаемых естественных языков.
	AcceptLanguage IHeader
	// AcceptPatch Заголовок "Accept-Patch", HTTP/1.1. Указывает MIME тип контента, который сервер может принять в запросе методом PATH. Пример: Accept-Patch: application/example, text/example;charset=utf-8.
	AcceptPatch IHeader
	// AcceptPost Заголовок "Accept-Post", HTTP/1.1. Указывает MIME тип контента, который сервер может принять в запросе методом POST. Пример: Accept-Post: image/webp.
	AcceptPost IHeader
	// AcceptRanges Заголовок "Accept-Ranges", HTTP/1.1. Перечень единиц измерения диапазонов.
	AcceptRanges IHeader
	// AccessControlAllowCredentials Заголовок "Access-Control-Allow-Credentials", HTTP/1.1. Разрешает браузеру предоставлять доступ к ответу сервера JavaScript скриптам. Пример: Access-Control-Allow-Credentials: true.
	AccessControlAllowCredentials IHeader
	// AccessControlAllowHeaders Заголовок "Access-Control-Allow-Headers", HTTP/1.1. Указывает заголовки, которые можно использовать в запросах. Пример: Access-Control-Allow-Headers: X-Custom-Header, Upgrade-Insecure-Requests.
	AccessControlAllowHeaders IHeader
	// AccessControlAllowMethods Заголовок "Access-Control-Allow-Methods", HTTP/1.1. Указывает методы запросов, которые можно использовать в запросах к серверу. Пример: Access-Control-Allow-Methods: POST, GET, OPTIONS.
	AccessControlAllowMethods IHeader
	// AccessControlAllowOrigin Заголовок "Access-Control-Allow-Origin", HTTP/1.1. Указывает источники, которые могут выполнять запросы к серверу. Пример: Access-Control-Allow-Origin: https://developer.mozilla.org.
	AccessControlAllowOrigin IHeader
	// AccessControlExposeHeaders Заголовок "Access-Control-Expose-Headers", HTTP/1.1. Указывает браузеру, какие заголовки могут быть доступны JavaScript скриптам. Пример: Access-Control-Expose-Headers: Content-Encoding, Kuma-Revision.
	AccessControlExposeHeaders IHeader
	// AccessControlMaxAge Заголовок "Access-Control-Max-Age", HTTP/1.1. Указывает время (в секундах), в течении которого браузер может кешировать ответ сервера. Пример: Access-Control-Max-Age: 600.
	AccessControlMaxAge IHeader
	// AccessControlRequestHeaders Заголовок "Access-Control-Request-Headers", HTTP/1.1. Заголовок используется браузерами чтобы выяснить какие заголовки принимает сервер от JavaScript скриптов. Пример: Access-Control-Request-Headers: X-PINGOTHER, Content-Type.
	AccessControlRequestHeaders IHeader
	// AccessControlRequestMethod Заголовок "Access-Control-Request-Method", HTTP/1.1. Заголовок используется браузерами чтобы выяснить какие HTTP методы принимает сервер от JavaScript скриптов. Пример: Access-Control-Request-Method: POST.
	AccessControlRequestMethod IHeader
	// Age Заголовок "Age", HTTP/1.1. Количество секунд с момента модификации ресурса.
	Age IHeader
	// Allow Заголовок "Allow", HTTP/1.0. Список поддерживаемых методов.
	Allow IHeader
	// AltSvc Заголовок "Alt-Svc", HTTP/1.1. Заголовок позволяет серверу указать другое авторитетное местонахождение запрашиваемого ресурса. Пример: Alt-Svc: h3-25=":443"; ma=3600, h2=":443"; ma=3600.
	AltSvc IHeader
	// AltUsed Заголовок "Alt-Used", HTTP/1.1. Используется для идентификации альтернативного местонахождения ресурса, по аналогии с заголовком Host. Пример: Alt-Used: alternate.example.net:443.
	AltUsed IHeader
	// Alternates Заголовок "Alternates", HTTP/1.1. Указание на альтернативные способы представления ресурса.
	Alternates IHeader
	// Authorization Заголовок "Authorization", HTTP-Auth. Данные для авторизации.
	Authorization IHeader
	// AutoSubmitted Заголовок "Auto-Submitted", Mail MIME. Заголовок автоматической обработки писем или автоматически созданных писем.
	AutoSubmitted IHeader
	// CacheControl Заголовок "Cache-Control", HTTP/1.1. Основные директивы для управления кэшированием.
	CacheControl IHeader
	// ClearSiteData Заголовок "Clear-Site-Data", HTTP/1.1. Указывает браузеру какие данные необходимо очистить после получения данных. Пример: Clear-Site-Data: "cache", "cookies".
	ClearSiteData IHeader
	// Connection Заголовок "Connection", HTTP/1.1. Сведения о проведении соединения.
	Connection IHeader
	// ContentDisposition Заголовок "Content-Disposition", CDH. Способ распределения сущностей в сообщении при передаче нескольких фрагментов.
	ContentDisposition IHeader
	// ContentEncoding Заголовок "Content-Encoding", HTTP/1.0. Способ кодирования содержимого сущности при передаче.
	ContentEncoding IHeader
	// ContentLanguage Заголовок "Content-Language", HTTP/1.0. Один или несколько естественных языков содержимого сущности.
	ContentLanguage IHeader
	// ContentLength Заголовок "Content-Length", HTTP/1.0. Размер содержимого сущности в октетах (которые в русском языке обычно называют байтами).
	ContentLength IHeader
	// ContentLocation Заголовок "Content-Location", HTTP/1.1. Альтернативное расположение содержимого сущности.
	ContentLocation IHeader
	// ContentMd5 Заголовок "Content-MD5", MD5H. Base64 MD5-хэша сущности для проверки целостности.
	ContentMd5 IHeader
	// ContentRange Заголовок "Content-Range", HTTP/1.1. Байтовые диапазоны передаваемой сущности если возвращается фрагмент.
	ContentRange IHeader
	// ContentSecurityPolicy Заголовок "Content-Security-Policy", HTTP/1.1. Указывает браузеру какие ресурсы разрешено запрашивать из JavaScript скриптов. Пример: Content-Security-Policy: default-src 'self' http://example.com; connect-src 'none'.
	ContentSecurityPolicy IHeader
	// ContentSecurityPolicyReportOnly Заголовок "Content-Security-Policy-Report-Only", HTTP/1.1. Отслеживание нарушений политик запросов из скриптов без блокировки. Вместо этого браузер отправляет на сервер отчёты о нарушениях. Пример: Content-Security-Policy: default-src https:; report-to /csp-violation-report-endpoint/.
	ContentSecurityPolicyReportOnly IHeader
	// ContentType Заголовок "Content-Type", HTTP/1.0. Формат и способ представления сущности.
	ContentType IHeader
	// ContentVersion Заголовок "Content-Version", HTTP/1.1. Информация о текущей версии сущности.
	ContentVersion IHeader
	// Cookie Заголовок "Cookie", HTTP/1.0. Передача на сервер сохранённых печенек.
	Cookie IHeader
	// CrossOriginEmbedderPolicy Заголовок "Cross-Origin-Embedder-Policy", HTTP/1.1. Настраивает встраиваемые ресурсы в документ. Пример: Cross-Origin-Embedder-Policy: require-corp.
	CrossOriginEmbedderPolicy IHeader
	// CrossOriginOpenerPolicy Заголовок "Cross-Origin-Opener-Policy", HTTP/1.1. Настройки изоляции документа. Смотреть документацию по атакам XS-Leaks.
	CrossOriginOpenerPolicy IHeader
	// CrossOriginResourcePolicy Заголовок "Cross-Origin-Resource-Policy", HTTP/1.1. Настройки блокировки запросов CORS.
	CrossOriginResourcePolicy IHeader
	// Date Заголовок "Date", HTTP/1.0. Дата генерации отклика.
	Date IHeader
	// DeliveredTo Заголовок "Delivered-To", Mail MIME. Заголовок добавляемый почтовым сервером при обработке входящего письма.
	DeliveredTo IHeader
	// DerivedFrom Заголовок "Derived-From", HTTP/1.1. Информация о текущей версии сущности.
	DerivedFrom IHeader
	// DeviceMemory Заголовок "Device-Memory", HTTP/1.1. Указывает приблизительный объём памяти устройства в гигабайтах. Используется только в TLS и после регистрации Accept-CH или Vary.
	DeviceMemory IHeader
	// ETag Заголовок "ETag", HTTP/1.1. Тег (уникальный идентификатор) версии сущности, используемый при кэшировании.
	ETag IHeader
	// Expect Заголовок "Expect", HTTP/1.1v2. Указывает серверу что клиент ожидает от него дополнительного действия.
	Expect IHeader
	// Expires Заголовок "Expires", HTTP/1.0. Дата предполагаемого истечения срока актуальности сущности.
	Expires IHeader
	// Forwarded Заголовок "Forwarded", RFC7239. Раскрывает исходную информацию о клиенте, при передаче запроса через прокси сервер.
	Forwarded IHeader
	// From Заголовок "From", HTTP/1.1. Адрес электронной почты ответственного лица со стороны клиента.
	From IHeader
	// Host Заголовок "Host", HTTP/1.1. Доменное имя и порт хоста запрашиваемого ресурса. Необходимо для поддержки виртуального хостинга на серверах.
	Host IHeader
	// Http2Settings Заголовок "HTTP2-Settings", RFC7540, RFC9113. Запрос обновления протокола с HTTP/1.1 на HTTP/2. Пример: HTTP2-Settings: token64.
	Http2Settings IHeader
	// IfMatch Заголовок "If-Match", HTTP/1.1. Список тегов версий сущности. Выполнять метод, если они существуют.
	IfMatch IHeader
	// IfModifiedSince Заголовок "If-Modified-Since", HTTP/1.0. Дата. Выполнять метод если сущность изменилась с указанного момента.
	IfModifiedSince IHeader
	// IfNoneMatch Заголовок "If-None-Match", HTTP/1.1. Список тегов версий сущности. Выполнять метод если ни одного из них не существует.
	IfNoneMatch IHeader
	// IfRange Заголовок "If-Range", HTTP/1.1. Список тегов версий сущности или дата для определённого фрагмента сущности.
	IfRange IHeader
	// IfUnmodifiedSince Заголовок "If-Unmodified-Since", HTTP/1.1. Дата. Выполнять метод если сущность не изменилась с указанной даты.
	IfUnmodifiedSince IHeader
	// Importance Заголовок "Importance", RFC4021. Mail MIME.
	Importance IHeader
	// KeepAlive Заголовок "Keep-Alive", HTTP/1.1. Информирование о возможности установки длительного соединения, максимального количества запросов по нему и таймаута.
	KeepAlive IHeader
	// LastModified Заголовок "Last-Modified", HTTP/1.0. Дата последней модификации сущности.
	LastModified IHeader
	// Link Заголовок "Link", HTTP/1.0. Указывает на логически связанный с сущностью ресурс аналогично тегу <LINK> в HTML.
	Link IHeader
	// Location Заголовок "Location", HTTP/1.0. URI по которому клиенту следует перейти или URI созданного ресурса.
	Location IHeader
	// MaxForwards Заголовок "Max-Forwards", HTTP/1.1. Максимально допустимое количество переходов через прокси.
	MaxForwards IHeader
	// MessageId Заголовок "Message-Id", Mail MIME. Уникальный идентификатор письма.
	MessageId IHeader
	// MimeVersion Заголовок "MIME-Version", MIME. Версия протокола MIME, по которому было сформировано сообщение.
	MimeVersion IHeader
	// MsEchoRequest Заголовок "Ms-Echo-Request", Заголовок перечисления необходимых полей, которыми необходимо дополнить и повторить запрос.
	MsEchoRequest IHeader
	// Origin Заголовок "Origin", HTTP/1.0. Указывает источник, схема, хост, порт, вызвавшего запрос. Пример: Origin: http://developer.mozilla.org:80.
	Origin IHeader
	// PermissionsPolicy Заголовок "Permissions-Policy", HTTP/1.1. Указывает браузеры разрешение для ресурса на использование в iframe.
	PermissionsPolicy IHeader
	// Pragma Заголовок "Pragma", HTTP/1.0. Особенные опции выполнения операции.
	Pragma IHeader
	// Precedence Заголовок "Precedence", Mail MIME. Заголовок почтовых рассылок. Документация на mail.ru или mailchimp.
	Precedence IHeader
	// Prefer Заголовок "Prefer", RFC7240. Запрос от клиента к серверу о выполнении определённых действий над передаваемыми данными запроса. Пример: Prefer: return=representation.
	Prefer IHeader
	// Priority Заголовок "Priority", Mail MIME. Приоритет письма.
	Priority IHeader
	// ProxyAuthenticate Заголовок "Proxy-Authenticate", HTTP-Auth. Параметры аутентификации на прокси-сервере.
	ProxyAuthenticate IHeader
	// ProxyAuthorization Заголовок "Proxy-Authorization", HTTP-Auth. Информация для авторизации на прокси-сервере.
	ProxyAuthorization IHeader
	// Public Заголовок "Public", HTTP/1.1. Список доступных методов аналогично Allow, но для всего сервера.
	Public IHeader
	// Range Заголовок "Range", HTTP/1.1. Байтовые диапазоны для запроса фрагментов ресурса. Подробности: Частичные GET.
	Range IHeader
	// Received Заголовок "Received", Mail MIME. Заголовок добавляемый почтовым сервером, указывает испочник получения письма.
	Received IHeader
	// Referer Заголовок "Referer", HTTP/1.0. URI ресурса, после которого клиент сделал текущий запрос.
	Referer IHeader
	// RetryAfter Заголовок "Retry-After", HTTP/1.0. Дата или время в секундах после которого можно повторить запрос.
	RetryAfter IHeader
	// ReturnPath Заголовок "Return-Path", Mail MIME. Адрес, на который необходимо вернуть письмо в случае ошибок доставки.
	ReturnPath IHeader
	// Server Заголовок "Server", HTTP/1.0. Список названий и версий веб-сервера и его компонентов с комментариями. Для прокси-серверов поле Via.
	Server IHeader
	// SetCookie Заголовок "Set-Cookie", HTTP/1.0. Заголовок установки печенек.
	SetCookie IHeader
	// SourceMap Заголовок "SourceMap", HTTP/1.1. Указывает браузеру местонахождение карты исходных кодов. Пример: SourceMap: /path/to/file.js.map.
	SourceMap IHeader
	// Status Заголовок "Status", RFC9110. Заголовок CGI скриптов, указывающий статус HTTP ответа. Пример: Status: 200 OK.
	Status IHeader
	// StrictTransportSecurity Заголовок "Strict-Transport-Security", HTTP/1.1. Информирует браузер о том что доступ к ресурсу должен осуществляться только через HTTPS. Пример: Strict-Transport-Security: max-age=31536000; includeSubDomains.
	StrictTransportSecurity IHeader
	// Te Заголовок "TE", HTTP/1.1v2. Список расширенных способов кодирования при передаче. Пример: TE: trailers, deflate.
	Te IHeader
	// Title Заголовок "Title", HTTP/1.0. Заголовок сущности.
	Title IHeader
	// Trailer Заголовок "Trailer", HTTP/1.1v2. Список полей, имеющих отношение к кодированию сообщения при передаче.
	Trailer IHeader
	// TransferEncoding Заголовок "Transfer-Encoding", HTTP/1.1. Список способов кодирования, которые были применены к сообщению для передачи. Пример: chunked.
	TransferEncoding IHeader
	// Upgrade Заголовок "Upgrade", HTTP/1.1. Список предлагаемых клиентом протоколов. Сервер указывает один протокол.
	Upgrade IHeader
	// UpgradeInsecureRequests Заголовок "Upgrade-Insecure-Requests", HTTP/1.1. Заголовок готовности клиента перейти на TLS соединение. Пример: Upgrade-Insecure-Requests: 1.
	UpgradeInsecureRequests IHeader
	// UserAgent Заголовок "User-Agent", HTTP/1.0. Список названий и версий клиента и его компонентов с комментариями.
	UserAgent IHeader
	// Vary Заголовок "Vary", HTTP/1.1. Список описывающих ресурс полей из запроса, которые были приняты во внимание.
	Vary IHeader
	// Via Заголовок "Via", HTTP/1.1. Список версий протокола, названий и версий прокси-серверов, через которых прошло сообщение.
	Via IHeader
	// Warning Заголовок "Warning", HTTP/1.1. Код, агент, сообщение и дата, если возникла критическая ситуация. Пример: Warning: 199 Miscellaneous warning.
	Warning IHeader
	// WwwAuthenticate Заголовок "WWW-Authenticate", HTTP-Auth. Параметры аутентификации для выполнения метода к указанному ресурсу.
	WwwAuthenticate IHeader
	// XAutoResponseSuppress Заголовок "X-Auto-Response-Suppress", Mail MIME. Заголовок подавления автоматического ответа на письмо.
	XAutoResponseSuppress IHeader
	// XCaptchaType Заголовок "X-Captcha-Type", Тип передаваемой капчи.
	XCaptchaType IHeader
	// XCarrier Заголовок "X-Carrier", Расширенный тип мобильного трафика, значения: ["tele2", "mts", ...].
	XCarrier IHeader
	// XConnectionType Заголовок "X-Connection-Type", Тип подключения, значения: ["3g", "wifi", "cable", "broadband", ...].
	XConnectionType IHeader
	// XContentDuration Заголовок "X-Content-Duration", Продолжительность аудио или видео в секундах.
	XContentDuration IHeader
	// XCorrelationId Заголовок "X-Correlation-ID", Сопоставление или идентификация запросов между клиентом и сервером.
	XCorrelationId IHeader
	// XDayOfWeek Заголовок "X-Day-Of-Week", День недели, значения: [0,1,2,3,4,5,6] 0=пнд, -1=не известен.
	XDayOfWeek IHeader
	// XDeviceManufacturer Заголовок "X-Device-Manufacturer", Производитель или марка устройства.
	XDeviceManufacturer IHeader
	// XDeviceModel Заголовок "X-Device-Model", Модель устройства.
	XDeviceModel IHeader
	// XFailedRecipients Заголовок "X-Failed-Recipients", Mail MIME. Список адресов получателей, которым не удалось доставить сообщение.
	XFailedRecipients IHeader
	// XForwardedFor Заголовок "X-Forwarded-For", Nginx. Полученное nginx значение заголовка X-Forwarded-For. Если заголовок не передавался, тогда равно IP адресу клиента. Пример: X-Forwarded-For $proxy_add_x_forwarded_for.
	XForwardedFor IHeader
	// XForwardedProto Заголовок "X-Forwarded-Proto", Nginx. Схема. Значения: ["http", "https"]. Пример: X-Forwarded-Proto $scheme.
	XForwardedProto IHeader
	// XFrameOptions Заголовок "X-Frame-Options", HTTP/1.1. Указывает браузеры разрешение для ресурса на использование в iframe.
	XFrameOptions IHeader
	// XGeoCity Заголовок "X-Geo-City", Город.
	XGeoCity IHeader
	// XGeoContinent Заголовок "X-Geo-Continent", Географический континент.
	XGeoContinent IHeader
	// XGeoCountry Заголовок "X-Geo-Country", Страна.
	XGeoCountry IHeader
	// XGeoRegion Заголовок "X-Geo-Region", Географический регион.
	XGeoRegion IHeader
	// XInternetServiceProvider Заголовок "X-Internet-Service-Provider", Расширенная сегментация типа подключения по ISP (интернет-провайдер).
	XInternetServiceProvider IHeader
	// XMsMailPriority Заголовок "X-MSMail-Priority", Mail MIME. Приоритет письма.
	XMsMailPriority IHeader
	// XPoweredBy Заголовок "X-Powered-By", Указывает технологию, фреймворк или иное П.О. используемое сервером.
	XPoweredBy IHeader
	// XPriority Заголовок "X-Priority", Mail MIME. Приоритет письма.
	XPriority IHeader
	// XProjectId Заголовок "X-Project-Id", Уникальный идентификатор проекта.
	XProjectId IHeader
	// XProxyType Заголовок "X-ProxyType", Тип прокси, значения: ["vpn", "tor", "dch", "pub", "web"].
	XProxyType IHeader
	// XRealIP Заголовок "X-Real-IP", Nginx. IP адрес клиента. Пример: X-Real-IP $remote_addr.
	XRealIP IHeader
	// XRecaptchaSiteKey Заголовок "X-Recaptcha-Site-Key", Ключ домена от сервиса reCaptcha.
	XRecaptchaSiteKey IHeader
	// XRedefinitionDeny Заголовок "X-Redefinition-Deny", Запрет переопределения значений маркеров, значения: ["all", "query", "path", "entrypoint"].
	XRedefinitionDeny IHeader
	// XRedirectBy Заголовок "X-Redirect-By", Указывает компонент отвечающий за перенаправление ресурса.
	XRedirectBy IHeader
	// XRegistrationInviteCode Заголовок "X-Registration-Invite-Code", Код приглашения на регистрацию.
	XRegistrationInviteCode IHeader
	// XRequestId Заголовок "X-Request-ID", Сопоставление или идентификация запросов между клиентом и сервером.
	XRequestId IHeader
	// XRequestedWith Заголовок "X-Requested-With", Заголовок используется для контроля CORS запросов.
	XRequestedWith IHeader
	// XScheme Заголовок "X-Scheme", Nginx. Схема. Значения: ["http", "https"]. Пример: X-Scheme $scheme.
	XScheme IHeader
	// XScreenSize Заголовок "X-Screen-Size", Разрешение экрана.
	XScreenSize IHeader
	// XTimeZone Заголовок "X-Time-Zone", Смещение часового пояса. Значения: [0, 3, -1, 12, ...].
	XTimeZone IHeader
	// XUserAgent Заголовок "X-User-Agent", Аналог User-Agent.
	XUserAgent IHeader
	// XXssProtection Заголовок "X-XSS-Protection", Фильтр запросов от скриптов выполняемых между разными доменами (XSS).
	XXssProtection IHeader
}

Headers Структура справочника заголовков.

func Header() Headers

Header Справочник заголовков.

Example

ExampleHeader Пример создания нового справочника заголовков с дополнительны пользовательскими заголовками.

// CustomHeader Структура нового справочника с дополнительными пользовательскими заголовками.
type CustomHeader struct {
	Headers // Встраивание всех уже существующих заголовков.

	// MyCustomHeader1 Заголовок my-custom/header-1.
	MyCustomHeader1 IHeader

	// HeaderSecondCustom Заголовок header-second/custom.
	HeaderSecondCustom IHeader
}

// Реализация дополнительных пользовательских заголовков справочника.
var custom = &CustomHeader{
	Headers:            Header(),                          // Подключение всех существующих заголовков.
	MyCustomHeader1:    NewHeader("My-Custom/Header-1"),   // Заголовок my-custom/header-1.
	HeaderSecondCustom: NewHeader("Header-Second/Custom"), // Заголовок header-second/custom.
}

// Использование нового справочника.
var mch = custom.MyCustomHeader1
var result = custom.AcceptPatch.IsEqual(mch)

fmt.Printf("Является ли заголовок %q эквивалентным заголовку %q? Ответ: %t\n", mch, custom.AcceptPatch, result)
hcc := custom.HeaderSecondCustom
result = hcc.IsEqual(mch)
fmt.Printf("Является ли заголовок %q эквивалентным заголовку %q? Ответ: %t\n", hcc, mch, result)
Output:

Является ли заголовок "My-Custom/Header-1" эквивалентным заголовку "Accept-Patch"? Ответ: false
Является ли заголовок "Header-Second/Custom" эквивалентным заголовку "My-Custom/Header-1"? Ответ: false

type IError added in v1.3.0

type IError interface {

	// CodeU64 Код ошибки с типом uint64.
	CodeU64() *Set[uint64]

	// CodeU32 Код ошибки с типом uint32.
	CodeU32() *Set[uint32]

	// CodeU16 Код ошибки с типом uint16.
	CodeU16() *Set[uint16]

	// CodeU8 Код ошибки с типом uint8.
	CodeU8() *Set[uint8]

	// CodeU Код ошибки с типом uint.
	CodeU() *Set[uint]

	// CodeI64 Код ошибки с типом int64.
	CodeI64() *Set[int64]

	// CodeI32 Код ошибки с типом int32.
	CodeI32() *Set[int32]

	// CodeI16 Код ошибки с типом int16.
	CodeI16() *Set[int16]

	// CodeI8 Код ошибки с типом int8.
	CodeI8() *Set[int8]

	// CodeI Код ошибки с типом int.
	CodeI() *Set[int]

	// TNew Назначение нового шаблона и списка аргументов ошибки.
	TNew(t string, arg ...string) IError

	// TArg Получение списка аргументов ошибки. Шаблон ошибки можно получить из якоря.
	TArg() []string

	// Anchor Якорь ошибки, он же шаблон ошибки или ошибка целиком, если аргументов нет.
	Anchor() error

	// Error Реализация интерфейса errors.Error().
	Error() string

	// String Представление ошибки в качестве строки, используется якорь и аргументы ошибки.
	String() string

	// Bytes Представление ошибки в качестве среза байт, используется якорь и аргументы ошибки.
	Bytes() []byte

	// Is Сравнение ошибок, вернётся истина если ошибки эквиваленты.
	Is(e error) (ret bool)

	// IsEqual Сравнение ошибок, вернётся истина если ошибки эквиваленты.
	IsEqual(e IError) bool

	// IsEqualCode Сравнение ошибок только по коду ошибки.
	IsEqualCode(e IError) (ret bool)

	// Bind Создание копии объекта IError, прикрепление к копии якоря и всех свойств, наполнение копии объекта ошибки
	// значениями аргументов и возврат объекта ошибки в качестве интерфейса стандартной ошибки.
	// Копии ошибок в таком виде, с разными значениями аргументов эквивалентны, если сравнивать функцией IsEqual().
	Bind(arg ...any) (err error)
}

IError Интерфейс статусов HTTP ответов.

func NewError added in v1.3.0

func NewError(template string, arg ...string) IError

NewError Создание объекта под интерфейс IError, функция предназначена для формирования настраиваемых справочников.

func ParseError added in v1.3.0

func ParseError(e error) IError

ParseError Анализ ошибки завёрнутой в стандартный интерфейс ошибки и извлечение IError. Если ошибка IError не найдена, создание новой ошибки с интерфейсом IError на базе ошибки error.

type IFile

type IFile interface {
	// MimeByFilename Определение MIME типа контента файла по имени файла.
	// Если MIME тип не найден, вернётся nil объект.
	MimeByFilename(filename string) IMime

	// MimeByExtension Определение MIME типа контента файла по расширению имени файла.
	// Расширение имени файла должно начинаться с точки, пример: ".txt".
	// Если MIME тип не найден, вернётся nil объект.
	MimeByExtension(extension string) (ret IMime)

	// MimeByContent Определение MIME типа контента по срезу байт.
	// Не стоит передавать весь файл, достаточно передать первые 512 байт или около того.
	MimeByContent(content []byte) (ret IMime)
}

IFile Интерфейс справочника MIME типов файлов.

func File

func File() IFile

File Интерфейс справочника MIME типов расширений имён файлов.

type IHeader

type IHeader interface {
	// IsEqual Истина, если заголовки эквивалентны.
	IsEqual(h IHeader) bool

	// String Заголовок в виде строки.
	String() string
}

IHeader Интерфейс элемента справочника заголовков.

func NewHeader

func NewHeader(header string) IHeader

NewHeader Создание объекта под интерфейс IHeader, функция предназначена для формирования настраиваемых справочников.

func ParseHeader

func ParseHeader(s string) IHeader

ParseHeader Разбор строки в объект заголовка.

type IMethod

type IMethod interface {
	// IsEqual Истина, если HTTP методы эквивалентны, сравнивается только метод.
	IsEqual(m IMethod) bool

	// IsEqualFull Истина, если HTTP методы эквивалентны, сравнивается и метод и битовая маска.
	IsEqualFull(m IMethod) bool

	// String HTTP метод запроса.
	String() string
}

IMethod Интерфейс HTTP методов запросов.

func NewMethod

func NewMethod(name string) IMethod

NewMethod Создание объекта под интерфейс IMethod, функция предназначена для формирования настраиваемых справочников.

func ParseMethod

func ParseMethod(s string) IMethod

ParseMethod Разбор строки в объект HTTP метода запроса.

type IMime

type IMime interface {
	// Charset Кодовая страница MIME типа.
	Charset() (ret string)

	// IsEqual Истина, если MIME типы эквивалентны, без учёта атрибутов.
	IsEqual(m IMime) bool

	// IsEqualFull Истина, если MIME типы эквивалентны, включая атрибуты.
	IsEqualFull(m IMime) bool

	// Main Основной тип MIME, без подтипа и без опций.
	Main() string

	// Sub Подтип MIME, без опций.
	Sub() string

	// Mime Тип MIME с подтипом, но без опций.
	Mime() string

	// Opt Опция миме типа с указанным ключём.
	Opt(key string) string

	// String Полностью весть MIME тип с подтипом и опциями.
	String() string
}

IMime Интерфейс MIME типа.

func NewMime

func NewMime(main, sub string, opts map[string]string) IMime

NewMime Создание объекта под интерфейс IMime, функция предназначена для формирования настраиваемых справочников.

func ParseMime

func ParseMime(s string) IMime

ParseMime Разбор строки в объект MIME типа.

type IStatus

type IStatus interface {
	// IsEqual Истина, если статусы HTTP ответов эквивалентны.
	IsEqual(m IStatus) bool

	// IsEqualCode Истина, если коды статусо HTTP ответов эквивалентны.
	IsEqualCode(c int) bool

	// Code Числовой код статуса HTTP ответа.
	Code() int

	// String Полностью весть MIME тип с подтипом и опциями.
	String() string

	// Bytes Статус HTTP ответа в виде среза байт.
	Bytes() []byte
}

IStatus Интерфейс статусов HTTP ответов.

func NewStatus

func NewStatus(status string, code int) IStatus

NewStatus Создание объекта под интерфейс IStatus, функция предназначена для формирования настраиваемых справочников.

func ParseStatusCode added in v1.2.0

func ParseStatusCode(code int) IStatus

ParseStatusCode Разбор числового кода в объект статуса HTTP ответа.

func ParseStatusString

func ParseStatusString(s string) IStatus

ParseStatusString Разбор строки в объект статуса HTTP ответа.

type Methods

type Methods struct {
	// Get HTTP метод GET.
	Get IMethod
	// Post HTTP метод POST.
	Post IMethod
	// Put HTTP метод PUT.
	Put IMethod
	// Delete HTTP метод DELETE.
	Delete IMethod
	// Connect HTTP метод CONNECT.
	Connect IMethod
	// Head HTTP метод HEAD.
	Head IMethod
	// Patch HTTP метод PATCH.
	Patch IMethod
	// Options HTTP метод OPTIONS.
	Options IMethod
	// Trace HTTP метод TRACE.
	Trace IMethod
	// Stub HTTP метод STUB.
	Stub IMethod
}

Methods Структура справочника HTTP методов запросов.

func Method

func Method() Methods

Method Справочник HTTP методов запросов.

type Mimes

type Mimes struct {
	// ApplicationAtomXml Тип MIME "application/atom+xml;charset=UTF-8", Atom
	ApplicationAtomXml IMime
	// ApplicationEdiX12 Тип MIME "application/EDI-X12", EDI X12 (RFC 1767)
	ApplicationEdiX12 IMime
	// ApplicationEdifact Тип MIME "application/EDIFACT", EDI EDIFACT (RFC 1767)
	ApplicationEdifact IMime
	// ApplicationFontWoff Тип MIME "application/font-woff", web open font format
	ApplicationFontWoff IMime
	// ApplicationGzip Тип MIME "application/gzip", Gzip
	ApplicationGzip IMime
	// ApplicationJavascript Тип MIME "application/javascript;charset=UTF-8", JavaScript (RFC 4329)
	ApplicationJavascript IMime
	// ApplicationJson Тип MIME "application/json;charset=UTF-8", JavaScript Object Notation JSON (RFC 4627)
	ApplicationJson IMime
	// ApplicationMsExcel Тип MIME "application/vnd.ms-excel", XLS microsoft excel файлы
	ApplicationMsExcel IMime
	// ApplicationMsWord Тип MIME "application/msword", DOC microsoft word файлы
	ApplicationMsWord IMime
	// ApplicationMsgpack Тип MIME "application/msgpack", Msgpack
	ApplicationMsgpack IMime
	// ApplicationOctetStream Тип MIME "application/octet-stream", двоичный файл без указания формата (RFC 2046)[4]
	ApplicationOctetStream IMime
	// ApplicationOgg Тип MIME "application/ogg", Ogg (RFC 5334)
	ApplicationOgg IMime
	// ApplicationPdf Тип MIME "application/pdf", Portable Document Format, PDF (RFC 3778)
	ApplicationPdf IMime
	// ApplicationPostscript Тип MIME "application/postscript", PostScript (RFC 2046)
	ApplicationPostscript IMime
	// ApplicationProtobuf Тип MIME "application/protobuf", gRPC protobuf
	ApplicationProtobuf IMime
	// ApplicationSoapXml Тип MIME "application/soap+xml", SOAP (RFC 3902)
	ApplicationSoapXml IMime
	// ApplicationVndGoogleEarthKmlXml Тип MIME "application/vnd.google-earth.kml+xml", KML файлы (например, для Google Earth)
	ApplicationVndGoogleEarthKmlXml IMime
	// ApplicationVndMozillaXulXml Тип MIME "application/vnd.mozilla.xul+xml", mozilla XUL файлы
	ApplicationVndMozillaXulXml IMime
	// ApplicationWasm Тип MIME "application/wasm", WebAssembly (сокращённо wasm) — язык программирования низкого уровня, призванный внести программируемость туда, где нужны кроссплатформенность, эффективность и безопасность, в первую очередь на клиентскую сторону ВЕБ.
	ApplicationWasm IMime
	// ApplicationXBittorrent Тип MIME "application/x-bittorrent", BitTorrent
	ApplicationXBittorrent IMime
	// ApplicationXDvi Тип MIME "application/x-dvi", DVI
	ApplicationXDvi IMime
	// ApplicationXFontTtf Тип MIME "application/x-font-ttf", TrueType (не зарегистрированный MIME-тип, но наиболее часто используемый)
	ApplicationXFontTtf IMime
	// ApplicationXGenesisRom Тип MIME "application/x-genesis-rom", Файл gen
	ApplicationXGenesisRom IMime
	// ApplicationXLatex Тип MIME "application/x-latex", LaTeX файлы
	ApplicationXLatex IMime
	// ApplicationXPkcs12 Тип MIME "application/x-pkcs12", p12, pfx файлы
	ApplicationXPkcs12 IMime
	// ApplicationXPkcs7Certificates Тип MIME "application/x-pkcs7-certificates", p7b, spc файлы
	ApplicationXPkcs7Certificates IMime
	// ApplicationXPkcs7Certreqresp Тип MIME "application/x-pkcs7-certreqresp", p7r файлы
	ApplicationXPkcs7Certreqresp IMime
	// ApplicationXPkcs7Mime Тип MIME "application/x-pkcs7-mime", p7c, p7m файлы
	ApplicationXPkcs7Mime IMime
	// ApplicationXPkcs7Signature Тип MIME "application/x-pkcs7-signature", p7s файлы
	ApplicationXPkcs7Signature IMime
	// ApplicationXRarCompressed Тип MIME "application/x-rar-compressed", RAR
	ApplicationXRarCompressed IMime
	// ApplicationXStuffit Тип MIME "application/x-stuffit", StuffIt
	ApplicationXStuffit IMime
	// ApplicationXTar Тип MIME "application/x-tar", Tarball
	ApplicationXTar IMime
	// ApplicationXTex Тип MIME "application/x-tex", TeX
	ApplicationXTex IMime
	// ApplicationXWwwFormUrlencoded Тип MIME "application/x-www-form-urlencoded", form encoded data
	ApplicationXWwwFormUrlencoded IMime
	// ApplicationXYaml Тип MIME "application/x-yaml;charset=UTF-8", YAML
	ApplicationXYaml IMime
	// ApplicationXZipCompressed Тип MIME "application/x-zip-compressed", ZIP
	ApplicationXZipCompressed IMime
	// ApplicationXhtmlXml Тип MIME "application/xhtml+xml;charset=UTF-8", XHTML (RFC 3236)
	ApplicationXhtmlXml IMime
	// ApplicationXml Тип MIME "application/xml;charset=UTF-8", XML
	ApplicationXml IMime
	// ApplicationXmlDtd Тип MIME "application/xml-dtd;charset=UTF-8", DTD (RFC 3023)
	ApplicationXmlDtd IMime
	// ApplicationXopXml Тип MIME "application/xop+xml", XOP
	ApplicationXopXml IMime
	// ApplicationZip Тип MIME "application/zip", ZIP
	ApplicationZip IMime
	// AudioAac Тип MIME "audio/aac", AAC
	AudioAac IMime
	// AudioBasic Тип MIME "audio/basic", mulaw аудио, 8 кГц, 1 канал (RFC 2046)
	AudioBasic IMime
	// AudioL24 Тип MIME "audio/L24", 24bit Linear PCM аудио, 8-48 кГц, 1-N каналов (RFC 3190)
	AudioL24 IMime
	// AudioMp4 Тип MIME "audio/mp4", MP4
	AudioMp4 IMime
	// AudioMpeg Тип MIME "audio/mpeg", MP3 или др. MPEG (RFC 3003)
	AudioMpeg IMime
	// AudioOgg Тип MIME "audio/ogg", Ogg Vorbis, Speex, Flac или др. аудио (RFC 5334)
	AudioOgg IMime
	// AudioVndRnRealaudio Тип MIME "audio/vnd.rn-realaudio", RealAudio
	AudioVndRnRealaudio IMime
	// AudioVndWave Тип MIME "audio/vnd.wave", WAV (RFC 2361)
	AudioVndWave IMime
	// AudioVorbis Тип MIME "audio/vorbis", Vorbis (RFC 5215)
	AudioVorbis IMime
	// AudioWebm Тип MIME "audio/webm", WebM
	AudioWebm IMime
	// AudioXMsWax Тип MIME "audio/x-ms-wax", windows media audio перенаправление
	AudioXMsWax IMime
	// AudioXMsWma Тип MIME "audio/x-ms-wma", windows media audio
	AudioXMsWma IMime
	// AutoReplied Тип MIME "auto-replied", RFC3464
	AutoReplied IMime
	// FontTtf Тип MIME "font/ttf", Шрифт TrueType или ttf
	FontTtf IMime
	// ImageGif Тип MIME "image/gif", GIF (RFC 2045 и RFC 2046)
	ImageGif IMime
	// ImageIco Тип MIME "image/vnd.microsoft.icon", ICO
	ImageIco IMime
	// ImageJpeg Тип MIME "image/jpeg", JPEG (RFC 2045 и RFC 2046)
	ImageJpeg IMime
	// ImagePjpeg Тип MIME "image/pjpeg", JPEG
	ImagePjpeg IMime
	// ImagePng Тип MIME "image/png", portable network graphics (RFC 2083)
	ImagePng IMime
	// ImageSvgXml Тип MIME "image/svg+xml", SVG
	ImageSvgXml IMime
	// ImageTiff Тип MIME "image/tiff", TIFF (RFC 3302)
	ImageTiff IMime
	// ImageVndWapWbmp Тип MIME "image/vnd.wap.wbmp", WBMP
	ImageVndWapWbmp IMime
	// ImageWebp Тип MIME "image/webp", WebP
	ImageWebp IMime
	// ImageXIcon Тип MIME "image/x-icon", ICO, which is used by microsoft by stupidity
	ImageXIcon IMime
	// MessageDeliveryStatus Тип MIME "message/delivery-status", RFC3464
	MessageDeliveryStatus IMime
	// MessageHttp Тип MIME "message/http;charset=UTF-8", Http (RFC 2616)
	MessageHttp IMime
	// MessageImdnXml Тип MIME "message/imdn+xml;charset=UTF-8", IMDN (RFC 5438)
	MessageImdnXml IMime
	// MessagePartial Тип MIME "message/partial", E-mail (RFC 2045 и RFC 2046)
	MessagePartial IMime
	// MessageRfc822 Тип MIME "message/rfc822", E-mail; EML-файлы, MIME-файлы, MHT-файлы, MHTML-файлы (RFC 2045 и RFC 2046)
	MessageRfc822 IMime
	// ModelExample Тип MIME "model/example", Model example (RFC 4735)
	ModelExample IMime
	// ModelIges Тип MIME "model/iges", IGS файлы, IGES файлы (RFC 2077)
	ModelIges IMime
	// ModelMesh Тип MIME "model/mesh", MSH файлы, MESH файлы (RFC 2077), SILO файлы
	ModelMesh IMime
	// ModelVrml Тип MIME "model/vrml", WRL файлы, VRML файлы (RFC 2077)
	ModelVrml IMime
	// ModelX3dBinary Тип MIME "model/x3d+binary", X3D ISO стандарт для 3D компьютерной графики, X3DB файлы
	ModelX3dBinary IMime
	// ModelX3dVrml Тип MIME "model/x3d+vrml", X3D ISO стандарт для 3D компьютерной графики, X3DV VRML файлы
	ModelX3dVrml IMime
	// ModelX3dXml Тип MIME "model/x3d+xml", X3D ISO стандарт для 3D компьютерной графики, X3D XML файлы
	ModelX3dXml IMime
	// MultipartAlternative Тип MIME "multipart/alternative", MIME E-mail (RFC 2045 и RFC 2046)
	MultipartAlternative IMime
	// MultipartEncrypted Тип MIME "multipart/encrypted", Encrypted (RFC 1847)
	MultipartEncrypted IMime
	// MultipartForm Тип MIME "multipart/form-data;charset=UTF-8", MIME Webform (RFC 2388)
	MultipartForm IMime
	// MultipartMixed Тип MIME "multipart/mixed", MIME E-mail (RFC 2045 и RFC 2046)
	MultipartMixed IMime
	// MultipartRelated Тип MIME "multipart/related", MIME E-mail (RFC 2387 и используемое MHTML (HTML mail))
	MultipartRelated IMime
	// MultipartSigned Тип MIME "multipart/signed", Signed (RFC 1847)
	MultipartSigned IMime
	// TextCacheManifest Тип MIME "text/cache-manifest", файл манифеста(RFC 2046)
	TextCacheManifest IMime
	// TextCmd Тип MIME "text/cmd;charset=UTF-8", команды
	TextCmd IMime
	// TextCss Тип MIME "text/css;charset=UTF-8", cascading style sheets (RFC 2318)
	TextCss IMime
	// TextCsv Тип MIME "text/csv;charset=UTF-8", CSV (RFC 4180)
	TextCsv IMime
	// TextHtml Тип MIME "text/html;charset=UTF-8", HTML (RFC 2854)
	TextHtml IMime
	// TextJavascript Тип MIME "text/javascript;charset=UTF-8", (Obsolete): JavaScript (RFC 4329)
	TextJavascript IMime
	// TextJsx Тип MIME "text/jsx;charset=UTF-8", Javascript template for react
	TextJsx IMime
	// TextMarkdown Тип MIME "text/markdown;charset=UTF-8", файл языка разметки Markdown (RFC 7763)
	TextMarkdown IMime
	// TextPhp Тип MIME "text/php;charset=UTF-8", Скрипт на языке PHP
	TextPhp IMime
	// TextPlain Тип MIME "text/plain;charset=UTF-8", текстовые данные (RFC 2046 и RFC 3676)
	TextPlain IMime
	// TextRfc822Headers Тип MIME "text/rfc822-headers", RFC822
	TextRfc822Headers IMime
	// TextXJqueryTmpl Тип MIME "text/x-jquery-tmpl", jQuery
	TextXJqueryTmpl IMime
	// TextXMakefile Тип MIME "text/x-makefile", Makefile
	TextXMakefile IMime
	// TextXPython Тип MIME "text/x-python;charset=UTF-8", Скрипт на языке Python
	TextXPython IMime
	// TextXml Тип MIME "text/xml;charset=UTF-8", extensible markup language (RFC 3023)
	TextXml IMime
	// Video3gpp Тип MIME "video/3gpp", .3gpp .3gp
	Video3gpp IMime
	// Video3gpp2 Тип MIME "video/3gpp2", .3gpp2 .3g2
	Video3gpp2 IMime
	// VideoMp4 Тип MIME "video/mp4", MP4 (RFC 4337)
	VideoMp4 IMime
	// VideoMpeg Тип MIME "video/mpeg", MPEG-1 (RFC 2045 и RFC 2046)
	VideoMpeg IMime
	// VideoOgg Тип MIME "video/ogg", ogg theora или другое видео (RFC 5334)
	VideoOgg IMime
	// VideoQuicktime Тип MIME "video/quicktime", QuickTime
	VideoQuicktime IMime
	// VideoWebm Тип MIME "video/webm", WebM
	VideoWebm IMime
	// VideoXFlv Тип MIME "video/x-flv", FLV
	VideoXFlv IMime
	// VideoXMsWmv Тип MIME "video/x-ms-wmv", windows media video
	VideoXMsWmv IMime
	// VideoXMsvideo Тип MIME "video/x-msvideo", AVI
	VideoXMsvideo IMime
}

Mimes Структура справочника MIME типов.

func Mime

func Mime() Mimes

Mime Справочник MIME типов.

type Set added in v1.3.0

type Set[T modelSet] struct {
	// contains filtered or unexported fields
}

Set Структура объекта доступа к коду.

func (*Set[T]) Get added in v1.3.0

func (sto *Set[T]) Get() (ret T)

Get Возвращение значения.

func (*Set[T]) Set added in v1.3.0

func (sto *Set[T]) Set(number T) IError

Set Присвоение значения.

type Statuses

type Statuses struct {
	// Unknown Статус: "", код: 0. Статус неизвестен.
	Unknown IStatus
	// Continue Статус: "Continue", код: 100. RFC9110, 15.2.1. Частично переданные на сервер данные проверены и сервер удовлетворён начальными данными. Клиент может продолжать отправку заголовков и данных.
	Continue IStatus
	// SwitchingProtocols Статус: "Switching Protocols", код: 101. RFC9110, 15.2.2. Сервер предлагает сменить протокол, перейти на более подходящий для указанного ресурса протокол. Список предлагаемых протоколов передаётся в заголовке Update Если клиент готов сменить протокол то новый запрос ожидается с указанием другого протокола.
	SwitchingProtocols IStatus
	// Processing Статус: "Processing", код: 102. RFC2518, 10.1. Запрос принят, на обработку запроса потребуется длительное время. Клиент, при получении такого ответа, должен сбросить таймер ожидания и ожидать следующего ответа в обычном режиме.
	Processing IStatus
	// EarlyHints Статус: "Early Hints", код: 103. RFC8297. Ранний возврат части заголовков, когда заголовки полного ответа не могут быть быстро сформированы.
	EarlyHints IStatus
	// NameNotResolved Статус: "Name Not Resolved", код: 105. Ошибка при разрешении доменного имени, в связи с не верным или отсутствующих ip адресом DNS сервера.
	NameNotResolved IStatus
	// OkToSendData Статус: "Ok To Send Data", код: 150. FTP. Согласие принимать данные от пользователя.
	OkToSendData IStatus
	// Ringing Статус: "Ringing", код: 180. Телефония. Уведомление о начале вызова на стороне вызываемого оборудования, соответствует длинному звуковому сигналу (КПВ) в телефонии.
	Ringing IStatus
	// Ok Статус: "OK", код: 200. RFC9110, 15.3.1. Успешный запрос. Результат запроса передаётся в заголовке или теле ответа.
	Ok IStatus
	// Created Статус: "Created", код: 201. RFC9110, 15.3.2. Успешный запрос, в результате которого был создан новый ресурс. В ответе возвращается заголовок Location с указанием созданного ресурса. Так же возвращаются характеристики нового ресурса, Content-Type.
	Created IStatus
	// Accepted Статус: "Accepted", код: 202. RFC9110, 15.3.3. Запрос принят на обработку, но обработка не завершена. Клиенту нет необходимости ожидать окончания обработки запроса, так как процесс может быть весьма длительным.
	Accepted IStatus
	// NonAuthoritativeInformation Статус: "Non-Authoritative Information", код: 203. RFC9110, 15.3.4. Успешный запрос, но передаваемая в ответе информация взята из кэша или не является гарантированно достоверной (могла устареть).
	NonAuthoritativeInformation IStatus
	// NoContent Статус: "No Content", код: 204. RFC9110, 15.3.5. Успешный запрос, в ответе передаются только заголовки без тела сообщения. Клиент не должен обновлять тело документа/ресурса, но может применить к нему полученные данные.
	NoContent IStatus
	// ResetContent Статус: "Reset Content", код: 205. RFC9110, 15.3.6. Сервер обязывает клиента сбросить введённые пользователем данные. Тела сообщения сервер клиенту не передаёт. Документ на стороне клиента обновлять не обязательно.
	ResetContent IStatus
	// PartialContent Статус: "Partial Content", код: 206. RFC9110, 15.3.7. Сервер удачно выполнил частичный GET запрос и возвращает только часть данных. В заголовке Content-Range сервер указывает байтовые диапазоны содержимого.
	PartialContent IStatus
	// MultiStatus Статус: "Multi-Status", код: 207. RFC4918, 11.1. Сервер возвращает результат выполнения сразу нескольких независимых операций. Результат ожидается в виде XML тела ответа с объектом multistatus.
	MultiStatus IStatus
	// AlreadyReported Статус: "Already Reported", код: 208. RFC5842, 7.1. Код возвращается в случае запроса к ресурсу состоящему из коллекций данных повторяющихся между собой и фактически является указателем на то что данные ресурса А можно взять из ресурса Б так как они идентичны, либо данные ответа текущего запроса с итерацией совпадают с ответом предыдущих запросов с итерацией (ссылка). Так же сервер возвращает заголовок вместе со ссылкой на данные на которые ссылается.
	AlreadyReported IStatus
	// ThisIsFine Статус: "This is fine", код: 218. Apache. Общая ошибка сервера, позволяющая передать тело ответа при включённой опции ProxyErrorOverride.
	ThisIsFine IStatus
	// ServerReady Статус: "Server Ready", код: 220. FTP. SMTP. Сервер готов обрабатывать запросы. Почтовый сервер готов к обслуживанию.
	ServerReady IStatus
	// ImUsed Статус: "IM Used", код: 226. RFC3229, 10.4.1. Заголовок A-IM от клиента был успешно принят и обработан. Сервер возвращает содержимое с учётом указанных параметров.
	ImUsed IStatus
	// LoginSuccessful Статус: "Login Successful", код: 230. FTP. Пользователь успешно подключился.
	LoginSuccessful IStatus
	// OkAcceptedAndProcessed Статус: "Ok Accepted And Processed", код: 250. SMTP. Команда принята и обработана.
	OkAcceptedAndProcessed IStatus
	// MultipleChoices Статус: "Multiple Choices", код: 300. RFC9110, 15.4.1. Существует несколько вариантов предоставления ресурса по типу MIME Сервер возвращает список альтернатив для выбора на стороне клиента.
	MultipleChoices IStatus
	// MovedPermanently Статус: "Moved Permanently", код: 301. RFC9110, 15.4.2. Запрошенный ресурс был окончательно перенесён на новый URI. Новый URI возвращается в заголовке Location.
	MovedPermanently IStatus
	// Found Статус: "Found", код: 302. RFC9110, 15.4.3. Запрошенный ресурс временно доступен по другому URI, возвращаемому в заголовке Location.
	Found IStatus
	// SeeOther Статус: "See Other", код: 303. RFC9110, 15.4.4. Ресурс по запрашиваемому URI необходимо запросить по адресу передаваемому в поле Location и только методом GET, несмотря на первоначальный запрос иным методом.
	SeeOther IStatus
	// NotModified Статус: "Not Modified", код: 304. RFC9110, 15.4.5. Сервер отвечает кодом 304, если ресурс был запрошен методом GET, с использованием заголовков If-Modified-Since или If-None-Match и документ не изменился с указанного момента. В этом ответе сервер не передаёт тело ресурса.
	NotModified IStatus
	// UseProxy Статус: "Use Proxy", код: 305. RFC9110, 15.4.6. Запрос к запрашиваемому ресурсу должен осуществляться через прокси URI, которого указывается в заголовки ответа в Location.
	UseProxy IStatus
	// Unused306 Статус: "Reserved Unused", код: 306. RFC9110, 15.4.7. Код зарезервирован и не используется.
	Unused306 IStatus
	// TemporaryRedirect Статус: "Temporary Redirect", код: 307. RFC9110, 15.4.8. Запрошенный ресурс, на короткое время, доступен по другому URI, указанному в заголовке ответа Location.
	TemporaryRedirect IStatus
	// PermanentRedirect Статус: "Permanent Redirect", код: 308. RFC9110, 15.4.9. Текущий запрос и все будущие запросы необходимо выполнить по другому URI ресурса. Новый адрес ресурса возвращается в заголовке Location, ответа сервера.
	PermanentRedirect IStatus
	// BadRequest Статус: "Bad Request", код: 400. RFC9110, 15.5.1. В запросе клиента присутствует синтаксическая ошибка или не указаны обязательные параметры запроса.
	BadRequest IStatus
	// Unauthorized Статус: "Unauthorized", код: 401. RFC9110, 15.5.2. Для доступа к ресурсу необходима аутентификация клиента. Заголовок ответа сервера будет содержать поле WWW-Authenticate, с перечнем условий аутентификации. Клиент может повторить запрос включив в новый запрос заголовок Authorization, с требуемыми для аутентификации данными.
	Unauthorized IStatus
	// PaymentRequired Статус: "Payment Required", код: 402. RFC9110, 15.5.3. Для доступа к ресурсу необходимо произвести оплату.
	PaymentRequired IStatus
	// Forbidden Статус: "Forbidden", код: 403. RFC9110, 15.5.4. Сервер отказывается выполнять запрос из-за ограничений в доступе клиента к указанному ресурсу.
	Forbidden IStatus
	// NotFound Статус: "Not Found", код: 404. RFC9110, 15.5.5. На сервере отсутствует запрашиваемый ресурс.
	NotFound IStatus
	// MethodNotAllowed Статус: "Method Not Allowed", код: 405. RFC9110, 15.5.6. Указанный клиентом HTTP метод запроса нельзя применять к запрашиваемому ресурсу. В ответе сервера будет заголовок Allow, с перечисленными через запятую методами запроса к ресурсу.
	MethodNotAllowed IStatus
	// NotAcceptable Статус: "Not Acceptable", код: 406. RFC9110, 15.5.7. Запрошенный ресурс не удовлетворяет переданным в заголовке характеристикам. Если запрос был не HEAD, тогда сервер в ответе вернёт список доступных характеристик, запрашиваемого ресурса.
	NotAcceptable IStatus
	// ProxyAuthenticationRequired Статус: "Proxy Authentication Required", код: 407. RFC9110, 15.5.8. Для доступа к ресурсу, необходима аутентификация клиента, на прокси сервере. Заголовок ответа сервера будет содержать поле WWW-Authenticate с перечнем условий аутентификации. Клиент может повторить запрос, включив в новый запрос заголовок Authorization с требуемыми для аутентификации данными.
	ProxyAuthenticationRequired IStatus
	// RequestTimeout Статус: "Request Timeout", код: 408. RFC9110, 15.5.9. Время ожидания сервера окончания передачи данных клиентом истекло, запрос прерван.
	RequestTimeout IStatus
	// Conflict Статус: "Conflict", код: 409. RFC9110, 15.5.10. Запрос не может быть выполнен из-за конфликта обращения к ресурсу, например, ресурс заблокирован другим клиентом.
	Conflict IStatus
	// Gone Статус: "Gone", код: 410. RFC9110, 15.5.11. Ресурс, ранее находившийся по указанному адресу, удалён и не доступен, серверу не известно новый адрес ресурса.
	Gone IStatus
	// LengthRequired Статус: "Length Required", код: 411. RFC9110, 15.5.12. Для выполнения запроса к указанному ресурсу, клиент должен передать Content-Length, в заголовке запроса.
	LengthRequired IStatus
	// PreconditionFailed Статус: "Precondition Failed", код: 412. RFC9110, 15.5.13. Сервер не смог распознать ни один заголовок или условие запроса, обычно используется совместно с If-Match.
	PreconditionFailed IStatus
	// RequestEntityTooLarge Статус: "Request Entity Too Large", код: 413. RFC9110, 15.5.14. Сервер отказывается выполнять запрос, из-за слишком большого тела запроса. В случае если проблема временная, тогда возвращается заголовок Retry-After с указанием времени, по истечении которого можно повторить запрос.
	RequestEntityTooLarge IStatus
	// RequestUriTooLong Статус: "Request URI Too Long", код: 414. RFC9110, 15.5.15. Сервер не может выполнить запрос к ресурсу из-за слишком большого запрашиваемого URI.
	RequestUriTooLong IStatus
	// UnsupportedMediaType Статус: "Unsupported Media Type", код: 415. RFC9110, 15.5.16. Сервер отказывается работать с указанным типом данных передаваемого контента, с использованием текущего метода HTTP запроса.
	UnsupportedMediaType IStatus
	// RequestedRangeNotSatisfiable Статус: "Requested Range Not Satisfiable", код: 416. RFC9110, 15.5.17. Не корректный запрос с указанием Range. В поле Range, заголовка запроса, указан диапазон за пределами размерности ресурса, и отсутствует поле If-Range. Если клиент передал байтовый диапазон, тогда сервер вернёт диапазоны ресурса, в заголовке Content-Range ответа.
	RequestedRangeNotSatisfiable IStatus
	// ExpectationFailed Статус: "Expectation Failed", код: 417. RFC9110, 15.5.18. Сервер не может удовлетворить переданный от клиента заголовок запроса Expect (ждать).
	ExpectationFailed IStatus
	// ImATeapot Статус: "I'm a teapot", код: 418. RFC9110, 15.5.19. RFC2324. Я чайник. Первоапрельская шутка от IETF :).
	ImATeapot IStatus
	// AuthenticationTimeout Статус: "Authentication Timeout", код: 419. Используется в качестве альтернативы коду 401, для запросов которые прошли проверку подлинности, но лишены доступа к определённым ресурсам сервера. Обычно код отдается, если CSRF-токен устарел или оказался некорректным.
	AuthenticationTimeout IStatus
	// EnhanceYourCalm Статус: "Enhance Your Calm", код: 420. Twitter. Ответ аналогичен ответу 429-слишком много запросов, призван заставить клиента отправлять меньшее количество запросов к ресурсу. В ответе сервера возвращается заголовок Retry-After, с указанием времени, по истечении которого можно повторить запрос к серверу.
	EnhanceYourCalm IStatus
	// MisdirectedRequest Статус: "Misdirected Request", код: 421. RFC9110, 15.5.20. Запрос был перенаправлен на сервер, не способный дать ответ.
	MisdirectedRequest IStatus
	// UnprocessableEntity Статус: "Unprocessable Entity", код: 422. RFC9110, 15.5.21. Не обрабатываемая сущность. Запрос к серверу корректный и верный, но в теле запроса имеется логическая ошибка, из-за которой не возможно выполнить запрос к ресурсу.
	UnprocessableEntity IStatus
	// Locked Статус: "Locked", код: 423. RFC4918, 11.3. В результате запроса ресурс успешно заблокирован.
	Locked IStatus
	// FailedDependency Статус: "Failed Dependency", код: 424. RFC4918, 11.4. Успешность выполнения запроса зависит от не разрешимой зависимости, другого запроса, который ещё не выполнен.
	FailedDependency IStatus
	// TooEarly Статус: "Too Early", код: 425. RFC8470, 5.2. Запрос коллекции ресурсов в не корректном порядке или запрос к упорядоченному ресурсу не по порядку.
	TooEarly IStatus
	// UpgradeRequired Статус: "Upgrade Required", код: 426. RFC9110, 15.5.22. Клиенту необходимо обновить протокол запроса. В заголовке ответа сервера Upgrade и Connection возвращаются указания, которые должен выполнить клиент для успешности запроса.
	UpgradeRequired IStatus
	// Unassigned Статус: "Not assigned", код: 427. WebDesk, Получены корректные данные запроса, но значения обязательных полей не установлены.
	Unassigned IStatus
	// PreconditionRequired Статус: "Precondition Required", код: 428. RFC6585, 3. Сервер требует от клиента выполнить запрос с указанием заголовков Range и If-Match.
	PreconditionRequired IStatus
	// TooManyRequests Статус: "Too Many Requests", код: 429. RFC6585, 4. Слишком много запросов от клиента к ресурсу. В ответе сервера возвращается заголовок Retry-After с указанием времени, по истечении которого, можно повторить запрос к серверу.
	TooManyRequests IStatus
	// RequestHeaderFieldsTooLarge Статус: "Request Header Fields Too Large", код: 431. RFC6585, 5. От клиента получено слишком много заголовков или длинна заголовка превысила допустимые размеры. Запрос прерван.
	RequestHeaderFieldsTooLarge IStatus
	// RequestedHostUnavailable Статус: "Requested Host Unavailable", код: 434. Запрашиваемый сервер ресурса не доступен.
	RequestedHostUnavailable IStatus
	// LoginTimeOut Статус: "Login Time-out", код: 440. Microsoft. Срок действия сеанса клиента истёк, и он должен снова войти в систему.
	LoginTimeOut IStatus
	// NoResponse Статус: "No Response", код: 444. Nginx. Сервер отказывается или не может вернуть результат запроса к ресурсу и незамедлительно закрыл соединение.
	NoResponse IStatus
	// RetryWith Статус: "Retry With", код: 449. Microsoft. В запросе к ресурсу не достаточно информации для его успешного выполнения. В заголовке ответа сервера передаётся Ms-Echo-Request с указанием необходимых полей.
	RetryWith IStatus
	// BlockedByParentalControls Статус: "Blocked by Parental Controls", код: 450. Microsoft. Запрос заблокирован системой 'родительский контроль'.
	BlockedByParentalControls IStatus
	// UnavailableForLegalReasons Статус: "Unavailable For Legal Reasons", код: 451. RFC7725, 3. Доступ к ресурсу закрыт по юридическим причинам или по требованиям органов государственной власти.
	UnavailableForLegalReasons IStatus
	// UnrecoverableError Статус: "Unrecoverable Error", код: 456. Обработка запроса вызывает не обрабатываемые сбои в базе данных или её таблицах.
	UnrecoverableError IStatus
	// RequestTerminated Статус: "Request Terminated", код: 487. Телефония. Инициатор вызова завершил попытку установить связь до соединения с вызываемым абонентом.
	RequestTerminated IStatus
	// RequestHeaderTooLarge Статус: "Request Header Too Large", код: 494. Nginx. Клиент отправил слишком большой запрос или слишком длинную строку заголовка.
	RequestHeaderTooLarge IStatus
	// SslCertificateError Статус: "SSL Certificate Error", код: 495. Nginx. Клиент предоставил недействительный SSL сертификат.
	SslCertificateError IStatus
	// SslCertificateRequired Статус: "SSL Certificate Required", код: 496. Nginx. Клиент не предоставил обязательный SSL сертификат.
	SslCertificateRequired IStatus
	// HttpRequestSentToHttpsPort Статус: "HTTP Request Sent to HTTPS Port", код: 497. Nginx. Клиент отправил HTTP-запрос на порт, прослушивающий HTTPS-запросы.
	HttpRequestSentToHttpsPort IStatus
	// InvalidToken Статус: "Invalid Token", код: 498. ArcGIS. Запрос выполнен с использованием токена с истекшим сроком действия или иным образом недействительным.
	InvalidToken IStatus
	// ClientClosedRequest Статус: "Client Closed Request", код: 499. Nginx. Клиент закрыл соединение не попытавшись получить от сервера ответ.
	ClientClosedRequest IStatus
	// InternalServerError Статус: "Internal Server Error", код: 500. RFC9110, 15.6.1. Любая не описанная ошибка на стороне сервера.
	InternalServerError IStatus
	// NotImplemented Статус: "Not Implemented", код: 501. RFC9110, 15.6.2. Сервер не имеет возможностей для удовлетворения доступа к ресурсу или реализация обработки запроса ещё не закончена.
	NotImplemented IStatus
	// BadGateway Статус: "Bad Gateway", код: 502. RFC9110, 15.6.3. Сервер, выступающий в роли шлюза или прокси, получил не корректный ответ от вышестоящего сервера.
	BadGateway IStatus
	// ServiceUnavailable Статус: "Service Unavailable", код: 503. RFC9110, 15.6.4. По техническим причинам, сервер не может выполнить запрос к ресурсу. В ответе сервер возвращает заголовок Retry-After, с указанием времени, по истечении которого, клиент может повторить запрос.
	ServiceUnavailable IStatus
	// GatewayTimeout Статус: "Gateway Timeout", код: 504. RFC9110, 15.6.5. Сервер, выступающий в роли шлюза или прокси, не дождался ответа от вышестоящего сервера.
	GatewayTimeout IStatus
	// HttpVersionNotSupported Статус: "HTTP Version Not Supported", код: 505. RFC9110, 15.6.6. Сервер отказывается поддерживать указанную в запросе версию HTTP протокола.
	HttpVersionNotSupported IStatus
	// VariantAlsoNegotiates Статус: "Variant Also Negotiates", код: 506. RFC2295, 8.1. Ошибка на стороне сервера связанная с циклической или рекурсивной задачей, которая не может завершиться.
	VariantAlsoNegotiates IStatus
	// InsufficientStorage Статус: "Insufficient Storage", код: 507. RFC4918, 11.5. Не достаточно места или ресурсов для выполнения запроса. Код может возвращаться как по причинам физической не хватки ресурсов, так и по причине текущих лимитов пользователя.
	InsufficientStorage IStatus
	// LoopDetected Статус: "Loop Detected", код: 508. RFC5842, 7.2. Бесконечный цикл. Запрос прерван, в результате вызванного на сервере бесконечного цикла, который не смог завершиться.
	LoopDetected IStatus
	// BandwidthLimitExceeded Статус: "Bandwidth Limit Exceeded", код: 509. Apache. Запрос прерван в связи с превышением, со стороны клиента, ограничений на скорость доступа к ресурсам.
	BandwidthLimitExceeded IStatus
	// NotExtended Статус: "Not Extended", код: 510. RFC2774, 7. На сервере отсутствует расширение, которое необходимо для успешного выполнения запроса к ресурсу.
	NotExtended IStatus
	// NetworkAuthenticationRequired Статус: "Network Authentication Required", код: 511. RFC6585, 6. Запрос был прерван сервером посредником, прокси или шлюзом, из-за необходимости авторизации клиента на сервере посреднике, до начала выполнения запросов.
	NetworkAuthenticationRequired IStatus
	// UnknownError Статус: "Unknown Error", код: 520. CloudFlare. Сервер CDN не смог обработать ошибку веб-сервера.
	UnknownError IStatus
	// WebServerIsDown Статус: "Web Server Is Down", код: 521. CloudFlare. Подключение сервера CDN отклоняются веб-сервером.
	WebServerIsDown IStatus
	// ConnectionTimedOut Статус: "Connection Timed Out", код: 522. CloudFlare. Серверу CDN не удалось подключиться к веб-серверу.
	ConnectionTimedOut IStatus
	// OriginIsUnreachable Статус: "Origin Is Unreachable", код: 523. CloudFlare. Веб-сервер недостижим для подключения с сервера CDN.
	OriginIsUnreachable IStatus
	// ATimeoutOccurred Статус: "A Timeout Occurred", код: 524. CloudFlare. Тайм-аут подключения между сервером CDN и веб-сервером истёк.
	ATimeoutOccurred IStatus
	// SslHandshakeFailed Статус: "SSL Handshake Failed", код: 525. CloudFlare. Ошибка рукопожатия SSL между сервером CDN и веб-сервером.
	SslHandshakeFailed IStatus
	// InvalidSslCertificate Статус: "Invalid SSL Certificate", код: 526. CloudFlare. Не удалось подтвердить сертификат шифрования веб-сервера.
	InvalidSslCertificate IStatus
	// RailgunError Статус: "Railgun Error", код: 527. CloudFlare. Соединение между CDN и веб-сервервером было прервано.
	RailgunError IStatus
	// NoSuchUserHere Статус: "No Such User Here", код: 550. SMTP. Ошибка: указанный почтовый ящик (пользователь) отсутствует.
	NoSuchUserHere IStatus
	// NetworkReadTimeoutError Статус: "Network Read Timeout Error", код: 598. Ответ возвращается сервером, который является прокси или шлюзом, перед вышестоящим сервером, и говорит о том, что сервер не смог получить ответ, на запрос, к вышестоящему серверу.
	NetworkReadTimeoutError IStatus
	// NetworkConnectTimeoutError Статус: "Network Connect Timeout Error", код: 599. Ответ возвращается сервером, который является прокси или шлюзом, перед вышестоящим сервером, и говорит о том, что сервер не смог установить связь или подключиться к вышестоящему серверу.
	NetworkConnectTimeoutError IStatus
	// Decline Статус: "Decline", код: 603. Телефония. Вызываемая сторона отклонила входящий вызов.
	Decline IStatus
}

Statuses Структура справочника статусов HTTP ответов.

func Status

func Status() Statuses

Status Справочник статусов HTTP ответов.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳