- G
- P
- A
- B
- C
- E
- F
- H
- I
- K
- L
- M
- N
- O
- Q
- R
- S
- U
- X
- Rack::Request::Helpers
- ActionDispatch::Http::Cache::Request
- ActionDispatch::Http::MimeNegotiation
- ActionDispatch::Http::Parameters
- ActionDispatch::Http::FilterParameters
- ActionDispatch::Http::URL
- ActionDispatch::ContentSecurityPolicy::Request
- ActionDispatch::PermissionsPolicy::Request
- Rack::Request::Env
Constants
ENV_METHODS | = | %w[ AUTH_TYPE GATEWAY_INTERFACE PATH_TRANSLATED REMOTE_HOST REMOTE_IDENT REMOTE_USER REMOTE_ADDR SERVER_NAME SERVER_PROTOCOL ORIGINAL_SCRIPT_NAME HTTP_ACCEPT HTTP_ACCEPT_CHARSET HTTP_ACCEPT_ENCODING HTTP_ACCEPT_LANGUAGE HTTP_CACHE_CONTROL HTTP_FROM HTTP_NEGOTIATE HTTP_PRAGMA HTTP_CLIENT_IP HTTP_X_FORWARDED_FOR HTTP_ORIGIN HTTP_VERSION HTTP_X_CSRF_TOKEN HTTP_X_REQUEST_ID HTTP_X_FORWARDED_HOST ].freeze |
HTTP_METHODS | = | RFC2616 + RFC2518 + RFC3253 + RFC3648 + RFC3744 + RFC5323 + RFC4791 + RFC5789 |
HTTP_METHOD_LOOKUP | = | {} |
LOCALHOST | = | Regexp.union [/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/, /^::1$/, /^0:0:0:0:0:0:0:1(%.*)?$/] |
RFC2518 | = | %w(PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK) |
HTTP methods from RFC 2518: HTTP Extensions for Distributed Authoring – WEBDAV |
||
RFC2616 | = | %w(OPTIONS GET HEAD POST PUT DELETE TRACE CONNECT) |
HTTP methods from RFC 2616: Hypertext Transfer Protocol – HTTP/1.1 |
||
RFC3253 | = | %w(VERSION-CONTROL REPORT CHECKOUT CHECKIN UNCHECKOUT MKWORKSPACE UPDATE LABEL MERGE BASELINE-CONTROL MKACTIVITY) |
HTTP methods from RFC 3253: Versioning Extensions to WebDAV |
||
RFC3648 | = | %w(ORDERPATCH) |
HTTP methods from RFC 3648: WebDAV Ordered Collections Protocol |
||
RFC3744 | = | %w(ACL) |
HTTP methods from RFC 3744: WebDAV Access Control Protocol |
||
RFC4791 | = | %w(MKCALENDAR) |
HTTP methods from RFC 4791: Calendaring Extensions to WebDAV |
||
RFC5323 | = | %w(SEARCH) |
HTTP methods from RFC 5323: WebDAV SEARCH |
||
RFC5789 | = | %w(PATCH) |
HTTP methods from RFC 5789: PATCH Method for HTTP |
Class Public methods
empty() Link
new(env) Link
Instance Public methods
GET() Link
Override Rack's GET
method to support indifferent access.
# File actionpack/lib/action_dispatch/http/request.rb, line 371 def GET fetch_header("action_dispatch.request.query_parameters") do |k| rack_query_params = super || {} controller = path_parameters[:controller] action = path_parameters[:action] rack_query_params = Request::Utils.set_binary_encoding(self, rack_query_params, controller, action) # Check for non UTF-8 parameter values, which would cause errors later Request::Utils.check_param_encoding(rack_query_params) set_header k, Request::Utils.normalize_encode_params(rack_query_params) end rescue Rack::Utils::ParameterTypeError, Rack::Utils::InvalidParameterError, Rack::QueryParser::ParamsTooDeepError => e raise ActionController::BadRequest.new("Invalid query parameters: #{e.message}") end
POST() Link
Override Rack's POST
method to support indifferent access.
# File actionpack/lib/action_dispatch/http/request.rb, line 387 def POST fetch_header("action_dispatch.request.request_parameters") do pr = parse_formatted_parameters(params_parsers) do |params| super || {} end pr = Request::Utils.set_binary_encoding(self, pr, path_parameters[:controller], path_parameters[:action]) Request::Utils.check_param_encoding(pr) self.request_parameters = Request::Utils.normalize_encode_params(pr) end rescue Rack::Utils::ParameterTypeError, Rack::Utils::InvalidParameterError, Rack::QueryParser::ParamsTooDeepError, EOFError => e raise ActionController::BadRequest.new("Invalid request parameters: #{e.message}") end
authorization() Link
Returns the authorization header regardless of whether it was specified directly or through one of the proxy alternatives.
body() Link
The request body is an IO
input stream. If the RAW_POST_DATA environment variable is already set, wrap it in a StringIO.
commit_flash() Link
content_length() Link
Returns the content length of the request as an integer.
controller_class() Link
controller_class_for(name) Link
# File actionpack/lib/action_dispatch/http/request.rb, line 85 def controller_class_for(name) if name controller_param = name.underscore const_name = controller_param.camelize << "Controller" begin const_name.constantize rescue NameError => error if error.missing_name == const_name || const_name.start_with?("#{error.missing_name}::") raise MissingController.new(error.message, error.name) else raise end end else PASS_NOT_FOUND end end
form_data?() Link
Determine whether the request body contains form-data by checking the request Content-Type
for one of the media-types: application/x-www-form-urlencoded
or multipart/form-data
. The list of form-data media types can be modified through the FORM_DATA_MEDIA_TYPES
array.
A request body is not assumed to contain form-data when no Content-Type
header is provided and the request_method
is POST
.
fullpath() Link
Returns the String
full path including params of the last URL requested.
# get "/articles"
request.fullpath # => "/articles"
# get "/articles?page=2"
request.fullpath # => "/articles?page=2"
headers() Link
Provides access to the request's HTTP headers, for example:
request.headers["Content-Type"] # => "text/plain"
http_auth_salt() Link
ip() Link
Returns the IP address of client as a String
.
key?(key) Link
Returns true if the request has a header matching the given key parameter.
request.key? :ip_spoofing_check # => true
local?() Link
True if the request came from localhost, 127.0.0.1, or ::1.
logger() Link
media_type() Link
The String
MIME type of the request.
# get "/articles"
request.media_type # => "application/x-www-form-urlencoded"
method() Link
Returns the original value of the environment's REQUEST_METHOD, even if it was overridden by middleware. See request_method
for more information.
original_fullpath() Link
Returns a String
with the last requested path including their params.
# get '/foo'
request.original_fullpath # => '/foo'
# get '/foo?bar'
request.original_fullpath # => '/foo?bar'
original_url() Link
Returns the original request URL as a String
.
# get "/articles?page=2"
request.original_url # => "http://www.example.com/articles?page=2"
raw_post() Link
Read the request body. This is useful for web services that need to work with raw requests directly.
# File actionpack/lib/action_dispatch/http/request.rb, line 322 def raw_post unless has_header? "RAW_POST_DATA" raw_post_body = body set_header("RAW_POST_DATA", raw_post_body.read(content_length)) raw_post_body.rewind if raw_post_body.respond_to?(:rewind) end get_header "RAW_POST_DATA" end
remote_ip() Link
Returns the IP address of client as a String
, usually set by the RemoteIp
middleware.
remote_ip=(remote_ip) Link
request_id() Link
Returns the unique request id, which is based on either the X-Request-Id
header that can be generated by a firewall, load balancer, or web server, or by the RequestId
middleware (which sets the action_dispatch.request_id
environment variable).
This unique ID is useful for tracing a request from end-to-end as part of logging or debugging. This relies on the Rack variable set by the ActionDispatch::RequestId
middleware.
request_method() Link
Returns the HTTP method that the application should see. In the case where the method was overridden by a middleware (for instance, if a HEAD request was converted to a GET
, or if a _method parameter was used to determine the method the application should use), this method returns the overridden value, not the original.
request_method_symbol() Link
Returns a symbol form of the request_method
.
request_parameters=(params) Link
reset_session() Link
send_early_hints(links) Link
Early Hints is an HTTP/2 status code that indicates hints to help a client start making preparations for processing the final response.
If the env contains rack.early_hints
then the server accepts HTTP2 push for Link headers.
The send_early_hints
method accepts a hash of links as follows:
send_early_hints("Link" => "</style.css>; rel=preload; as=style\n</script.js>; rel=preload")
If you are using javascript_include_tag
or stylesheet_link_tag
the Early Hints headers are included by default if supported.
server_software() Link
Returns the lowercase name of the HTTP server software.