Headers
- class Headers
A map of the key value pairs from the header portion of an HTTP request or response. The fields listed below are some common headers but the list is not exhaustive.
When each header is serialized, it is added as a property with lower_snake_case. For example, X-Forwarded-For becomes x_forwarded_for.
Typically each header’s value will be a string, however if there are multiple entries for any header, it will be a table of strings.
- static serialize_header(key, value)
Serialize a key value pair w/o the trailing new line
If the provided value is a string[], it will be joined with rn into one string, though no trailing new line will be provided
- Parameters:
key (
str
)value (
str or list[str]
)
- Return type:
str
- serialize()
Serialize the whole set of headers separating them with a ‘\r\n’
- Return type:
str
- append_chunk(text)
Append a chunk of headers to this map
- Parameters:
text (
str
)- Returns:
success 1 if successful
- Return type:
integer or nil
- Returns:
err if ret1 is nil an error message
- Return type:
nil or str
- static from_chunk(text)
Constructor for a Headers instance with the provided text
- Parameters:
text (
str
)- Return type:
Headers or nil
- Return type:
nil or str
- static normalize_key(key)
Convert a standard header key to the normalized
lua identifer used by this collection
- Parameters:
key (
str
)- Return type:
str
- append(key, value)
Insert a single key value pair to the collection will duplicate existing keys
- Parameters:
key (
str
)value (
str or nil
)
- Return type:
- replace(key, value)
Insert a single key value pair to the collection will not duplicate keys
- Parameters:
key (
str
)value (
str
)
- Return type:
- get_one(key)
Get a header from the map of headers
This will first normalize the provided key. For example ‘Content-Type’ will be normalized to content_type. If more than one value is provided for that header, the last value will be provided
- Parameters:
key (
str
)- Return type:
str
- get_all(key)
Get a header from the map of headers as a list of strings.
In the event that a header’s key is duplicated, the value is stored internally as a list of values. This method is useful for getting that list.
This will first normalize the provided key. For example ‘Content-Type’ will be normalized to content_type.
- Parameters:
key (
str
)- Return type:
list[str]
- iter()
Return a lua iterator over the key/value pairs in this header map
- Returns:
():string|nil
- Return type:
function