Documentation ¶
Overview ¶
Package xhttp provides utility functions for HTTP requests.
Index ¶
Constants ¶
View Source
const ( Age string = "Age" AltSCV string = "Alt-Svc" Accept string = "Accept" AcceptCharset string = "Accept-Charset" AcceptPatch string = "Accept-Patch" AcceptRanges string = "Accept-Ranges" AcceptedLanguage string = "Accept-Language" AcceptEncoding string = "Accept-Encoding" Authorization string = "Authorization" CrossOriginResourcePolicy string = "Cross-Origin-Resource-Policy" CacheControl string = "Cache-Control" Connection string = "Connection" ContentDisposition string = "Content-Disposition" ContentEncoding string = "Content-Encoding" ContentLength string = "Content-Length" ContentType string = "Content-Type" ContentLanguage string = "Content-Language" ContentLocation string = "Content-Location" ContentRange string = "Content-Range" Date string = "Date" DeltaBase string = "Delta-Base" ETag string = "ETag" Expires string = "Expires" Host string = "Host" IM string = "IM" IfMatch string = "If-Match" IfModifiedSince string = "If-Modified-Since" IfNoneMatch string = "If-None-Match" IfRange string = "If-Range" IfUnmodifiedSince string = "If-Unmodified-Since" KeepAliveK string = "Keep-Alive" LastModified string = "Last-Modified" Link string = "Link" Pragma string = "Pragma" ProxyAuthenticate string = "Proxy-Authenticate" ProxyAuthorization string = "Proxy-Authorization" PublicKeyPins string = "Public-Key-Pins" RetryAfter string = "Retry-After" Referer string = "Referer" Server string = "Server" SetCookie string = "Set-Cookie" StrictTransportSecurity string = "Strict-Transport-Security" Trailer string = "Trailer" TK string = "Tk" TransferEncoding string = "Transfer-Encoding" Location string = "Location" Upgrade string = "Upgrade" Vary string = "Vary" Via string = "Via" Warning string = "Warning" WWWAuthenticate string = "WWW-Authenticate" XForwardedFor string = "X-Forwarded-For" XForwardedHost string = "X-Forwarded-Host" XForwardedProto string = "X-Forwarded-Proto" XRealIP string = "X-Real-Ip" XContentTypeOptions string = "X-Content-Type-Options" XFrameOptions string = "X-Frame-Options" XXSSProtection string = "X-XSS-Protection" XDNSPrefetchControl string = "X-DNS-Prefetch-Control" Allow string = "Allow" Origin string = "Origin" AccessControlAllowOrigin string = "Access-Control-Allow-Origin" AccessControlAllowCredentials string = "Access-Control-Allow-Credentials" AccessControlAllowHeaders string = "Access-Control-Allow-Headers" AccessControlAllowMethods string = "Access-Control-Allow-Methods" AccessControlExposeHeaders string = "Access-Control-Expose-Headers" AccessControlMaxAge string = "Access-Control-Max-Age" AccessControlRequestHeaders string = "Access-Control-Request-Headers" AccessControlRequestMethod string = "Access-Control-Request-Method" TimingAllowOrigin string = "Timing-Allow-Origin" UserAgent string = "User-Agent" )
Common HTTP header keys. Copied from pkg/net/http/header.go for convenience.
View Source
const ( NoCache string = "no-cache" KeepAliveV string = "keep-alive" Close string = "close" ApplicationJSON string = "application/json" FormData string = "multipart/form-data" TextHTML string = "text/html" TextPlain string = "text/plain" TextCSS string = "text/css" TextJavascript string = "text/javascript" ApplicationJavascript string = "application/javascript" ApplicationXML string = "application/xml" ImageJPEG string = "image/jpeg" ImagePNG string = "image/png" ImageGIF string = "image/gif" ImageSVG string = "image/svg+xml" CharsetUTF8 string = "charset=utf-8" Gzip string = "gzip" Deflate string = "deflate" Brotli string = "br" Wildcard string = "*" SameOrigin string = "same-origin" Deny string = "deny" SameSiteLax string = "Lax" SameSiteStrict string = "Strict" SameSiteNone string = "None" Secure string = "secure" NoTransform string = "no-transform" Chunked string = "chunked" True string = "true" False string = "false" )
Common HTTP header values.
View Source
const ( // ErrMissingRequest indicates that a nil http.Request was provided to the // ClientIP function. ErrMissingRequest xerrors.Error = "missing http.Request" // ErrInvalidIP indicates that no valid IP address could be extracted from // the given http.Request. ErrInvalidIP xerrors.Error = "invalid IP address" )
Variables ¶
This section is empty.
Functions ¶
func ClientIP ¶
ClientIP implements a best-effort algorithm for determining the real IP address of the client.
Under the hood, it prioritizes the rightmost IP from the last instance of the X-Forwarded-For header and falls back to the RemoteAddr field of http.Request if the header is missing.
Types ¶
type ResponseError ¶ added in v0.3.0
type ResponseError struct { // Message is a human-readable message describing the error. Message string `json:"message"` // Documentation is a link to documentation describing the error. Documentation string `json:"documentation,omitempty"` // Code is a machine-readable code describing the error. Code int `json:"code"` }
ResponseError represents the response returned by the HTTP server when an error occurs.
func (ResponseError) Error ¶ added in v0.3.0
func (e ResponseError) Error() string
Error implements the Error interface.
func (ResponseError) Write ¶ added in v0.3.0
func (e ResponseError) Write(ctx context.Context, logger *slog.Logger, w http.ResponseWriter)
Write serializes the ResponseError as a JSON object and writes it to the given HTTP response writer.
Directories ¶
Path | Synopsis |
---|---|
Package xhttputil provides utility functions for HTTP requests and responses.
|
Package xhttputil provides utility functions for HTTP requests and responses. |
Package xmiddleware contains simple middleware functions.
|
Package xmiddleware contains simple middleware functions. |
Click to show internal directories.
Click to hide internal directories.