Skip to main content
Fiber provides constants for HTTP methods, status codes, headers, MIME types, and common errors.

HTTP Methods

Standard HTTP methods as defined in RFC 7231.
const (
    MethodGet     = "GET"     // RFC 7231, 4.3.1
    MethodHead    = "HEAD"    // RFC 7231, 4.3.2
    MethodPost    = "POST"    // RFC 7231, 4.3.3
    MethodPut     = "PUT"     // RFC 7231, 4.3.4
    MethodPatch   = "PATCH"   // RFC 5789
    MethodDelete  = "DELETE"  // RFC 7231, 4.3.5
    MethodConnect = "CONNECT" // RFC 7231, 4.3.6
    MethodOptions = "OPTIONS" // RFC 7231, 4.3.7
    MethodTrace   = "TRACE"   // RFC 7231, 4.3.8
)

HTTP Status Codes

Standard HTTP status codes from RFC 9110.

1xx Informational

const (
    StatusContinue           = 100 // RFC 9110, 15.2.1
    StatusSwitchingProtocols = 101 // RFC 9110, 15.2.2
    StatusProcessing         = 102 // RFC 2518, 10.1
    StatusEarlyHints         = 103 // RFC 8297
)

2xx Success

const (
    StatusOK                          = 200 // RFC 9110, 15.3.1
    StatusCreated                     = 201 // RFC 9110, 15.3.2
    StatusAccepted                    = 202 // RFC 9110, 15.3.3
    StatusNonAuthoritativeInformation = 203 // RFC 9110, 15.3.4
    StatusNoContent                   = 204 // RFC 9110, 15.3.5
    StatusResetContent                = 205 // RFC 9110, 15.3.6
    StatusPartialContent              = 206 // RFC 9110, 15.3.7
    StatusMultiStatus                 = 207 // RFC 4918, 11.1
    StatusAlreadyReported             = 208 // RFC 5842, 7.1
    StatusIMUsed                      = 226 // RFC 3229, 10.4.1
)

3xx Redirection

const (
    StatusMultipleChoices   = 300 // RFC 9110, 15.4.1
    StatusMovedPermanently  = 301 // RFC 9110, 15.4.2
    StatusFound             = 302 // RFC 9110, 15.4.3
    StatusSeeOther          = 303 // RFC 9110, 15.4.4
    StatusNotModified       = 304 // RFC 9110, 15.4.5
    StatusUseProxy          = 305 // RFC 9110, 15.4.6
    StatusSwitchProxy       = 306 // RFC 9110, 15.4.7 (Unused)
    StatusTemporaryRedirect = 307 // RFC 9110, 15.4.8
    StatusPermanentRedirect = 308 // RFC 9110, 15.4.9
)

4xx Client Errors

const (
    StatusBadRequest                   = 400 // RFC 9110, 15.5.1
    StatusUnauthorized                 = 401 // RFC 9110, 15.5.2
    StatusPaymentRequired              = 402 // RFC 9110, 15.5.3
    StatusForbidden                    = 403 // RFC 9110, 15.5.4
    StatusNotFound                     = 404 // RFC 9110, 15.5.5
    StatusMethodNotAllowed             = 405 // RFC 9110, 15.5.6
    StatusNotAcceptable                = 406 // RFC 9110, 15.5.7
    StatusProxyAuthRequired            = 407 // RFC 9110, 15.5.8
    StatusRequestTimeout               = 408 // RFC 9110, 15.5.9
    StatusConflict                     = 409 // RFC 9110, 15.5.10
    StatusGone                         = 410 // RFC 9110, 15.5.11
    StatusLengthRequired               = 411 // RFC 9110, 15.5.12
    StatusPreconditionFailed           = 412 // RFC 9110, 15.5.13
    StatusRequestEntityTooLarge        = 413 // RFC 9110, 15.5.14
    StatusRequestURITooLong            = 414 // RFC 9110, 15.5.15
    StatusUnsupportedMediaType         = 415 // RFC 9110, 15.5.16
    StatusRequestedRangeNotSatisfiable = 416 // RFC 9110, 15.5.17
    StatusExpectationFailed            = 417 // RFC 9110, 15.5.18
    StatusTeapot                       = 418 // RFC 9110, 15.5.19 (Unused)
    StatusMisdirectedRequest           = 421 // RFC 9110, 15.5.20
    StatusUnprocessableEntity          = 422 // RFC 9110, 15.5.21
    StatusLocked                       = 423 // RFC 4918, 11.3
    StatusFailedDependency             = 424 // RFC 4918, 11.4
    StatusTooEarly                     = 425 // RFC 8470, 5.2
    StatusUpgradeRequired              = 426 // RFC 9110, 15.5.22
    StatusPreconditionRequired         = 428 // RFC 6585, 3
    StatusTooManyRequests              = 429 // RFC 6585, 4
    StatusRequestHeaderFieldsTooLarge  = 431 // RFC 6585, 5
    StatusUnavailableForLegalReasons   = 451 // RFC 7725, 3
)

5xx Server Errors

const (
    StatusInternalServerError           = 500 // RFC 9110, 15.6.1
    StatusNotImplemented                = 501 // RFC 9110, 15.6.2
    StatusBadGateway                    = 502 // RFC 9110, 15.6.3
    StatusServiceUnavailable            = 503 // RFC 9110, 15.6.4
    StatusGatewayTimeout                = 504 // RFC 9110, 15.6.5
    StatusHTTPVersionNotSupported       = 505 // RFC 9110, 15.6.6
    StatusVariantAlsoNegotiates         = 506 // RFC 2295, 8.1
    StatusInsufficientStorage           = 507 // RFC 4918, 11.5
    StatusLoopDetected                  = 508 // RFC 5842, 7.2
    StatusNotExtended                   = 510 // RFC 2774, 7
    StatusNetworkAuthenticationRequired = 511 // RFC 6585, 6
)

Error Constants

Pre-defined error instances for common HTTP errors.
var (
    ErrBadRequest                   = NewError(StatusBadRequest)                   // 400
    ErrUnauthorized                 = NewError(StatusUnauthorized)                 // 401
    ErrPaymentRequired              = NewError(StatusPaymentRequired)              // 402
    ErrForbidden                    = NewError(StatusForbidden)                    // 403
    ErrNotFound                     = NewError(StatusNotFound)                     // 404
    ErrMethodNotAllowed             = NewError(StatusMethodNotAllowed)             // 405
    ErrNotAcceptable                = NewError(StatusNotAcceptable)                // 406
    ErrProxyAuthRequired            = NewError(StatusProxyAuthRequired)            // 407
    ErrRequestTimeout               = NewError(StatusRequestTimeout)               // 408
    ErrConflict                     = NewError(StatusConflict)                     // 409
    ErrGone                         = NewError(StatusGone)                         // 410
    ErrLengthRequired               = NewError(StatusLengthRequired)               // 411
    ErrPreconditionFailed           = NewError(StatusPreconditionFailed)           // 412
    ErrRequestEntityTooLarge        = NewError(StatusRequestEntityTooLarge)        // 413
    ErrRequestURITooLong            = NewError(StatusRequestURITooLong)            // 414
    ErrUnsupportedMediaType         = NewError(StatusUnsupportedMediaType)         // 415
    ErrRequestedRangeNotSatisfiable = NewError(StatusRequestedRangeNotSatisfiable) // 416
    ErrExpectationFailed            = NewError(StatusExpectationFailed)            // 417
    ErrTeapot                       = NewError(StatusTeapot)                       // 418
    ErrMisdirectedRequest           = NewError(StatusMisdirectedRequest)           // 421
    ErrUnprocessableEntity          = NewError(StatusUnprocessableEntity)          // 422
    ErrLocked                       = NewError(StatusLocked)                       // 423
    ErrFailedDependency             = NewError(StatusFailedDependency)             // 424
    ErrTooEarly                     = NewError(StatusTooEarly)                     // 425
    ErrUpgradeRequired              = NewError(StatusUpgradeRequired)              // 426
    ErrPreconditionRequired         = NewError(StatusPreconditionRequired)         // 428
    ErrTooManyRequests              = NewError(StatusTooManyRequests)              // 429
    ErrRequestHeaderFieldsTooLarge  = NewError(StatusRequestHeaderFieldsTooLarge)  // 431
    ErrUnavailableForLegalReasons   = NewError(StatusUnavailableForLegalReasons)   // 451

    ErrInternalServerError           = NewError(StatusInternalServerError)           // 500
    ErrNotImplemented                = NewError(StatusNotImplemented)                // 501
    ErrBadGateway                    = NewError(StatusBadGateway)                    // 502
    ErrServiceUnavailable            = NewError(StatusServiceUnavailable)            // 503
    ErrGatewayTimeout                = NewError(StatusGatewayTimeout)                // 504
    ErrHTTPVersionNotSupported       = NewError(StatusHTTPVersionNotSupported)       // 505
    ErrVariantAlsoNegotiates         = NewError(StatusVariantAlsoNegotiates)         // 506
    ErrInsufficientStorage           = NewError(StatusInsufficientStorage)           // 507
    ErrLoopDetected                  = NewError(StatusLoopDetected)                  // 508
    ErrNotExtended                   = NewError(StatusNotExtended)                   // 510
    ErrNetworkAuthenticationRequired = NewError(StatusNetworkAuthenticationRequired) // 511
)
Example
app.Get("/admin", func(c fiber.Ctx) error {
    if !isAdmin(c) {
        return fiber.ErrForbidden
    }
    return c.SendString("Admin panel")
})

MIME Types

Common MIME type constants.
const (
    MIMETextXML               = "text/xml"
    MIMETextHTML              = "text/html"
    MIMETextPlain             = "text/plain"
    MIMETextJavaScript        = "text/javascript"
    MIMETextCSS               = "text/css"
    MIMEApplicationXML        = "application/xml"
    MIMEApplicationJSON       = "application/json"
    MIMEApplicationJavaScript = "application/javascript"
    MIMEApplicationCBOR       = "application/cbor"
    MIMEApplicationForm       = "application/x-www-form-urlencoded"
    MIMEOctetStream           = "application/octet-stream"
    MIMEMultipartForm         = "multipart/form-data"
    MIMEApplicationMsgPack    = "application/vnd.msgpack"

    MIMETextXMLCharsetUTF8         = "text/xml; charset=utf-8"
    MIMETextHTMLCharsetUTF8        = "text/html; charset=utf-8"
    MIMETextPlainCharsetUTF8       = "text/plain; charset=utf-8"
    MIMETextJavaScriptCharsetUTF8  = "text/javascript; charset=utf-8"
    MIMETextCSSCharsetUTF8         = "text/css; charset=utf-8"
    MIMEApplicationXMLCharsetUTF8  = "application/xml; charset=utf-8"
    MIMEApplicationJSONCharsetUTF8 = "application/json; charset=utf-8"
)

HTTP Headers

Standard HTTP header name constants.
const (
    // Authentication
    HeaderAuthorization      = "Authorization"
    HeaderProxyAuthenticate  = "Proxy-Authenticate"
    HeaderProxyAuthorization = "Proxy-Authorization"
    HeaderWWWAuthenticate    = "WWW-Authenticate"

    // Caching
    HeaderAge          = "Age"
    HeaderCacheControl = "Cache-Control"
    HeaderClearSiteData = "Clear-Site-Data"
    HeaderExpires      = "Expires"
    HeaderPragma       = "Pragma"
    HeaderWarning      = "Warning"

    // Conditionals
    HeaderETag              = "ETag"
    HeaderIfMatch           = "If-Match"
    HeaderIfModifiedSince   = "If-Modified-Since"
    HeaderIfNoneMatch       = "If-None-Match"
    HeaderIfUnmodifiedSince = "If-Unmodified-Since"
    HeaderLastModified      = "Last-Modified"
    HeaderVary              = "Vary"

    // Connection
    HeaderConnection = "Connection"
    HeaderKeepAlive  = "Keep-Alive"

    // Content Negotiation
    HeaderAccept         = "Accept"
    HeaderAcceptCharset  = "Accept-Charset"
    HeaderAcceptEncoding = "Accept-Encoding"
    HeaderAcceptLanguage = "Accept-Language"

    // Cookies
    HeaderCookie    = "Cookie"
    HeaderSetCookie = "Set-Cookie"

    // CORS
    HeaderAccessControlAllowCredentials = "Access-Control-Allow-Credentials"
    HeaderAccessControlAllowHeaders     = "Access-Control-Allow-Headers"
    HeaderAccessControlAllowMethods     = "Access-Control-Allow-Methods"
    HeaderAccessControlAllowOrigin      = "Access-Control-Allow-Origin"
    HeaderAccessControlExposeHeaders    = "Access-Control-Expose-Headers"
    HeaderAccessControlMaxAge           = "Access-Control-Max-Age"
    HeaderAccessControlRequestHeaders   = "Access-Control-Request-Headers"
    HeaderAccessControlRequestMethod    = "Access-Control-Request-Method"
    HeaderOrigin                        = "Origin"

    // Message Body Information
    HeaderContentDisposition = "Content-Disposition"
    HeaderContentEncoding    = "Content-Encoding"
    HeaderContentLanguage    = "Content-Language"
    HeaderContentLength      = "Content-Length"
    HeaderContentLocation    = "Content-Location"
    HeaderContentType        = "Content-Type"

    // Proxies
    HeaderForwarded         = "Forwarded"
    HeaderVia               = "Via"
    HeaderXForwardedFor     = "X-Forwarded-For"
    HeaderXForwardedHost    = "X-Forwarded-Host"
    HeaderXForwardedProto   = "X-Forwarded-Proto"
    HeaderXForwardedProtocol = "X-Forwarded-Protocol"
    HeaderXForwardedSsl     = "X-Forwarded-Ssl"
    HeaderXUrlScheme        = "X-Url-Scheme"

    // Request Context
    HeaderFrom          = "From"
    HeaderHost          = "Host"
    HeaderReferer       = "Referer"
    HeaderReferrerPolicy = "Referrer-Policy"
    HeaderUserAgent     = "User-Agent"

    // Response Context
    HeaderAllow  = "Allow"
    HeaderServer = "Server"

    // Range Requests
    HeaderAcceptRanges = "Accept-Ranges"
    HeaderContentRange = "Content-Range"
    HeaderIfRange      = "If-Range"
    HeaderRange        = "Range"

    // Security
    HeaderContentSecurityPolicy           = "Content-Security-Policy"
    HeaderContentSecurityPolicyReportOnly = "Content-Security-Policy-Report-Only"
    HeaderCrossOriginResourcePolicy       = "Cross-Origin-Resource-Policy"
    HeaderExpectCT                        = "Expect-CT"
    HeaderPermissionsPolicy               = "Permissions-Policy"
    HeaderPublicKeyPins                   = "Public-Key-Pins"
    HeaderPublicKeyPinsReportOnly         = "Public-Key-Pins-Report-Only"
    HeaderStrictTransportSecurity         = "Strict-Transport-Security"
    HeaderUpgradeInsecureRequests         = "Upgrade-Insecure-Requests"
    HeaderXContentTypeOptions             = "X-Content-Type-Options"
    HeaderXDownloadOptions                = "X-Download-Options"
    HeaderXFrameOptions                   = "X-Frame-Options"
    HeaderXPoweredBy                      = "X-Powered-By"
    HeaderXXSSProtection                  = "X-XSS-Protection"

    // WebSocket
    HeaderSecWebSocketAccept     = "Sec-WebSocket-Accept"
    HeaderSecWebSocketExtensions = "Sec-WebSocket-Extensions"
    HeaderSecWebSocketKey        = "Sec-WebSocket-Key"
    HeaderSecWebSocketProtocol   = "Sec-WebSocket-Protocol"
    HeaderSecWebSocketVersion    = "Sec-WebSocket-Version"
    HeaderUpgrade                = "Upgrade"

    // Other
    HeaderDate            = "Date"
    HeaderLocation        = "Location"
    HeaderRetryAfter      = "Retry-After"
    HeaderTE              = "TE"
    HeaderTrailer         = "Trailer"
    HeaderTransferEncoding = "Transfer-Encoding"
    HeaderXRequestID      = "X-Request-ID"
    HeaderXRequestedWith  = "X-Requested-With"
)

Network Types

const (
    NetworkTCP  = "tcp"
    NetworkTCP4 = "tcp4"
    NetworkTCP6 = "tcp6"
    NetworkUnix = "unix"
)

Compression Types

const (
    CompressionGzip    = "gzip"
    CompressionBrotli  = "br"
    CompressionZstd    = "zstd"
    CompressionDeflate = "deflate"
)

Build docs developers (and LLMs) love