Software: Apache. PHP/5.6.40 uname -a: Linux cpanel06wh.bkk1.cloud.z.com 2.6.32-954.3.5.lve1.4.80.el6.x86_64 #1 SMP Thu Sep 24 uid=851(cp949260) gid=853(cp949260) groups=853(cp949260) Safe-mode: OFF (not secure) /opt/alt/ruby19/lib64/ruby/gems/1.9.1/doc/rack-1.6.4/rdoc/Rack/ drwxr-xr-x |
Viewing file: Select action/file-type: In FilesParentMethods
FilesClass/Module Index
Rack::RequestRack::Request provides a convenient interface to a Rack environment. It is stateless, the environment env passed to the constructor will be directly modified. req = Rack::Request.new(env) req.post? req.params["data"] Constants
Public Class MethodsPublic Instance Methods
GET()
click to toggle source
Returns the data received in the query string. # File lib/rack/request.rb, line 187 def GET if @env["rack.request.query_string"] == query_string @env["rack.request.query_hash"] else p = parse_query({ :query => query_string, :separator => '&;' }) @env["rack.request.query_string"] = query_string @env["rack.request.query_hash"] = p end end
POST()
click to toggle source
Returns the data received in the request body. This method support both application/x-www-form-urlencoded and multipart/form-data. # File lib/rack/request.rb, line 201 def POST if @env["rack.input"].nil? raise "Missing rack.input" elsif @env["rack.request.form_input"].equal? @env["rack.input"] @env["rack.request.form_hash"] elsif form_data? || parseable_data? unless @env["rack.request.form_hash"] = parse_multipart(env) form_vars = @env["rack.input"].read # Fix for Safari Ajax postings that always append \0 # form_vars.sub!(/\0\z/, '') # performance replacement: form_vars.slice!(-1) if form_vars[-1] == \00 \ @env["rack.request.form_vars"] = form_vars @env["rack.request.form_hash"] = parse_query({ :query => form_vars, :separator => '&' }) @env["rack.input"].rewind end @env["rack.request.form_input"] = @env["rack.input"] @env["rack.request.form_hash"] else {} end end
[](key)
click to toggle source
shortcut for request.params # File lib/rack/request.rb, line 269 def [](key) params[key.to_s] end
[]=(key, value)
click to toggle source
shortcut for request.params = value Note that modifications will not be persisted in the env. Use update_param or delete_param if you want to destructively modify params. # File lib/rack/request.rb, line 276 def []=(key, value) params[key.to_s] = value end
accept_encoding()
click to toggle source
# File lib/rack/request.rb, line 336 def accept_encoding parse_http_accept_header(@env["HTTP_ACCEPT_ENCODING"]) end
accept_language()
click to toggle source
# File lib/rack/request.rb, line 340 def accept_language parse_http_accept_header(@env["HTTP_ACCEPT_LANGUAGE"]) end
base_url()
click to toggle source
# File lib/rack/request.rb, line 317 def base_url url = "#{scheme}://#{host}" url << ":#{port}" if port != DEFAULT_PORTS[scheme] url end
content_charset()
click to toggle source
The character set of the request body if a "charset" media type parameter was given, or nil if no "charset" was specified. Note that, per RFC2616, text/* media types that specify no explicit charset are to be considered ISO-8859-1. # File lib/rack/request.rb, line 62 def content_charset media_type_params['charset'] end
content_length()
click to toggle source
# File lib/rack/request.rb, line 25 def content_length; @env['CONTENT_LENGTH'] end
content_type()
click to toggle source
# File lib/rack/request.rb, line 27 def content_type content_type = @env['CONTENT_TYPE'] content_type.nil? || content_type.empty? ? nil : content_type end
delete?()
click to toggle source
Checks the HTTP request method (or verb) to see if it was of type DELETE # File lib/rack/request.rb, line 116 def delete?; request_method == "DELETE" end
delete_param(k)
click to toggle source
Destructively delete a parameter, whether it's in GET or POST. Returns the value of the deleted parameter. If the parameter is in both GET and POST, the POST value takes precedence since that's how params works. env is not touched. # File lib/rack/request.rb, line 262 def delete_param(k) v = [ self.POST.delete(k), self.GET.delete(k) ].compact.first @params = nil v end
form_data?()
click to toggle source
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 also assumed to contain form-data when no Content-Type header is provided and the request_method is POST. # File lib/rack/request.rb, line 174 def form_data? type = media_type meth = env["rack.methodoverride.original_method"] || env[REQUEST_METHOD] (meth == 'POST' && type.nil?) || FORM_DATA_MEDIA_TYPES.include?(type) end
fullpath()
click to toggle source
# File lib/rack/request.rb, line 332 def fullpath query_string.empty? ? path : "#{path}?#{query_string}" end
get?()
click to toggle source
Checks the HTTP request method (or verb) to see if it was of type GET # File lib/rack/request.rb, line 119 def get?; request_method == GET end
head?()
click to toggle source
Checks the HTTP request method (or verb) to see if it was of type HEAD # File lib/rack/request.rb, line 122 def head?; request_method == HEAD end
host()
click to toggle source
# File lib/rack/request.rb, line 106 def host # Remove port number. host_with_port.to_s.sub(/:\d+\z/, '') end
host_with_port()
click to toggle source
# File lib/rack/request.rb, line 84 def host_with_port if forwarded = @env["HTTP_X_FORWARDED_HOST"] forwarded.split(/,\s?/).last else @env['HTTP_HOST'] || "#{@env['SERVER_NAME'] || @env['SERVER_ADDR']}:#{@env['SERVER_PORT']}" end end
ip()
click to toggle source
# File lib/rack/request.rb, line 348 def ip remote_addrs = split_ip_addresses(@env['REMOTE_ADDR']) remote_addrs = reject_trusted_ip_addresses(remote_addrs) return remote_addrs.first if remote_addrs.any? forwarded_ips = split_ip_addresses(@env['HTTP_X_FORWARDED_FOR']) return reject_trusted_ip_addresses(forwarded_ips).last || @env["REMOTE_ADDR"] end
link?()
click to toggle source
Checks the HTTP request method (or verb) to see if it was of type LINK # File lib/rack/request.rb, line 128 def link?; request_method == "LINK" end
logger()
click to toggle source
# File lib/rack/request.rb, line 34 def logger; @env['rack.logger'] end
media_type()
click to toggle source
The media type (type/subtype) portion of the CONTENT_TYPE header without any media type parameters. e.g., when CONTENT_TYPE is "text/plain;charset=utf-8", the media-type is "text/plain". For more information on the use of media types in HTTP, see: www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7 # File lib/rack/request.rb, line 42 def media_type content_type && content_type.split(/\s*[;,]\s*/, 2).first.downcase end
media_type_params()
click to toggle source
The media type parameters provided in CONTENT_TYPE as a Hash, or an empty Hash if no CONTENT_TYPE or media-type parameters were provided. e.g., when the CONTENT_TYPE is "text/plain;charset=utf-8", this method responds with the following Hash: { 'charset' => 'utf-8' } # File lib/rack/request.rb, line 51 def media_type_params return {} if content_type.nil? Hash[*content_type.split(/\s*[;,]\s*/)[1..-1]. collect { |s| s.split('=', 2) }. map { |k,v| [k.downcase, strip_doublequotes(v)] }.flatten] end
options?()
click to toggle source
Checks the HTTP request method (or verb) to see if it was of type OPTIONS # File lib/rack/request.rb, line 125 def options?; request_method == "OPTIONS" end
params()
click to toggle source
The union of GET and POST data. Note that modifications will not be persisted in the env. Use update_param or delete_param if you want to destructively modify params. # File lib/rack/request.rb, line 229 def params @params ||= self.GET.merge(self.POST) rescue EOFError self.GET.dup end
parseable_data?()
click to toggle source
Determine whether the request body contains data by checking the request media_type against registered parse-data media-types # File lib/rack/request.rb, line 182 def parseable_data? PARSEABLE_DATA_MEDIA_TYPES.include?(media_type) end
patch?()
click to toggle source
Checks the HTTP request method (or verb) to see if it was of type PATCH # File lib/rack/request.rb, line 131 def patch?; request_method == "PATCH" end
path()
click to toggle source
# File lib/rack/request.rb, line 328 def path script_name + path_info end
path_info()
click to toggle source
# File lib/rack/request.rb, line 22 def path_info; @env[PATH_INFO].to_s end
path_info=(s)
click to toggle source
# File lib/rack/request.rb, line 112 def path_info=(s); @env["PATH_INFO"] = s.to_s end
port()
click to toggle source
# File lib/rack/request.rb, line 92 def port if port = host_with_port.split(/:/)[1] port.to_i elsif port = @env['HTTP_X_FORWARDED_PORT'] port.to_i elsif @env.has_key?("HTTP_X_FORWARDED_HOST") DEFAULT_PORTS[scheme] elsif @env.has_key?("HTTP_X_FORWARDED_PROTO") DEFAULT_PORTS[@env['HTTP_X_FORWARDED_PROTO'].split(',')[0]] else @env["SERVER_PORT"].to_i end end
post?()
click to toggle source
Checks the HTTP request method (or verb) to see if it was of type POST # File lib/rack/request.rb, line 134 def post?; request_method == "POST" end
put?()
click to toggle source
Checks the HTTP request method (or verb) to see if it was of type PUT # File lib/rack/request.rb, line 137 def put?; request_method == "PUT" end
query_string()
click to toggle source
# File lib/rack/request.rb, line 24 def query_string; @env[QUERY_STRING].to_s end
referer()
click to toggle source
the referer of the client # File lib/rack/request.rb, line 286 def referer @env['HTTP_REFERER'] end
Also aliased as: referrer
request_method()
click to toggle source
# File lib/rack/request.rb, line 23 def request_method; @env["REQUEST_METHOD"] end
scheme()
click to toggle source
# File lib/rack/request.rb, line 66 def scheme if @env['HTTPS'] == 'on' 'https' elsif @env['HTTP_X_FORWARDED_SSL'] == 'on' 'https' elsif @env['HTTP_X_FORWARDED_SCHEME'] @env['HTTP_X_FORWARDED_SCHEME'] elsif @env['HTTP_X_FORWARDED_PROTO'] @env['HTTP_X_FORWARDED_PROTO'].split(',')[0] else @env["rack.url_scheme"] end end
script_name()
click to toggle source
# File lib/rack/request.rb, line 21 def script_name; @env[SCRIPT_NAME].to_s end
script_name=(s)
click to toggle source
# File lib/rack/request.rb, line 111 def script_name=(s); @env["SCRIPT_NAME"] = s.to_s end
session()
click to toggle source
# File lib/rack/request.rb, line 32 def session; @env['rack.session'] ||= {} end
session_options()
click to toggle source
# File lib/rack/request.rb, line 33 def session_options; @env['rack.session.options'] ||= {} end
trace?()
click to toggle source
Checks the HTTP request method (or verb) to see if it was of type TRACE # File lib/rack/request.rb, line 140 def trace?; request_method == "TRACE" end
trusted_proxy?(ip)
click to toggle source
# File lib/rack/request.rb, line 344 def trusted_proxy?(ip) ip =~ /\A127\.0\.0\.1\Z|\A(10|172\.(1[6-9]|2[0-9]|30|31)|192\.168)\.|\A::1\Z|\Afd[0-9a-f]{2}:.+|\Alocalhost\Z|\Aunix\Z|\Aunix:/ end
unlink?()
click to toggle source
Checks the HTTP request method (or verb) to see if it was of type UNLINK # File lib/rack/request.rb, line 143 def unlink?; request_method == "UNLINK" end
update_param(k, v)
click to toggle source
Destructively update a parameter, whether it's in GET and/or POST. Returns nil. The parameter is updated wherever it was previous defined, so GET, POST, or both. If it wasn't previously defined, it's inserted into GET. env is not touched. # File lib/rack/request.rb, line 240 def update_param(k, v) found = false if self.GET.has_key?(k) found = true self.GET[k] = v end if self.POST.has_key?(k) found = true self.POST[k] = v end unless found self.GET[k] = v end @params = nil nil end
url()
click to toggle source
Tries to return a remake of the original request URL as a string. # File lib/rack/request.rb, line 324 def url base_url + fullpath end
user_agent()
click to toggle source
# File lib/rack/request.rb, line 291 def user_agent @env['HTTP_USER_AGENT'] end Protected Instance Methods
parse_http_accept_header(header)
click to toggle source
# File lib/rack/request.rb, line 378 def parse_http_accept_header(header) header.to_s.split(/\s*,\s*/).map do |part| attribute, parameters = part.split(/\s*;\s*/, 2) quality = 1.0 if parameters and /\Aq=([\d.]+)/ =~ parameters quality = $1.to_f end [attribute, quality] end end
parse_multipart(env)
click to toggle source
# File lib/rack/request.rb, line 374 def parse_multipart(env) Rack::Multipart.parse_multipart(env) end
parse_query(qs)
click to toggle source
# File lib/rack/request.rb, line 368 def parse_query(qs) d = '&' qs, d = qs[:query], qs[:separator] if Hash === qs Utils.parse_nested_query(qs, d) end Generated with the Darkfish Rdoc Generator 2. |
:: Command execute :: | |
--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by KaizenLouie | C99Shell Github | Generation time: 0.1245 ]-- |