= !HttpRequest = [[TOC]] Represents an incoming HTTP request, including all HTTP headers and user-submitted data. == Attributes == Unless otherwise noted, all attributes should be treated as read-only. Additional attributes may be added by [http://www.djangoproject.com/documentation/middleware/ middleware], as defined in a project's [http://www.djangoproject.com/documentation/settings/#middleware-classes settings]. Some attributes commonly added by middleware are listed here as well, with a link to the middleware documentation. || `path` || String containing the full path (not including domain) of the URL requested || || `method` || Stringing containing the HTTP method used by the request (`'GET'` or `'POST'`) || || `GET` || A QueryDict representing form values submitted using the HTTP `GET` method || || `POST` || A QueryDict representing form values submitted using the HTTP `POST` method || || `raw_post_data` || Unprocessed text of the complete POST data, only used in advanced cases, where POST data cannot be parsed into a `QueryDict` || || `COOKIES` || A dictionary of cookies sent by the browser during the request || || `META` || A dictionary of included HTTP headers; available headers will vary based on client and server || || `user` || A `User` (or `AnonymousUser`) object from the [http://www.djangoproject.com/documentation/authentication/#authentication-in-web-requests authentication middleware] || || `session` || A special read-write dictionary provided by the [http://www.djangoproject.com/documentation/sessions/ sessions middleware] || == Methods == || `has_key(key)` || Returns `True` if the given key was provided in the request (`GET` or `POST`). `False` otherwise || || `get_full_path()` || Returns the full request string, including any query string that was provided || || `is_secure()` || Returns `True` if the request was made using HTTPS, `False` otherwise || == Dictionary Syntax == !HttpRequest objects allow form data to be retrieved using standard Python dictionary syntax. It will check for `GET` data first, then `POST`. Like any dictionary, accessing a non-existant key will result in an `AttributeError`. This access is read-only. {{{ #!python username = request['username'] }}}