deja-vu 0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Change.log +4 -0
- data/LICENSE +19 -0
- data/Makefile +0 -0
- data/README +22 -0
- data/Rakefile +31 -0
- data/example-playback/README +6 -0
- data/example-playback/analysis.rb +7 -0
- data/example-playback/playback.rb +7 -0
- data/example-playback/repo/recordings/DejaVuNS/DejaVu/recordings +1 -0
- data/example-playback/repo/recordings/DejaVuNS/Recording/bah7aa==/n--ab7689c618445bb17b626741588b50c0500c8f79 +1 -0
- data/example/Makefile +6 -0
- data/example/config.ru +9 -0
- data/example/deja-vu-recordings/6b44093baa40d257106bae6dbcda53af9a57e61f.session +53 -0
- data/example/deja-vu-recordings/BAh7AA==/n--ab7689c618445bb17b626741588b50c0500c8f79.session +598 -0
- data/example/deja-vu-recordings/README +1 -0
- data/example/myapp.rb +15 -0
- data/example/repo/recordings/DejaVuNS/DejaVu/recordings +1 -0
- data/example/repo/recordings/DejaVuNS/Recording/bah7aa==/n--ab7689c618445bb17b626741588b50c0500c8f79 +1 -0
- data/example/views/index.haml +0 -0
- data/example/views/layout.haml +0 -0
- data/lib/deja-vu.rb +72 -0
- data/lib/deja-vu/analyzer.rb +133 -0
- data/lib/deja-vu/init.rb +3 -0
- data/lib/deja-vu/model/dejavu.rb +42 -0
- data/lib/deja-vu/model/generated_model/DejaVuNS.rb +1536 -0
- data/lib/deja-vu/model/init.rb +3 -0
- data/lib/deja-vu/model/record.rb +58 -0
- data/lib/deja-vu/model/recording.rb +55 -0
- data/lib/deja-vu/model/xampl-gen.rb +39 -0
- data/lib/deja-vu/model/xml/dejavu.xml +28 -0
- data/lib/deja-vu/player.rb +241 -0
- data/lib/deja-vu/recorder.rb +93 -0
- data/lib/rack-session-listener.rb +29 -0
- metadata +94 -0
data/Change.log
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
Copyright (c) 2009 Kristan 'Krispy' Uccello <krispy@soldierofcode.com> - Soldier Of Code
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
of this software and associated documentation files (the "Software"), to deal
|
5
|
+
in the Software without restriction, including without limitation the rights
|
6
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
copies of the Software, and to permit persons to whom the Software is
|
8
|
+
furnished to do so, subject to the following conditions:
|
9
|
+
|
10
|
+
The above copyright notice and this permission notice shall be included in
|
11
|
+
all copies or substantial portions of the Software.
|
12
|
+
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
+
THE SOFTWARE.
|
data/Makefile
ADDED
File without changes
|
data/README
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
=Deja Vu
|
2
|
+
|
3
|
+
== A rack based session record / playback middleware for problemsolving web applications
|
4
|
+
|
5
|
+
This is user session record and playback. Good for what ales you.
|
6
|
+
|
7
|
+
== Usage
|
8
|
+
|
9
|
+
>> require 'deja-vu'
|
10
|
+
|
11
|
+
YOU NEED TO TURN ON COOKIE SESSIONS UPSTREAM OF DejaVu FOR THIS TO WORK
|
12
|
+
|
13
|
+
ie.
|
14
|
+
use Rack::Session::Cookie,
|
15
|
+
:key => 'a-stupid-cookie-name',
|
16
|
+
:path => '/',
|
17
|
+
:expire_after => 2592000,
|
18
|
+
:secret => 'change_me'
|
19
|
+
|
20
|
+
in your config.ru or your application
|
21
|
+
|
22
|
+
use SoldierOfCode::DejaVu::Middleware, {:cookie_name=>"a-stupid-cookie-name",:enable_record=>true}
|
data/Rakefile
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'rake/testtask'
|
2
|
+
|
3
|
+
begin
|
4
|
+
require 'jeweler'
|
5
|
+
Jeweler::Tasks.new do |s|
|
6
|
+
s.name = "deja-vu"
|
7
|
+
s.description = s.summary = "A rack based session record / playback middleware for problemsolving web applications"
|
8
|
+
s.email = "kuccello@gmail.com"
|
9
|
+
s.homepage = "http://github.com/kuccello/deja-vu"
|
10
|
+
s.authors = ['Kristan "Krispy" Uccello']
|
11
|
+
s.files = FileList["[A-Z]*", "{lib,test,example,example-playback}/**/*"]
|
12
|
+
s.version = "0.3"
|
13
|
+
end
|
14
|
+
Jeweler::GemcutterTasks.new
|
15
|
+
rescue LoadError
|
16
|
+
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
17
|
+
end
|
18
|
+
|
19
|
+
Rake::TestTask.new do |t|
|
20
|
+
t.libs << "test"
|
21
|
+
t.test_files = FileList['test/*-test.rb']
|
22
|
+
t.verbose = true
|
23
|
+
end
|
24
|
+
|
25
|
+
require 'rake/rdoctask'
|
26
|
+
desc "Generate documentation"
|
27
|
+
Rake::RDocTask.new do |rd|
|
28
|
+
rd.main = "README.rdoc"
|
29
|
+
rd.rdoc_files.include("README.rdoc", "lib/**/*.rb")
|
30
|
+
rd.rdoc_dir = 'rdoc'
|
31
|
+
end
|
@@ -0,0 +1,6 @@
|
|
1
|
+
You need to first record using the example web application <dir-root>/example
|
2
|
+
|
3
|
+
Simply start up the web application and play arround with entering various URIs and it will create a repo directory.
|
4
|
+
Copy the "repo" directory into this directory and take note of a recording "pid" repo/DejaVuNS/Recording/<the file name is the pid>
|
5
|
+
|
6
|
+
Adjust the playback.rb with the pid.
|
@@ -0,0 +1 @@
|
|
1
|
+
<dejavu:deja-vu pid="recordings" xmlns:dejavu="http://soldierofcode.com/deja-vu"><dejavu:recording pid="bah7aa== --ab7689c618445bb17b626741588b50c0500c8f79"/></dejavu:deja-vu>
|
@@ -0,0 +1 @@
|
|
1
|
+
<dejavu:recording pid="bah7aa== --ab7689c618445bb17b626741588b50c0500c8f79" stamp="1260219390" agent="Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en; rv:1.9.0.16) Gecko/2009120123 Camino/2.0.1 (like Firefox/3.0.16)" ip="127.0.0.1" xmlns:dejavu="http://soldierofcode.com/deja-vu"><dejavu:record id="1260219390" stamp="1260219390" status="200" httpmethod="GET" url="http://localhost:9999/favicon.ico" request-time="0.00220799446105957"><dejavu:header name="Content-Type" value="text/html"/><dejavu:header name="Content-Length" value="5"/><dejavu:body><![CDATA[["Hello"]]]></dejavu:body></dejavu:record><dejavu:record id="1260219395" stamp="1260219395" status="200" httpmethod="GET" url="http://localhost:9999/one" request-time="0.00183606147766113"><dejavu:header name="Content-Type" value="text/html"/><dejavu:header name="Content-Length" value="5"/><dejavu:body><![CDATA[["Hello"]]]></dejavu:body></dejavu:record><dejavu:record id="1260219397" stamp="1260219397" status="200" httpmethod="GET" url="http://localhost:9999/one/two" request-time="0.000412940979003906"><dejavu:header name="Content-Type" value="text/html"/><dejavu:header name="Content-Length" value="5"/><dejavu:body><![CDATA[["Hello"]]]></dejavu:body></dejavu:record><dejavu:record id="1260219400" stamp="1260219400" status="200" httpmethod="GET" url="http://localhost:9999/one/two/three" request-time="0.000966072082519531"><dejavu:header name="Content-Type" value="text/html"/><dejavu:header name="Content-Length" value="5"/><dejavu:body><![CDATA[["Hello"]]]></dejavu:body></dejavu:record><dejavu:record id="1260219403" stamp="1260219403" status="200" httpmethod="GET" url="http://localhost:9999/one/two/three/four" request-time="0.00429487228393555"><dejavu:header name="Content-Type" value="text/html"/><dejavu:header name="Content-Length" value="5"/><dejavu:body><![CDATA[["Hello"]]]></dejavu:body></dejavu:record><dejavu:record id="1260219408" stamp="1260219408" status="200" httpmethod="GET" url="http://localhost:9999/one/two/three/four?five=true" request-time="0.0016019344329834"><dejavu:header name="Content-Type" value="text/html"/><dejavu:header name="Content-Length" value="5"/><dejavu:body><![CDATA[["Hello"]]]></dejavu:body><dejavu:param name="five" value="true"/></dejavu:record><dejavu:record id="1260219416" stamp="1260219416" status="200" httpmethod="GET" url="http://localhost:9999/one/two/three/four?five=true&six=seven" request-time="0.00183486938476562"><dejavu:header name="Content-Type" value="text/html"/><dejavu:header name="Content-Length" value="5"/><dejavu:body><![CDATA[["Hello"]]]></dejavu:body><dejavu:param name="five" value="true"/><dejavu:param name="six" value="seven"/></dejavu:record><dejavu:record id="1260219422" stamp="1260219422" status="200" httpmethod="GET" url="http://localhost:9999/one/two/three/four?five=true&six=seven&eight=9" request-time="0.00100898742675781"><dejavu:header name="Content-Type" value="text/html"/><dejavu:header name="Content-Length" value="5"/><dejavu:body><![CDATA[["Hello"]]]></dejavu:body><dejavu:param name="five" value="true"/><dejavu:param name="six" value="seven"/><dejavu:param name="eight" value="9"/></dejavu:record></dejavu:recording>
|
data/example/Makefile
ADDED
data/example/config.ru
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
REQUEST [1259876656] START
|
2
|
+
METHOD: GET
|
3
|
+
URL: http://localhost:9999//
|
4
|
+
=====[ENV]=====
|
5
|
+
SERVER_SOFTWARE: thin 1.2.5 codename This Is Not A Web Server --> String
|
6
|
+
SERVER_NAME: localhost --> String
|
7
|
+
rack.input: #<StringIO:0x00000101339f30> --> StringIO
|
8
|
+
rack.version: [1, 0] --> Array
|
9
|
+
rack.errors: #<IO:0x00000100888670> --> IO
|
10
|
+
rack.multithread: true --> TrueClass
|
11
|
+
rack.multiprocess: false --> FalseClass
|
12
|
+
rack.run_once: false --> FalseClass
|
13
|
+
REQUEST_METHOD: GET --> String
|
14
|
+
REQUEST_PATH: / --> String
|
15
|
+
PATH_INFO: / --> String
|
16
|
+
REQUEST_URI: / --> String
|
17
|
+
HTTP_VERSION: HTTP/1.1 --> String
|
18
|
+
HTTP_HOST: localhost:9999 --> String
|
19
|
+
HTTP_USER_AGENT: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 --> String
|
20
|
+
HTTP_ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 --> String
|
21
|
+
HTTP_ACCEPT_LANGUAGE: en-us,en;q=0.5 --> String
|
22
|
+
HTTP_ACCEPT_ENCODING: gzip,deflate --> String
|
23
|
+
HTTP_ACCEPT_CHARSET: ISO-8859-1,utf-8;q=0.7,*;q=0.7 --> String
|
24
|
+
HTTP_KEEP_ALIVE: 300 --> String
|
25
|
+
HTTP_CONNECTION: keep-alive --> String
|
26
|
+
HTTP_COOKIE: sifrFetch=true --> String
|
27
|
+
GATEWAY_INTERFACE: CGI/1.2 --> String
|
28
|
+
SERVER_PORT: 9999 --> String
|
29
|
+
QUERY_STRING: --> String
|
30
|
+
SERVER_PROTOCOL: HTTP/1.1 --> String
|
31
|
+
rack.url_scheme: http --> String
|
32
|
+
SCRIPT_NAME: --> String
|
33
|
+
REMOTE_ADDR: 127.0.0.1 --> String
|
34
|
+
async.callback: #<Method: Thin::Connection#post_process> --> Method
|
35
|
+
async.close: #<EventMachine::DefaultDeferrable:0x00000101329648> --> EventMachine::DefaultDeferrable
|
36
|
+
rack.request.cookie_string: sifrFetch=true --> String
|
37
|
+
rack.request.cookie_hash: {"sifrFetch"=>"true"} --> Hash
|
38
|
+
rack.session: {} --> Hash
|
39
|
+
rack.session.options: {:domain=>nil, :path=>"/", :expire_after=>2592000, :key=>"a-stupid-cookie-name", :secret=>"change_me"} --> Hash
|
40
|
+
rack.request.query_string: --> String
|
41
|
+
rack.request.query_hash: {} --> Hash
|
42
|
+
rack.request.form_input: #<StringIO:0x00000101339f30> --> StringIO
|
43
|
+
rack.request.form_hash: {} --> Hash
|
44
|
+
rack.request.form_vars: --> String
|
45
|
+
|
46
|
+
|
47
|
+
===============
|
48
|
+
STATUS: 200
|
49
|
+
HEADERS: {"Content-Type"=>"text/html", "Content-Length"=>"5"}
|
50
|
+
BODY: ["Hello"]
|
51
|
+
=====[SESSION]=====
|
52
|
+
===================
|
53
|
+
REQUEST [1259876656] END
|
@@ -0,0 +1,598 @@
|
|
1
|
+
REQUEST [1259876604] START
|
2
|
+
METHOD: GET
|
3
|
+
URL: http://localhost:9999//
|
4
|
+
=====[ENV]=====
|
5
|
+
SERVER_SOFTWARE: thin 1.2.5 codename This Is Not A Web Server --> String
|
6
|
+
SERVER_NAME: localhost --> String
|
7
|
+
rack.input: #<StringIO:0x00000101074568> --> StringIO
|
8
|
+
rack.version: [1, 0] --> Array
|
9
|
+
rack.errors: #<IO:0x00000100888670> --> IO
|
10
|
+
rack.multithread: true --> TrueClass
|
11
|
+
rack.multiprocess: false --> FalseClass
|
12
|
+
rack.run_once: false --> FalseClass
|
13
|
+
REQUEST_METHOD: GET --> String
|
14
|
+
REQUEST_PATH: / --> String
|
15
|
+
PATH_INFO: / --> String
|
16
|
+
REQUEST_URI: / --> String
|
17
|
+
HTTP_VERSION: HTTP/1.1 --> String
|
18
|
+
HTTP_HOST: localhost:9999 --> String
|
19
|
+
HTTP_USER_AGENT: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en; rv:1.9.0.15) Gecko/2009102617 Camino/2.0 (like Firefox/3.0.15) --> String
|
20
|
+
HTTP_ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 --> String
|
21
|
+
HTTP_ACCEPT_LANGUAGE: en-US,en;q=0.9,ja;q=0.8,fr;q=0.7,de;q=0.6,es;q=0.5,it;q=0.4,pt;q=0.3,pt-pt;q=0.2,nl;q=0.1 --> String
|
22
|
+
HTTP_ACCEPT_ENCODING: gzip,deflate --> String
|
23
|
+
HTTP_ACCEPT_CHARSET: ISO-8859-1,utf-8;q=0.7,*;q=0.7 --> String
|
24
|
+
HTTP_KEEP_ALIVE: 300 --> String
|
25
|
+
HTTP_CONNECTION: keep-alive --> String
|
26
|
+
HTTP_COOKIE: a-stupid-cookie-name=BAh7AA%3D%3D%0A--ab7689c618445bb17b626741588b50c0500c8f79 --> String
|
27
|
+
HTTP_CACHE_CONTROL: max-age=0 --> String
|
28
|
+
GATEWAY_INTERFACE: CGI/1.2 --> String
|
29
|
+
SERVER_PORT: 9999 --> String
|
30
|
+
QUERY_STRING: --> String
|
31
|
+
SERVER_PROTOCOL: HTTP/1.1 --> String
|
32
|
+
rack.url_scheme: http --> String
|
33
|
+
SCRIPT_NAME: --> String
|
34
|
+
REMOTE_ADDR: 127.0.0.1 --> String
|
35
|
+
async.callback: #<Method: Thin::Connection#post_process> --> Method
|
36
|
+
async.close: #<EventMachine::DefaultDeferrable:0x000001017697b8> --> EventMachine::DefaultDeferrable
|
37
|
+
rack.request.cookie_string: a-stupid-cookie-name=BAh7AA%3D%3D%0A--ab7689c618445bb17b626741588b50c0500c8f79 --> String
|
38
|
+
rack.request.cookie_hash: {"a-stupid-cookie-name"=>"BAh7AA==\n--ab7689c618445bb17b626741588b50c0500c8f79"} --> Hash
|
39
|
+
rack.session: {} --> Hash
|
40
|
+
rack.session.options: {:domain=>nil, :path=>"/", :expire_after=>2592000, :key=>"a-stupid-cookie-name", :secret=>"change_me"} --> Hash
|
41
|
+
rack.request.query_string: --> String
|
42
|
+
rack.request.query_hash: {} --> Hash
|
43
|
+
rack.request.form_input: #<StringIO:0x00000101074568> --> StringIO
|
44
|
+
rack.request.form_hash: {} --> Hash
|
45
|
+
rack.request.form_vars: --> String
|
46
|
+
|
47
|
+
|
48
|
+
===============
|
49
|
+
STATUS: 200
|
50
|
+
HEADERS: {"Content-Type"=>"text/html", "Content-Length"=>"5"}
|
51
|
+
BODY: ["Hello"]
|
52
|
+
=====[SESSION]=====
|
53
|
+
===================
|
54
|
+
REQUEST [1259876604] END
|
55
|
+
REQUEST [1259876637] START
|
56
|
+
METHOD: GET
|
57
|
+
URL: http://localhost:9999//
|
58
|
+
=====[ENV]=====
|
59
|
+
SERVER_SOFTWARE: thin 1.2.5 codename This Is Not A Web Server --> String
|
60
|
+
SERVER_NAME: localhost --> String
|
61
|
+
rack.input: #<StringIO:0x000001016a1d50> --> StringIO
|
62
|
+
rack.version: [1, 0] --> Array
|
63
|
+
rack.errors: #<IO:0x00000100888670> --> IO
|
64
|
+
rack.multithread: true --> TrueClass
|
65
|
+
rack.multiprocess: false --> FalseClass
|
66
|
+
rack.run_once: false --> FalseClass
|
67
|
+
REQUEST_METHOD: GET --> String
|
68
|
+
REQUEST_PATH: / --> String
|
69
|
+
PATH_INFO: / --> String
|
70
|
+
REQUEST_URI: / --> String
|
71
|
+
HTTP_VERSION: HTTP/1.1 --> String
|
72
|
+
HTTP_HOST: localhost:9999 --> String
|
73
|
+
HTTP_USER_AGENT: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en; rv:1.9.0.15) Gecko/2009102617 Camino/2.0 (like Firefox/3.0.15) --> String
|
74
|
+
HTTP_ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 --> String
|
75
|
+
HTTP_ACCEPT_LANGUAGE: en-US,en;q=0.9,ja;q=0.8,fr;q=0.7,de;q=0.6,es;q=0.5,it;q=0.4,pt;q=0.3,pt-pt;q=0.2,nl;q=0.1 --> String
|
76
|
+
HTTP_ACCEPT_ENCODING: gzip,deflate --> String
|
77
|
+
HTTP_ACCEPT_CHARSET: ISO-8859-1,utf-8;q=0.7,*;q=0.7 --> String
|
78
|
+
HTTP_KEEP_ALIVE: 300 --> String
|
79
|
+
HTTP_CONNECTION: keep-alive --> String
|
80
|
+
HTTP_COOKIE: a-stupid-cookie-name=BAh7AA%3D%3D%0A--ab7689c618445bb17b626741588b50c0500c8f79 --> String
|
81
|
+
HTTP_CACHE_CONTROL: max-age=0 --> String
|
82
|
+
GATEWAY_INTERFACE: CGI/1.2 --> String
|
83
|
+
SERVER_PORT: 9999 --> String
|
84
|
+
QUERY_STRING: --> String
|
85
|
+
SERVER_PROTOCOL: HTTP/1.1 --> String
|
86
|
+
rack.url_scheme: http --> String
|
87
|
+
SCRIPT_NAME: --> String
|
88
|
+
REMOTE_ADDR: 127.0.0.1 --> String
|
89
|
+
async.callback: #<Method: Thin::Connection#post_process> --> Method
|
90
|
+
async.close: #<EventMachine::DefaultDeferrable:0x000001016986d0> --> EventMachine::DefaultDeferrable
|
91
|
+
rack.request.cookie_string: a-stupid-cookie-name=BAh7AA%3D%3D%0A--ab7689c618445bb17b626741588b50c0500c8f79 --> String
|
92
|
+
rack.request.cookie_hash: {"a-stupid-cookie-name"=>"BAh7AA==\n--ab7689c618445bb17b626741588b50c0500c8f79"} --> Hash
|
93
|
+
rack.session: {} --> Hash
|
94
|
+
rack.session.options: {:domain=>nil, :path=>"/", :expire_after=>2592000, :key=>"a-stupid-cookie-name", :secret=>"change_me"} --> Hash
|
95
|
+
rack.request.query_string: --> String
|
96
|
+
rack.request.query_hash: {} --> Hash
|
97
|
+
rack.request.form_input: #<StringIO:0x000001016a1d50> --> StringIO
|
98
|
+
rack.request.form_hash: {} --> Hash
|
99
|
+
rack.request.form_vars: --> String
|
100
|
+
|
101
|
+
|
102
|
+
===============
|
103
|
+
STATUS: 200
|
104
|
+
HEADERS: {"Content-Type"=>"text/html", "Content-Length"=>"5"}
|
105
|
+
BODY: ["Hello"]
|
106
|
+
=====[SESSION]=====
|
107
|
+
===================
|
108
|
+
REQUEST [1259876637] END
|
109
|
+
REQUEST [1259876638] START
|
110
|
+
METHOD: GET
|
111
|
+
URL: http://localhost:9999//
|
112
|
+
=====[ENV]=====
|
113
|
+
SERVER_SOFTWARE: thin 1.2.5 codename This Is Not A Web Server --> String
|
114
|
+
SERVER_NAME: localhost --> String
|
115
|
+
rack.input: #<StringIO:0x0000010166ad10> --> StringIO
|
116
|
+
rack.version: [1, 0] --> Array
|
117
|
+
rack.errors: #<IO:0x00000100888670> --> IO
|
118
|
+
rack.multithread: true --> TrueClass
|
119
|
+
rack.multiprocess: false --> FalseClass
|
120
|
+
rack.run_once: false --> FalseClass
|
121
|
+
REQUEST_METHOD: GET --> String
|
122
|
+
REQUEST_PATH: / --> String
|
123
|
+
PATH_INFO: / --> String
|
124
|
+
REQUEST_URI: / --> String
|
125
|
+
HTTP_VERSION: HTTP/1.1 --> String
|
126
|
+
HTTP_HOST: localhost:9999 --> String
|
127
|
+
HTTP_USER_AGENT: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en; rv:1.9.0.15) Gecko/2009102617 Camino/2.0 (like Firefox/3.0.15) --> String
|
128
|
+
HTTP_ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 --> String
|
129
|
+
HTTP_ACCEPT_LANGUAGE: en-US,en;q=0.9,ja;q=0.8,fr;q=0.7,de;q=0.6,es;q=0.5,it;q=0.4,pt;q=0.3,pt-pt;q=0.2,nl;q=0.1 --> String
|
130
|
+
HTTP_ACCEPT_ENCODING: gzip,deflate --> String
|
131
|
+
HTTP_ACCEPT_CHARSET: ISO-8859-1,utf-8;q=0.7,*;q=0.7 --> String
|
132
|
+
HTTP_KEEP_ALIVE: 300 --> String
|
133
|
+
HTTP_CONNECTION: keep-alive --> String
|
134
|
+
HTTP_COOKIE: a-stupid-cookie-name=BAh7AA%3D%3D%0A--ab7689c618445bb17b626741588b50c0500c8f79 --> String
|
135
|
+
HTTP_CACHE_CONTROL: max-age=0 --> String
|
136
|
+
GATEWAY_INTERFACE: CGI/1.2 --> String
|
137
|
+
SERVER_PORT: 9999 --> String
|
138
|
+
QUERY_STRING: --> String
|
139
|
+
SERVER_PROTOCOL: HTTP/1.1 --> String
|
140
|
+
rack.url_scheme: http --> String
|
141
|
+
SCRIPT_NAME: --> String
|
142
|
+
REMOTE_ADDR: 127.0.0.1 --> String
|
143
|
+
async.callback: #<Method: Thin::Connection#post_process> --> Method
|
144
|
+
async.close: #<EventMachine::DefaultDeferrable:0x00000101664f00> --> EventMachine::DefaultDeferrable
|
145
|
+
rack.request.cookie_string: a-stupid-cookie-name=BAh7AA%3D%3D%0A--ab7689c618445bb17b626741588b50c0500c8f79 --> String
|
146
|
+
rack.request.cookie_hash: {"a-stupid-cookie-name"=>"BAh7AA==\n--ab7689c618445bb17b626741588b50c0500c8f79"} --> Hash
|
147
|
+
rack.session: {} --> Hash
|
148
|
+
rack.session.options: {:domain=>nil, :path=>"/", :expire_after=>2592000, :key=>"a-stupid-cookie-name", :secret=>"change_me"} --> Hash
|
149
|
+
rack.request.query_string: --> String
|
150
|
+
rack.request.query_hash: {} --> Hash
|
151
|
+
rack.request.form_input: #<StringIO:0x0000010166ad10> --> StringIO
|
152
|
+
rack.request.form_hash: {} --> Hash
|
153
|
+
rack.request.form_vars: --> String
|
154
|
+
|
155
|
+
|
156
|
+
===============
|
157
|
+
STATUS: 200
|
158
|
+
HEADERS: {"Content-Type"=>"text/html", "Content-Length"=>"5"}
|
159
|
+
BODY: ["Hello"]
|
160
|
+
=====[SESSION]=====
|
161
|
+
===================
|
162
|
+
REQUEST [1259876638] END
|
163
|
+
REQUEST [1259876638] START
|
164
|
+
METHOD: GET
|
165
|
+
URL: http://localhost:9999//
|
166
|
+
=====[ENV]=====
|
167
|
+
SERVER_SOFTWARE: thin 1.2.5 codename This Is Not A Web Server --> String
|
168
|
+
SERVER_NAME: localhost --> String
|
169
|
+
rack.input: #<StringIO:0x0000010161bc08> --> StringIO
|
170
|
+
rack.version: [1, 0] --> Array
|
171
|
+
rack.errors: #<IO:0x00000100888670> --> IO
|
172
|
+
rack.multithread: true --> TrueClass
|
173
|
+
rack.multiprocess: false --> FalseClass
|
174
|
+
rack.run_once: false --> FalseClass
|
175
|
+
REQUEST_METHOD: GET --> String
|
176
|
+
REQUEST_PATH: / --> String
|
177
|
+
PATH_INFO: / --> String
|
178
|
+
REQUEST_URI: / --> String
|
179
|
+
HTTP_VERSION: HTTP/1.1 --> String
|
180
|
+
HTTP_HOST: localhost:9999 --> String
|
181
|
+
HTTP_USER_AGENT: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en; rv:1.9.0.15) Gecko/2009102617 Camino/2.0 (like Firefox/3.0.15) --> String
|
182
|
+
HTTP_ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 --> String
|
183
|
+
HTTP_ACCEPT_LANGUAGE: en-US,en;q=0.9,ja;q=0.8,fr;q=0.7,de;q=0.6,es;q=0.5,it;q=0.4,pt;q=0.3,pt-pt;q=0.2,nl;q=0.1 --> String
|
184
|
+
HTTP_ACCEPT_ENCODING: gzip,deflate --> String
|
185
|
+
HTTP_ACCEPT_CHARSET: ISO-8859-1,utf-8;q=0.7,*;q=0.7 --> String
|
186
|
+
HTTP_KEEP_ALIVE: 300 --> String
|
187
|
+
HTTP_CONNECTION: keep-alive --> String
|
188
|
+
HTTP_COOKIE: a-stupid-cookie-name=BAh7AA%3D%3D%0A--ab7689c618445bb17b626741588b50c0500c8f79 --> String
|
189
|
+
HTTP_CACHE_CONTROL: max-age=0 --> String
|
190
|
+
GATEWAY_INTERFACE: CGI/1.2 --> String
|
191
|
+
SERVER_PORT: 9999 --> String
|
192
|
+
QUERY_STRING: --> String
|
193
|
+
SERVER_PROTOCOL: HTTP/1.1 --> String
|
194
|
+
rack.url_scheme: http --> String
|
195
|
+
SCRIPT_NAME: --> String
|
196
|
+
REMOTE_ADDR: 127.0.0.1 --> String
|
197
|
+
async.callback: #<Method: Thin::Connection#post_process> --> Method
|
198
|
+
async.close: #<EventMachine::DefaultDeferrable:0x00000101619eb8> --> EventMachine::DefaultDeferrable
|
199
|
+
rack.request.cookie_string: a-stupid-cookie-name=BAh7AA%3D%3D%0A--ab7689c618445bb17b626741588b50c0500c8f79 --> String
|
200
|
+
rack.request.cookie_hash: {"a-stupid-cookie-name"=>"BAh7AA==\n--ab7689c618445bb17b626741588b50c0500c8f79"} --> Hash
|
201
|
+
rack.session: {} --> Hash
|
202
|
+
rack.session.options: {:domain=>nil, :path=>"/", :expire_after=>2592000, :key=>"a-stupid-cookie-name", :secret=>"change_me"} --> Hash
|
203
|
+
rack.request.query_string: --> String
|
204
|
+
rack.request.query_hash: {} --> Hash
|
205
|
+
rack.request.form_input: #<StringIO:0x0000010161bc08> --> StringIO
|
206
|
+
rack.request.form_hash: {} --> Hash
|
207
|
+
rack.request.form_vars: --> String
|
208
|
+
|
209
|
+
|
210
|
+
===============
|
211
|
+
STATUS: 200
|
212
|
+
HEADERS: {"Content-Type"=>"text/html", "Content-Length"=>"5"}
|
213
|
+
BODY: ["Hello"]
|
214
|
+
=====[SESSION]=====
|
215
|
+
===================
|
216
|
+
REQUEST [1259876638] END
|
217
|
+
REQUEST [1259876638] START
|
218
|
+
METHOD: GET
|
219
|
+
URL: http://localhost:9999//
|
220
|
+
=====[ENV]=====
|
221
|
+
SERVER_SOFTWARE: thin 1.2.5 codename This Is Not A Web Server --> String
|
222
|
+
SERVER_NAME: localhost --> String
|
223
|
+
rack.input: #<StringIO:0x000001015acdc0> --> StringIO
|
224
|
+
rack.version: [1, 0] --> Array
|
225
|
+
rack.errors: #<IO:0x00000100888670> --> IO
|
226
|
+
rack.multithread: true --> TrueClass
|
227
|
+
rack.multiprocess: false --> FalseClass
|
228
|
+
rack.run_once: false --> FalseClass
|
229
|
+
REQUEST_METHOD: GET --> String
|
230
|
+
REQUEST_PATH: / --> String
|
231
|
+
PATH_INFO: / --> String
|
232
|
+
REQUEST_URI: / --> String
|
233
|
+
HTTP_VERSION: HTTP/1.1 --> String
|
234
|
+
HTTP_HOST: localhost:9999 --> String
|
235
|
+
HTTP_USER_AGENT: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en; rv:1.9.0.15) Gecko/2009102617 Camino/2.0 (like Firefox/3.0.15) --> String
|
236
|
+
HTTP_ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 --> String
|
237
|
+
HTTP_ACCEPT_LANGUAGE: en-US,en;q=0.9,ja;q=0.8,fr;q=0.7,de;q=0.6,es;q=0.5,it;q=0.4,pt;q=0.3,pt-pt;q=0.2,nl;q=0.1 --> String
|
238
|
+
HTTP_ACCEPT_ENCODING: gzip,deflate --> String
|
239
|
+
HTTP_ACCEPT_CHARSET: ISO-8859-1,utf-8;q=0.7,*;q=0.7 --> String
|
240
|
+
HTTP_KEEP_ALIVE: 300 --> String
|
241
|
+
HTTP_CONNECTION: keep-alive --> String
|
242
|
+
HTTP_COOKIE: a-stupid-cookie-name=BAh7AA%3D%3D%0A--ab7689c618445bb17b626741588b50c0500c8f79 --> String
|
243
|
+
HTTP_CACHE_CONTROL: max-age=0 --> String
|
244
|
+
GATEWAY_INTERFACE: CGI/1.2 --> String
|
245
|
+
SERVER_PORT: 9999 --> String
|
246
|
+
QUERY_STRING: --> String
|
247
|
+
SERVER_PROTOCOL: HTTP/1.1 --> String
|
248
|
+
rack.url_scheme: http --> String
|
249
|
+
SCRIPT_NAME: --> String
|
250
|
+
REMOTE_ADDR: 127.0.0.1 --> String
|
251
|
+
async.callback: #<Method: Thin::Connection#post_process> --> Method
|
252
|
+
async.close: #<EventMachine::DefaultDeferrable:0x000001015aa9e0> --> EventMachine::DefaultDeferrable
|
253
|
+
rack.request.cookie_string: a-stupid-cookie-name=BAh7AA%3D%3D%0A--ab7689c618445bb17b626741588b50c0500c8f79 --> String
|
254
|
+
rack.request.cookie_hash: {"a-stupid-cookie-name"=>"BAh7AA==\n--ab7689c618445bb17b626741588b50c0500c8f79"} --> Hash
|
255
|
+
rack.session: {} --> Hash
|
256
|
+
rack.session.options: {:domain=>nil, :path=>"/", :expire_after=>2592000, :key=>"a-stupid-cookie-name", :secret=>"change_me"} --> Hash
|
257
|
+
rack.request.query_string: --> String
|
258
|
+
rack.request.query_hash: {} --> Hash
|
259
|
+
rack.request.form_input: #<StringIO:0x000001015acdc0> --> StringIO
|
260
|
+
rack.request.form_hash: {} --> Hash
|
261
|
+
rack.request.form_vars: --> String
|
262
|
+
|
263
|
+
|
264
|
+
===============
|
265
|
+
STATUS: 200
|
266
|
+
HEADERS: {"Content-Type"=>"text/html", "Content-Length"=>"5"}
|
267
|
+
BODY: ["Hello"]
|
268
|
+
=====[SESSION]=====
|
269
|
+
===================
|
270
|
+
REQUEST [1259876638] END
|
271
|
+
REQUEST [1259876639] START
|
272
|
+
METHOD: GET
|
273
|
+
URL: http://localhost:9999//
|
274
|
+
=====[ENV]=====
|
275
|
+
SERVER_SOFTWARE: thin 1.2.5 codename This Is Not A Web Server --> String
|
276
|
+
SERVER_NAME: localhost --> String
|
277
|
+
rack.input: #<StringIO:0x00000101560258> --> StringIO
|
278
|
+
rack.version: [1, 0] --> Array
|
279
|
+
rack.errors: #<IO:0x00000100888670> --> IO
|
280
|
+
rack.multithread: true --> TrueClass
|
281
|
+
rack.multiprocess: false --> FalseClass
|
282
|
+
rack.run_once: false --> FalseClass
|
283
|
+
REQUEST_METHOD: GET --> String
|
284
|
+
REQUEST_PATH: / --> String
|
285
|
+
PATH_INFO: / --> String
|
286
|
+
REQUEST_URI: / --> String
|
287
|
+
HTTP_VERSION: HTTP/1.1 --> String
|
288
|
+
HTTP_HOST: localhost:9999 --> String
|
289
|
+
HTTP_USER_AGENT: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en; rv:1.9.0.15) Gecko/2009102617 Camino/2.0 (like Firefox/3.0.15) --> String
|
290
|
+
HTTP_ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 --> String
|
291
|
+
HTTP_ACCEPT_LANGUAGE: en-US,en;q=0.9,ja;q=0.8,fr;q=0.7,de;q=0.6,es;q=0.5,it;q=0.4,pt;q=0.3,pt-pt;q=0.2,nl;q=0.1 --> String
|
292
|
+
HTTP_ACCEPT_ENCODING: gzip,deflate --> String
|
293
|
+
HTTP_ACCEPT_CHARSET: ISO-8859-1,utf-8;q=0.7,*;q=0.7 --> String
|
294
|
+
HTTP_KEEP_ALIVE: 300 --> String
|
295
|
+
HTTP_CONNECTION: keep-alive --> String
|
296
|
+
HTTP_COOKIE: a-stupid-cookie-name=BAh7AA%3D%3D%0A--ab7689c618445bb17b626741588b50c0500c8f79 --> String
|
297
|
+
HTTP_CACHE_CONTROL: max-age=0 --> String
|
298
|
+
GATEWAY_INTERFACE: CGI/1.2 --> String
|
299
|
+
SERVER_PORT: 9999 --> String
|
300
|
+
QUERY_STRING: --> String
|
301
|
+
SERVER_PROTOCOL: HTTP/1.1 --> String
|
302
|
+
rack.url_scheme: http --> String
|
303
|
+
SCRIPT_NAME: --> String
|
304
|
+
REMOTE_ADDR: 127.0.0.1 --> String
|
305
|
+
async.callback: #<Method: Thin::Connection#post_process> --> Method
|
306
|
+
async.close: #<EventMachine::DefaultDeferrable:0x0000010155e348> --> EventMachine::DefaultDeferrable
|
307
|
+
rack.request.cookie_string: a-stupid-cookie-name=BAh7AA%3D%3D%0A--ab7689c618445bb17b626741588b50c0500c8f79 --> String
|
308
|
+
rack.request.cookie_hash: {"a-stupid-cookie-name"=>"BAh7AA==\n--ab7689c618445bb17b626741588b50c0500c8f79"} --> Hash
|
309
|
+
rack.session: {} --> Hash
|
310
|
+
rack.session.options: {:domain=>nil, :path=>"/", :expire_after=>2592000, :key=>"a-stupid-cookie-name", :secret=>"change_me"} --> Hash
|
311
|
+
rack.request.query_string: --> String
|
312
|
+
rack.request.query_hash: {} --> Hash
|
313
|
+
rack.request.form_input: #<StringIO:0x00000101560258> --> StringIO
|
314
|
+
rack.request.form_hash: {} --> Hash
|
315
|
+
rack.request.form_vars: --> String
|
316
|
+
|
317
|
+
|
318
|
+
===============
|
319
|
+
STATUS: 200
|
320
|
+
HEADERS: {"Content-Type"=>"text/html", "Content-Length"=>"5"}
|
321
|
+
BODY: ["Hello"]
|
322
|
+
=====[SESSION]=====
|
323
|
+
===================
|
324
|
+
REQUEST [1259876639] END
|
325
|
+
REQUEST [1259876639] START
|
326
|
+
METHOD: GET
|
327
|
+
URL: http://localhost:9999//
|
328
|
+
=====[ENV]=====
|
329
|
+
SERVER_SOFTWARE: thin 1.2.5 codename This Is Not A Web Server --> String
|
330
|
+
SERVER_NAME: localhost --> String
|
331
|
+
rack.input: #<StringIO:0x0000010151ff18> --> StringIO
|
332
|
+
rack.version: [1, 0] --> Array
|
333
|
+
rack.errors: #<IO:0x00000100888670> --> IO
|
334
|
+
rack.multithread: true --> TrueClass
|
335
|
+
rack.multiprocess: false --> FalseClass
|
336
|
+
rack.run_once: false --> FalseClass
|
337
|
+
REQUEST_METHOD: GET --> String
|
338
|
+
REQUEST_PATH: / --> String
|
339
|
+
PATH_INFO: / --> String
|
340
|
+
REQUEST_URI: / --> String
|
341
|
+
HTTP_VERSION: HTTP/1.1 --> String
|
342
|
+
HTTP_HOST: localhost:9999 --> String
|
343
|
+
HTTP_USER_AGENT: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en; rv:1.9.0.15) Gecko/2009102617 Camino/2.0 (like Firefox/3.0.15) --> String
|
344
|
+
HTTP_ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 --> String
|
345
|
+
HTTP_ACCEPT_LANGUAGE: en-US,en;q=0.9,ja;q=0.8,fr;q=0.7,de;q=0.6,es;q=0.5,it;q=0.4,pt;q=0.3,pt-pt;q=0.2,nl;q=0.1 --> String
|
346
|
+
HTTP_ACCEPT_ENCODING: gzip,deflate --> String
|
347
|
+
HTTP_ACCEPT_CHARSET: ISO-8859-1,utf-8;q=0.7,*;q=0.7 --> String
|
348
|
+
HTTP_KEEP_ALIVE: 300 --> String
|
349
|
+
HTTP_CONNECTION: keep-alive --> String
|
350
|
+
HTTP_COOKIE: a-stupid-cookie-name=BAh7AA%3D%3D%0A--ab7689c618445bb17b626741588b50c0500c8f79 --> String
|
351
|
+
HTTP_CACHE_CONTROL: max-age=0 --> String
|
352
|
+
GATEWAY_INTERFACE: CGI/1.2 --> String
|
353
|
+
SERVER_PORT: 9999 --> String
|
354
|
+
QUERY_STRING: --> String
|
355
|
+
SERVER_PROTOCOL: HTTP/1.1 --> String
|
356
|
+
rack.url_scheme: http --> String
|
357
|
+
SCRIPT_NAME: --> String
|
358
|
+
REMOTE_ADDR: 127.0.0.1 --> String
|
359
|
+
async.callback: #<Method: Thin::Connection#post_process> --> Method
|
360
|
+
async.close: #<EventMachine::DefaultDeferrable:0x0000010151a338> --> EventMachine::DefaultDeferrable
|
361
|
+
rack.request.cookie_string: a-stupid-cookie-name=BAh7AA%3D%3D%0A--ab7689c618445bb17b626741588b50c0500c8f79 --> String
|
362
|
+
rack.request.cookie_hash: {"a-stupid-cookie-name"=>"BAh7AA==\n--ab7689c618445bb17b626741588b50c0500c8f79"} --> Hash
|
363
|
+
rack.session: {} --> Hash
|
364
|
+
rack.session.options: {:domain=>nil, :path=>"/", :expire_after=>2592000, :key=>"a-stupid-cookie-name", :secret=>"change_me"} --> Hash
|
365
|
+
rack.request.query_string: --> String
|
366
|
+
rack.request.query_hash: {} --> Hash
|
367
|
+
rack.request.form_input: #<StringIO:0x0000010151ff18> --> StringIO
|
368
|
+
rack.request.form_hash: {} --> Hash
|
369
|
+
rack.request.form_vars: --> String
|
370
|
+
|
371
|
+
|
372
|
+
===============
|
373
|
+
STATUS: 200
|
374
|
+
HEADERS: {"Content-Type"=>"text/html", "Content-Length"=>"5"}
|
375
|
+
BODY: ["Hello"]
|
376
|
+
=====[SESSION]=====
|
377
|
+
===================
|
378
|
+
REQUEST [1259876639] END
|
379
|
+
REQUEST [1259876639] START
|
380
|
+
METHOD: GET
|
381
|
+
URL: http://localhost:9999//
|
382
|
+
=====[ENV]=====
|
383
|
+
SERVER_SOFTWARE: thin 1.2.5 codename This Is Not A Web Server --> String
|
384
|
+
SERVER_NAME: localhost --> String
|
385
|
+
rack.input: #<StringIO:0x000001014e1298> --> StringIO
|
386
|
+
rack.version: [1, 0] --> Array
|
387
|
+
rack.errors: #<IO:0x00000100888670> --> IO
|
388
|
+
rack.multithread: true --> TrueClass
|
389
|
+
rack.multiprocess: false --> FalseClass
|
390
|
+
rack.run_once: false --> FalseClass
|
391
|
+
REQUEST_METHOD: GET --> String
|
392
|
+
REQUEST_PATH: / --> String
|
393
|
+
PATH_INFO: / --> String
|
394
|
+
REQUEST_URI: / --> String
|
395
|
+
HTTP_VERSION: HTTP/1.1 --> String
|
396
|
+
HTTP_HOST: localhost:9999 --> String
|
397
|
+
HTTP_USER_AGENT: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en; rv:1.9.0.15) Gecko/2009102617 Camino/2.0 (like Firefox/3.0.15) --> String
|
398
|
+
HTTP_ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 --> String
|
399
|
+
HTTP_ACCEPT_LANGUAGE: en-US,en;q=0.9,ja;q=0.8,fr;q=0.7,de;q=0.6,es;q=0.5,it;q=0.4,pt;q=0.3,pt-pt;q=0.2,nl;q=0.1 --> String
|
400
|
+
HTTP_ACCEPT_ENCODING: gzip,deflate --> String
|
401
|
+
HTTP_ACCEPT_CHARSET: ISO-8859-1,utf-8;q=0.7,*;q=0.7 --> String
|
402
|
+
HTTP_KEEP_ALIVE: 300 --> String
|
403
|
+
HTTP_CONNECTION: keep-alive --> String
|
404
|
+
HTTP_COOKIE: a-stupid-cookie-name=BAh7AA%3D%3D%0A--ab7689c618445bb17b626741588b50c0500c8f79 --> String
|
405
|
+
HTTP_CACHE_CONTROL: max-age=0 --> String
|
406
|
+
GATEWAY_INTERFACE: CGI/1.2 --> String
|
407
|
+
SERVER_PORT: 9999 --> String
|
408
|
+
QUERY_STRING: --> String
|
409
|
+
SERVER_PROTOCOL: HTTP/1.1 --> String
|
410
|
+
rack.url_scheme: http --> String
|
411
|
+
SCRIPT_NAME: --> String
|
412
|
+
REMOTE_ADDR: 127.0.0.1 --> String
|
413
|
+
async.callback: #<Method: Thin::Connection#post_process> --> Method
|
414
|
+
async.close: #<EventMachine::DefaultDeferrable:0x000001014de898> --> EventMachine::DefaultDeferrable
|
415
|
+
rack.request.cookie_string: a-stupid-cookie-name=BAh7AA%3D%3D%0A--ab7689c618445bb17b626741588b50c0500c8f79 --> String
|
416
|
+
rack.request.cookie_hash: {"a-stupid-cookie-name"=>"BAh7AA==\n--ab7689c618445bb17b626741588b50c0500c8f79"} --> Hash
|
417
|
+
rack.session: {} --> Hash
|
418
|
+
rack.session.options: {:domain=>nil, :path=>"/", :expire_after=>2592000, :key=>"a-stupid-cookie-name", :secret=>"change_me"} --> Hash
|
419
|
+
rack.request.query_string: --> String
|
420
|
+
rack.request.query_hash: {} --> Hash
|
421
|
+
rack.request.form_input: #<StringIO:0x000001014e1298> --> StringIO
|
422
|
+
rack.request.form_hash: {} --> Hash
|
423
|
+
rack.request.form_vars: --> String
|
424
|
+
|
425
|
+
|
426
|
+
===============
|
427
|
+
STATUS: 200
|
428
|
+
HEADERS: {"Content-Type"=>"text/html", "Content-Length"=>"5"}
|
429
|
+
BODY: ["Hello"]
|
430
|
+
=====[SESSION]=====
|
431
|
+
===================
|
432
|
+
REQUEST [1259876639] END
|
433
|
+
REQUEST [1259876639] START
|
434
|
+
METHOD: GET
|
435
|
+
URL: http://localhost:9999//
|
436
|
+
=====[ENV]=====
|
437
|
+
SERVER_SOFTWARE: thin 1.2.5 codename This Is Not A Web Server --> String
|
438
|
+
SERVER_NAME: localhost --> String
|
439
|
+
rack.input: #<StringIO:0x0000010147bf68> --> StringIO
|
440
|
+
rack.version: [1, 0] --> Array
|
441
|
+
rack.errors: #<IO:0x00000100888670> --> IO
|
442
|
+
rack.multithread: true --> TrueClass
|
443
|
+
rack.multiprocess: false --> FalseClass
|
444
|
+
rack.run_once: false --> FalseClass
|
445
|
+
REQUEST_METHOD: GET --> String
|
446
|
+
REQUEST_PATH: / --> String
|
447
|
+
PATH_INFO: / --> String
|
448
|
+
REQUEST_URI: / --> String
|
449
|
+
HTTP_VERSION: HTTP/1.1 --> String
|
450
|
+
HTTP_HOST: localhost:9999 --> String
|
451
|
+
HTTP_USER_AGENT: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en; rv:1.9.0.15) Gecko/2009102617 Camino/2.0 (like Firefox/3.0.15) --> String
|
452
|
+
HTTP_ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 --> String
|
453
|
+
HTTP_ACCEPT_LANGUAGE: en-US,en;q=0.9,ja;q=0.8,fr;q=0.7,de;q=0.6,es;q=0.5,it;q=0.4,pt;q=0.3,pt-pt;q=0.2,nl;q=0.1 --> String
|
454
|
+
HTTP_ACCEPT_ENCODING: gzip,deflate --> String
|
455
|
+
HTTP_ACCEPT_CHARSET: ISO-8859-1,utf-8;q=0.7,*;q=0.7 --> String
|
456
|
+
HTTP_KEEP_ALIVE: 300 --> String
|
457
|
+
HTTP_CONNECTION: keep-alive --> String
|
458
|
+
HTTP_COOKIE: a-stupid-cookie-name=BAh7AA%3D%3D%0A--ab7689c618445bb17b626741588b50c0500c8f79 --> String
|
459
|
+
HTTP_CACHE_CONTROL: max-age=0 --> String
|
460
|
+
GATEWAY_INTERFACE: CGI/1.2 --> String
|
461
|
+
SERVER_PORT: 9999 --> String
|
462
|
+
QUERY_STRING: --> String
|
463
|
+
SERVER_PROTOCOL: HTTP/1.1 --> String
|
464
|
+
rack.url_scheme: http --> String
|
465
|
+
SCRIPT_NAME: --> String
|
466
|
+
REMOTE_ADDR: 127.0.0.1 --> String
|
467
|
+
async.callback: #<Method: Thin::Connection#post_process> --> Method
|
468
|
+
async.close: #<EventMachine::DefaultDeferrable:0x00000101470508> --> EventMachine::DefaultDeferrable
|
469
|
+
rack.request.cookie_string: a-stupid-cookie-name=BAh7AA%3D%3D%0A--ab7689c618445bb17b626741588b50c0500c8f79 --> String
|
470
|
+
rack.request.cookie_hash: {"a-stupid-cookie-name"=>"BAh7AA==\n--ab7689c618445bb17b626741588b50c0500c8f79"} --> Hash
|
471
|
+
rack.session: {} --> Hash
|
472
|
+
rack.session.options: {:domain=>nil, :path=>"/", :expire_after=>2592000, :key=>"a-stupid-cookie-name", :secret=>"change_me"} --> Hash
|
473
|
+
rack.request.query_string: --> String
|
474
|
+
rack.request.query_hash: {} --> Hash
|
475
|
+
rack.request.form_input: #<StringIO:0x0000010147bf68> --> StringIO
|
476
|
+
rack.request.form_hash: {} --> Hash
|
477
|
+
rack.request.form_vars: --> String
|
478
|
+
|
479
|
+
|
480
|
+
===============
|
481
|
+
STATUS: 200
|
482
|
+
HEADERS: {"Content-Type"=>"text/html", "Content-Length"=>"5"}
|
483
|
+
BODY: ["Hello"]
|
484
|
+
=====[SESSION]=====
|
485
|
+
===================
|
486
|
+
REQUEST [1259876639] END
|
487
|
+
REQUEST [1259876657] START
|
488
|
+
METHOD: GET
|
489
|
+
URL: http://localhost:9999//favicon.ico
|
490
|
+
=====[ENV]=====
|
491
|
+
SERVER_SOFTWARE: thin 1.2.5 codename This Is Not A Web Server --> String
|
492
|
+
SERVER_NAME: localhost --> String
|
493
|
+
rack.input: #<StringIO:0x000001012c4900> --> StringIO
|
494
|
+
rack.version: [1, 0] --> Array
|
495
|
+
rack.errors: #<IO:0x00000100888670> --> IO
|
496
|
+
rack.multithread: true --> TrueClass
|
497
|
+
rack.multiprocess: false --> FalseClass
|
498
|
+
rack.run_once: false --> FalseClass
|
499
|
+
REQUEST_METHOD: GET --> String
|
500
|
+
REQUEST_PATH: /favicon.ico --> String
|
501
|
+
PATH_INFO: /favicon.ico --> String
|
502
|
+
REQUEST_URI: /favicon.ico --> String
|
503
|
+
HTTP_VERSION: HTTP/1.1 --> String
|
504
|
+
HTTP_HOST: localhost:9999 --> String
|
505
|
+
HTTP_USER_AGENT: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 --> String
|
506
|
+
HTTP_ACCEPT: image/png,image/*;q=0.8,*/*;q=0.5 --> String
|
507
|
+
HTTP_ACCEPT_LANGUAGE: en-us,en;q=0.5 --> String
|
508
|
+
HTTP_ACCEPT_ENCODING: gzip,deflate --> String
|
509
|
+
HTTP_ACCEPT_CHARSET: ISO-8859-1,utf-8;q=0.7,*;q=0.7 --> String
|
510
|
+
HTTP_KEEP_ALIVE: 300 --> String
|
511
|
+
HTTP_CONNECTION: keep-alive --> String
|
512
|
+
HTTP_COOKIE: sifrFetch=true; a-stupid-cookie-name=BAh7AA%3D%3D%0A--ab7689c618445bb17b626741588b50c0500c8f79 --> String
|
513
|
+
GATEWAY_INTERFACE: CGI/1.2 --> String
|
514
|
+
SERVER_PORT: 9999 --> String
|
515
|
+
QUERY_STRING: --> String
|
516
|
+
SERVER_PROTOCOL: HTTP/1.1 --> String
|
517
|
+
rack.url_scheme: http --> String
|
518
|
+
SCRIPT_NAME: --> String
|
519
|
+
REMOTE_ADDR: 127.0.0.1 --> String
|
520
|
+
async.callback: #<Method: Thin::Connection#post_process> --> Method
|
521
|
+
async.close: #<EventMachine::DefaultDeferrable:0x000001012bf688> --> EventMachine::DefaultDeferrable
|
522
|
+
rack.request.cookie_string: sifrFetch=true; a-stupid-cookie-name=BAh7AA%3D%3D%0A--ab7689c618445bb17b626741588b50c0500c8f79 --> String
|
523
|
+
rack.request.cookie_hash: {"sifrFetch"=>"true", "a-stupid-cookie-name"=>"BAh7AA==\n--ab7689c618445bb17b626741588b50c0500c8f79"} --> Hash
|
524
|
+
rack.session: {} --> Hash
|
525
|
+
rack.session.options: {:domain=>nil, :path=>"/", :expire_after=>2592000, :key=>"a-stupid-cookie-name", :secret=>"change_me"} --> Hash
|
526
|
+
rack.request.query_string: --> String
|
527
|
+
rack.request.query_hash: {} --> Hash
|
528
|
+
rack.request.form_input: #<StringIO:0x000001012c4900> --> StringIO
|
529
|
+
rack.request.form_hash: {} --> Hash
|
530
|
+
rack.request.form_vars: --> String
|
531
|
+
sinatra.error: Sinatra::NotFound --> Sinatra::NotFound
|
532
|
+
|
533
|
+
|
534
|
+
none
|
535
|
+
favicon.ico
|
536
|
+
===============
|
537
|
+
STATUS: 404
|
538
|
+
HEADERS: {"Content-Type"=>"text/html", "Content-Length"=>"420"}
|
539
|
+
BODY: ["<!DOCTYPE html>\n<html>\n<head>\n <style type=\"text/css\">\n body { text-align:center;font-family:helvetica,arial;font-size:22px;\n color:#888;margin:20px}\n #c {margin:0 auto;width:500px;text-align:left}\n </style>\n</head>\n<body>\n <h2>Sinatra doesn't know this ditty.</h2>\n <img src='/__sinatra__/404.png'>\n <div id=\"c\">\n Try this:\n <pre>get '/favicon.ico' do\n \"Hello World\"\nend</pre>\n </div>\n</body>\n</html>\n"]
|
540
|
+
=====[SESSION]=====
|
541
|
+
===================
|
542
|
+
REQUEST [1259876657] END
|
543
|
+
REQUEST [1259876660] START
|
544
|
+
METHOD: GET
|
545
|
+
URL: http://localhost:9999//favicon.ico
|
546
|
+
=====[ENV]=====
|
547
|
+
SERVER_SOFTWARE: thin 1.2.5 codename This Is Not A Web Server --> String
|
548
|
+
SERVER_NAME: localhost --> String
|
549
|
+
rack.input: #<StringIO:0x00000101228e88> --> StringIO
|
550
|
+
rack.version: [1, 0] --> Array
|
551
|
+
rack.errors: #<IO:0x00000100888670> --> IO
|
552
|
+
rack.multithread: true --> TrueClass
|
553
|
+
rack.multiprocess: false --> FalseClass
|
554
|
+
rack.run_once: false --> FalseClass
|
555
|
+
REQUEST_METHOD: GET --> String
|
556
|
+
REQUEST_PATH: /favicon.ico --> String
|
557
|
+
PATH_INFO: /favicon.ico --> String
|
558
|
+
REQUEST_URI: /favicon.ico --> String
|
559
|
+
HTTP_VERSION: HTTP/1.1 --> String
|
560
|
+
HTTP_HOST: localhost:9999 --> String
|
561
|
+
HTTP_USER_AGENT: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 --> String
|
562
|
+
HTTP_ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 --> String
|
563
|
+
HTTP_ACCEPT_LANGUAGE: en-us,en;q=0.5 --> String
|
564
|
+
HTTP_ACCEPT_ENCODING: gzip,deflate --> String
|
565
|
+
HTTP_ACCEPT_CHARSET: ISO-8859-1,utf-8;q=0.7,*;q=0.7 --> String
|
566
|
+
HTTP_KEEP_ALIVE: 300 --> String
|
567
|
+
HTTP_CONNECTION: keep-alive --> String
|
568
|
+
HTTP_COOKIE: sifrFetch=true; a-stupid-cookie-name=BAh7AA%3D%3D%0A--ab7689c618445bb17b626741588b50c0500c8f79 --> String
|
569
|
+
GATEWAY_INTERFACE: CGI/1.2 --> String
|
570
|
+
SERVER_PORT: 9999 --> String
|
571
|
+
QUERY_STRING: --> String
|
572
|
+
SERVER_PROTOCOL: HTTP/1.1 --> String
|
573
|
+
rack.url_scheme: http --> String
|
574
|
+
SCRIPT_NAME: --> String
|
575
|
+
REMOTE_ADDR: 127.0.0.1 --> String
|
576
|
+
async.callback: #<Method: Thin::Connection#post_process> --> Method
|
577
|
+
async.close: #<EventMachine::DefaultDeferrable:0x00000101227330> --> EventMachine::DefaultDeferrable
|
578
|
+
rack.request.cookie_string: sifrFetch=true; a-stupid-cookie-name=BAh7AA%3D%3D%0A--ab7689c618445bb17b626741588b50c0500c8f79 --> String
|
579
|
+
rack.request.cookie_hash: {"sifrFetch"=>"true", "a-stupid-cookie-name"=>"BAh7AA==\n--ab7689c618445bb17b626741588b50c0500c8f79"} --> Hash
|
580
|
+
rack.session: {} --> Hash
|
581
|
+
rack.session.options: {:domain=>nil, :path=>"/", :expire_after=>2592000, :key=>"a-stupid-cookie-name", :secret=>"change_me"} --> Hash
|
582
|
+
rack.request.query_string: --> String
|
583
|
+
rack.request.query_hash: {} --> Hash
|
584
|
+
rack.request.form_input: #<StringIO:0x00000101228e88> --> StringIO
|
585
|
+
rack.request.form_hash: {} --> Hash
|
586
|
+
rack.request.form_vars: --> String
|
587
|
+
sinatra.error: Sinatra::NotFound --> Sinatra::NotFound
|
588
|
+
|
589
|
+
|
590
|
+
none
|
591
|
+
favicon.ico
|
592
|
+
===============
|
593
|
+
STATUS: 404
|
594
|
+
HEADERS: {"Content-Type"=>"text/html", "Content-Length"=>"420"}
|
595
|
+
BODY: ["<!DOCTYPE html>\n<html>\n<head>\n <style type=\"text/css\">\n body { text-align:center;font-family:helvetica,arial;font-size:22px;\n color:#888;margin:20px}\n #c {margin:0 auto;width:500px;text-align:left}\n </style>\n</head>\n<body>\n <h2>Sinatra doesn't know this ditty.</h2>\n <img src='/__sinatra__/404.png'>\n <div id=\"c\">\n Try this:\n <pre>get '/favicon.ico' do\n \"Hello World\"\nend</pre>\n </div>\n</body>\n</html>\n"]
|
596
|
+
=====[SESSION]=====
|
597
|
+
===================
|
598
|
+
REQUEST [1259876660] END
|