HttpRequest.META
A standard Python dictionary containing all available HTTP headers. Available headers depend on the client and server, but here are some examples:
-
CONTENT_LENGTH– The length of the request body (as a string). -
CONTENT_TYPE– The MIME type of the request body. -
HTTP_ACCEPT– Acceptable content types for the response. -
HTTP_ACCEPT_ENCODING– Acceptable encodings for the response. -
HTTP_ACCEPT_LANGUAGE– Acceptable languages for the response. -
HTTP_HOST– The HTTP Host header sent by the client. -
HTTP_REFERER– The referring page, if any. -
HTTP_USER_AGENT– The client’s user-agent string. -
QUERY_STRING– The query string, as a single (unparsed) string. -
REMOTE_ADDR– The IP address of the client. -
REMOTE_HOST– The hostname of the client. -
REMOTE_USER– The user authenticated by the Web server, if any. -
REQUEST_METHOD– A string such as"GET"or"POST". -
SERVER_NAME– The hostname of the server. -
SERVER_PORT– The port of the server (as a string).
With the exception of CONTENT_LENGTH and CONTENT_TYPE, as given above, any HTTP headers in the request are converted to META keys by converting all characters to uppercase, replacing any hyphens with underscores and adding an HTTP_ prefix to the name. So, for example, a header called X-Bender would be mapped to the META key HTTP_X_BENDER.
Note that runserver strips all headers with underscores in the name, so you won’t see them in META. This prevents header-spoofing based on ambiguity between underscores and dashes both being normalizing to underscores in WSGI environment variables. It matches the behavior of Web servers like Nginx and Apache 2.4+.
Please login to continue.