HTTP Headers
Validated on 31 Mar 2023 • Last edited on 1 Aug 2024
Functions are blocks of code that run on demand without the need to manage any infrastructure. Develop on your local machine, test your code from the command line (using doctl
), then deploy to a production namespace or App Platform — no servers required.
The web event (the http
key in the event
parameter passed to your handler function) contains the request’s HTTP headers under the headers
key.
Standard Headers
The following headers are always present as keys under headers
:
-
accept
: The types of content the client is able to use. This can be a single MIME type or a list of multiple types. Common values aretext/html
andapplication/json
.Multiple
accept
headers may be used instead of a single header with a list. The values of multiple headers are merged into a single comma-separated list. More info: MDN: Accept -
accept-encoding
: The types of content encoding the client can use, such asgzip
ordeflate
. For Functions, this is alwaysgzip
. More info: MDN: Accept-Encoding -
content-type
: The MIME type of the data being sent in the request body. For Functions, this is oftenapplication/json
ormultipart/form-data
. More info: MDN: Content-Type -
user-agent
: A string identifying the web browser, library, or other HTTP client making the request. More info: MDN: User-Agent -
x-forwarded-for
: The IP address of the client. Can be IPv4 or IPv6. More info: MDN: X-Forwarded-For -
x-forwarded-proto
: The protocol the client used to connect. Eitherhttp
orhttps
. More info: MDN: X-Forwarded-Proto -
x-request-id
: A unique ID for the function invocation used by internal DigitalOcean monitoring systems.
Other Headers
The requesting client or library can add additional headers to the request. The header name is always converted to lowercase and used as a key in the headers
dictionary. The header’s value is always a string.
Additionally, the Functions service may add headers to requests and responses that are not documented in the preceding section. These headers are used internally by Functions infrastructure and may change at any time.