http_parser.rb 0.5.3-java → 0.6.0.beta.2-java
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitmodules +3 -3
- data/Gemfile +1 -1
- data/Gemfile.lock +14 -5
- data/README.md +50 -45
- data/bench/standalone.rb +23 -0
- data/bench/thin.rb +1 -0
- data/ext/ruby_http_parser/org/ruby_http_parser/RubyHttpParser.java +120 -85
- data/ext/ruby_http_parser/ruby_http_parser.c +10 -41
- data/ext/ruby_http_parser/vendor/http-parser-java/AUTHORS +32 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/LICENSE-MIT +5 -1
- data/ext/ruby_http_parser/vendor/http-parser-java/README.md +133 -1
- data/ext/ruby_http_parser/vendor/http-parser-java/TODO +6 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/http_parser.c +1202 -671
- data/ext/ruby_http_parser/vendor/http-parser-java/http_parser.gyp +79 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/http_parser.h +172 -51
- data/ext/ruby_http_parser/vendor/http-parser-java/src/Http-parser.java.iml +22 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/FieldData.java +41 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPMethod.java +8 -3
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/HTTPParserUrl.java +76 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/ParserSettings.java +35 -102
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/Util.java +6 -6
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/lolevel/HTTPParser.java +775 -682
- data/ext/ruby_http_parser/vendor/http-parser-java/src/impl/http_parser/lolevel/ParserSettings.java +8 -4
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Message.java +70 -20
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/ParseUrl.java +51 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Requests.java +1 -1
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Responses.java +1 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Test.java +2 -1
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/TestHeaderOverflowError.java +1 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/TestLoaderNG.java +6 -17
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/TestNoOverflowLongBody.java +1 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/UnitTest.java +1 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Upgrade.java +1 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Url.java +127 -0
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/Util.java +80 -9
- data/ext/ruby_http_parser/vendor/http-parser-java/src/test/http_parser/lolevel/WrongContentLength.java +2 -1
- data/ext/ruby_http_parser/vendor/http-parser-java/test.c +1637 -280
- data/ext/ruby_http_parser/vendor/http-parser-java/tests.dumped +230 -71
- data/ext/ruby_http_parser/vendor/http-parser/AUTHORS +32 -0
- data/ext/ruby_http_parser/vendor/http-parser/LICENSE-MIT +5 -1
- data/ext/ruby_http_parser/vendor/http-parser/README.md +9 -2
- data/ext/ruby_http_parser/vendor/http-parser/http_parser.c +1029 -615
- data/ext/ruby_http_parser/vendor/http-parser/http_parser.gyp +79 -0
- data/ext/ruby_http_parser/vendor/http-parser/http_parser.h +145 -16
- data/ext/ruby_http_parser/vendor/http-parser/test.c +1065 -141
- data/http_parser.rb.gemspec +3 -1
- data/spec/parser_spec.rb +41 -17
- data/spec/support/requests.json +236 -24
- data/spec/support/responses.json +182 -36
- data/tasks/compile.rake +2 -2
- data/tasks/fixtures.rake +7 -1
- metadata +213 -162
- data/ext/ruby_http_parser/vendor/http-parser-java/compile +0 -1
- data/ext/ruby_http_parser/vendor/http-parser-java/test_permutations +0 -1
- data/ext/ruby_http_parser/vendor/http-parser-java/test_unit +0 -1
- data/ext/ruby_http_parser/vendor/http-parser-java/test_utf8 +0 -1
@@ -13,7 +13,6 @@ header_0 :{ "User-Agent": "curl/7.18.0 (i486-pc-linux-gnu) libcurl/7.18.0 OpenSS
|
|
13
13
|
header_1 :{ "Host": "0.0.0.0=5000"}
|
14
14
|
header_2 :{ "Accept": "*/*"}
|
15
15
|
should_keep_alive :1
|
16
|
-
upgrade :0
|
17
16
|
http_major :1
|
18
17
|
http_minor :1
|
19
18
|
|
@@ -37,7 +36,6 @@ header_5 :{ "Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7"}
|
|
37
36
|
header_6 :{ "Keep-Alive": "300"}
|
38
37
|
header_7 :{ "Connection": "keep-alive"}
|
39
38
|
should_keep_alive :1
|
40
|
-
upgrade :0
|
41
39
|
http_major :1
|
42
40
|
http_minor :1
|
43
41
|
|
@@ -54,7 +52,6 @@ body :""
|
|
54
52
|
body_size :0
|
55
53
|
header_0 :{ "aaaaaaaaaaaaa": "++++++++++"}
|
56
54
|
should_keep_alive :1
|
57
|
-
upgrade :0
|
58
55
|
http_major :1
|
59
56
|
http_minor :1
|
60
57
|
|
@@ -70,7 +67,6 @@ query_string:page=1
|
|
70
67
|
body :""
|
71
68
|
body_size :0
|
72
69
|
should_keep_alive :1
|
73
|
-
upgrade :0
|
74
70
|
http_major :1
|
75
71
|
http_minor :1
|
76
72
|
|
@@ -86,7 +82,6 @@ query_string:
|
|
86
82
|
body :""
|
87
83
|
body_size :0
|
88
84
|
should_keep_alive :1
|
89
|
-
upgrade :0
|
90
85
|
http_major :1
|
91
86
|
http_minor :1
|
92
87
|
|
@@ -103,7 +98,6 @@ body :""
|
|
103
98
|
body_size :0
|
104
99
|
header_0 :{ "Accept": "*/*"}
|
105
100
|
should_keep_alive :1
|
106
|
-
upgrade :0
|
107
101
|
http_major :1
|
108
102
|
http_minor :1
|
109
103
|
|
@@ -120,7 +114,6 @@ body :"HELLO"
|
|
120
114
|
body_size :0
|
121
115
|
header_0 :{ "conTENT-Length": "5"}
|
122
116
|
should_keep_alive :0
|
123
|
-
upgrade :0
|
124
117
|
http_major :1
|
125
118
|
http_minor :0
|
126
119
|
|
@@ -139,7 +132,6 @@ header_0 :{ "Accept": "*/*"}
|
|
139
132
|
header_1 :{ "Transfer-Encoding": "identity"}
|
140
133
|
header_2 :{ "Content-Length": "5"}
|
141
134
|
should_keep_alive :1
|
142
|
-
upgrade :0
|
143
135
|
http_major :1
|
144
136
|
http_minor :1
|
145
137
|
|
@@ -156,7 +148,6 @@ body :"all your base are belong to us"
|
|
156
148
|
body_size :0
|
157
149
|
header_0 :{ "Transfer-Encoding": "chunked"}
|
158
150
|
should_keep_alive :1
|
159
|
-
upgrade :0
|
160
151
|
http_major :1
|
161
152
|
http_minor :1
|
162
153
|
|
@@ -173,7 +164,6 @@ body :"hello world"
|
|
173
164
|
body_size :0
|
174
165
|
header_0 :{ "Transfer-Encoding": "chunked"}
|
175
166
|
should_keep_alive :1
|
176
|
-
upgrade :0
|
177
167
|
http_major :1
|
178
168
|
http_minor :1
|
179
169
|
|
@@ -192,7 +182,6 @@ header_0 :{ "Transfer-Encoding": "chunked"}
|
|
192
182
|
header_1 :{ "Vary": "*"}
|
193
183
|
header_2 :{ "Content-Type": "text/plain"}
|
194
184
|
should_keep_alive :1
|
195
|
-
upgrade :0
|
196
185
|
http_major :1
|
197
186
|
http_minor :1
|
198
187
|
|
@@ -209,7 +198,6 @@ body :"hello world"
|
|
209
198
|
body_size :0
|
210
199
|
header_0 :{ "Transfer-Encoding": "chunked"}
|
211
200
|
should_keep_alive :1
|
212
|
-
upgrade :0
|
213
201
|
http_major :1
|
214
202
|
http_minor :1
|
215
203
|
|
@@ -225,7 +213,6 @@ query_string:foo="bar"
|
|
225
213
|
body :""
|
226
214
|
body_size :0
|
227
215
|
should_keep_alive :1
|
228
|
-
upgrade :0
|
229
216
|
http_major :1
|
230
217
|
http_minor :1
|
231
218
|
|
@@ -244,7 +231,6 @@ header_0 :{ "Host": "0.0.0.0:5000"}
|
|
244
231
|
header_1 :{ "User-Agent": "ApacheBench/2.3"}
|
245
232
|
header_2 :{ "Accept": "*/*"}
|
246
233
|
should_keep_alive :0
|
247
|
-
upgrade :0
|
248
234
|
http_major :1
|
249
235
|
http_minor :0
|
250
236
|
|
@@ -260,7 +246,6 @@ query_string:foo=bar?baz
|
|
260
246
|
body :""
|
261
247
|
body_size :0
|
262
248
|
should_keep_alive :1
|
263
|
-
upgrade :0
|
264
249
|
http_major :1
|
265
250
|
http_minor :1
|
266
251
|
|
@@ -276,12 +261,11 @@ query_string:
|
|
276
261
|
body :""
|
277
262
|
body_size :0
|
278
263
|
should_keep_alive :1
|
279
|
-
upgrade :0
|
280
264
|
http_major :1
|
281
265
|
http_minor :1
|
282
266
|
|
283
267
|
name :upgrade request
|
284
|
-
raw :"GET /demo HTTP/1.1\r\nHost: example.com\r\nConnection: Upgrade\r\nSec-WebSocket-Key2: 12998 5 Y3 1 .P00\r\nSec-WebSocket-Protocol: sample\r\nUpgrade: WebSocket\r\nSec-WebSocket-Key1: 4 @1 46546xW%0l 1 5\r\nOrigin: http://example.com\r\n\r\
|
268
|
+
raw :"GET /demo HTTP/1.1\r\nHost: example.com\r\nConnection: Upgrade\r\nSec-WebSocket-Key2: 12998 5 Y3 1 .P00\r\nSec-WebSocket-Protocol: sample\r\nUpgrade: WebSocket\r\nSec-WebSocket-Key1: 4 @1 46546xW%0l 1 5\r\nOrigin: http://example.com\r\n\r\nHot diggity dogg"
|
285
269
|
type :HTTP_REQUEST
|
286
270
|
method: HTTP_GET
|
287
271
|
status_code :0
|
@@ -299,17 +283,17 @@ header_4 :{ "Upgrade": "WebSocket"}
|
|
299
283
|
header_5 :{ "Sec-WebSocket-Key1": "4 @1 46546xW%0l 1 5"}
|
300
284
|
header_6 :{ "Origin": "http://example.com"}
|
301
285
|
should_keep_alive :1
|
302
|
-
upgrade :
|
286
|
+
upgrade :"Hot diggity dogg"
|
303
287
|
http_major :1
|
304
288
|
http_minor :1
|
305
289
|
|
306
290
|
name :connect request
|
307
|
-
raw :"CONNECT home0.netscape.com:443 HTTP/1.0\r\nUser-agent: Mozilla/1.1N\r\nProxy-authorization: basic aGVsbG86d29ybGQ=\r\n\r\
|
291
|
+
raw :"CONNECT 0-home0.netscape.com:443 HTTP/1.0\r\nUser-agent: Mozilla/1.1N\r\nProxy-authorization: basic aGVsbG86d29ybGQ=\r\n\r\nsome data\r\nand yet even more data"
|
308
292
|
type :HTTP_REQUEST
|
309
293
|
method: HTTP_CONNECT
|
310
294
|
status_code :0
|
311
295
|
request_path:
|
312
|
-
request_url :home0.netscape.com:443
|
296
|
+
request_url :0-home0.netscape.com:443
|
313
297
|
fragment :
|
314
298
|
query_string:
|
315
299
|
body :""
|
@@ -317,7 +301,7 @@ body_size :0
|
|
317
301
|
header_0 :{ "User-agent": "Mozilla/1.1N"}
|
318
302
|
header_1 :{ "Proxy-authorization": "basic aGVsbG86d29ybGQ="}
|
319
303
|
should_keep_alive :0
|
320
|
-
upgrade :
|
304
|
+
upgrade :"some data\r\nand yet even more data"
|
321
305
|
http_major :1
|
322
306
|
http_minor :0
|
323
307
|
|
@@ -333,7 +317,6 @@ query_string:
|
|
333
317
|
body :""
|
334
318
|
body_size :0
|
335
319
|
should_keep_alive :1
|
336
|
-
upgrade :0
|
337
320
|
http_major :1
|
338
321
|
http_minor :1
|
339
322
|
|
@@ -349,7 +332,6 @@ query_string:
|
|
349
332
|
body :""
|
350
333
|
body_size :0
|
351
334
|
should_keep_alive :0
|
352
|
-
upgrade :0
|
353
335
|
http_major :0
|
354
336
|
http_minor :9
|
355
337
|
|
@@ -368,24 +350,23 @@ header_0 :{ "HOST": "239.255.255.250:1900"}
|
|
368
350
|
header_1 :{ "MAN": ""ssdp:discover""}
|
369
351
|
header_2 :{ "ST": ""ssdp:all""}
|
370
352
|
should_keep_alive :1
|
371
|
-
upgrade :0
|
372
353
|
http_major :1
|
373
354
|
http_minor :1
|
374
355
|
|
375
|
-
name :
|
376
|
-
raw :"GET
|
356
|
+
name :line folding in header value
|
357
|
+
raw :"GET / HTTP/1.1\r\nLine1: abc\r\n def\r\n ghi\r\n jkl\r\n mno \r\n qrs\r\nLine2: line2 \r\n\r\n"
|
377
358
|
type :HTTP_REQUEST
|
378
359
|
method: HTTP_GET
|
379
360
|
status_code :0
|
380
|
-
request_path
|
381
|
-
request_url
|
382
|
-
fragment :
|
383
|
-
query_string:
|
361
|
+
request_path:/
|
362
|
+
request_url :/
|
363
|
+
fragment :
|
364
|
+
query_string:
|
384
365
|
body :""
|
385
366
|
body_size :0
|
386
|
-
header_0 :{ "
|
367
|
+
header_0 :{ "Line1": "abcdefghijklmno qrs"}
|
368
|
+
header_1 :{ "Line2": "line2 "}
|
387
369
|
should_keep_alive :1
|
388
|
-
upgrade :0
|
389
370
|
http_major :1
|
390
371
|
http_minor :1
|
391
372
|
|
@@ -401,7 +382,6 @@ query_string:hail=all
|
|
401
382
|
body :""
|
402
383
|
body_size :0
|
403
384
|
should_keep_alive :1
|
404
|
-
upgrade :0
|
405
385
|
http_major :1
|
406
386
|
http_minor :1
|
407
387
|
|
@@ -417,7 +397,6 @@ query_string:hail=all
|
|
417
397
|
body :""
|
418
398
|
body_size :0
|
419
399
|
should_keep_alive :1
|
420
|
-
upgrade :0
|
421
400
|
http_major :1
|
422
401
|
http_minor :1
|
423
402
|
|
@@ -433,7 +412,96 @@ query_string:
|
|
433
412
|
body :""
|
434
413
|
body_size :0
|
435
414
|
should_keep_alive :1
|
436
|
-
|
415
|
+
http_major :1
|
416
|
+
http_minor :1
|
417
|
+
|
418
|
+
name :PATCH request
|
419
|
+
raw :"PATCH /file.txt HTTP/1.1\r\nHost: www.example.com\r\nContent-Type: application/example\r\nIf-Match: \"e0023aa4e\"\r\nContent-Length: 10\r\n\r\ncccccccccc"
|
420
|
+
type :HTTP_REQUEST
|
421
|
+
method: UNKNOWN
|
422
|
+
status_code :0
|
423
|
+
request_path:/file.txt
|
424
|
+
request_url :/file.txt
|
425
|
+
fragment :
|
426
|
+
query_string:
|
427
|
+
body :"cccccccccc"
|
428
|
+
body_size :0
|
429
|
+
header_0 :{ "Host": "www.example.com"}
|
430
|
+
header_1 :{ "Content-Type": "application/example"}
|
431
|
+
header_2 :{ "If-Match": ""e0023aa4e""}
|
432
|
+
header_3 :{ "Content-Length": "10"}
|
433
|
+
should_keep_alive :1
|
434
|
+
http_major :1
|
435
|
+
http_minor :1
|
436
|
+
|
437
|
+
name :connect caps request
|
438
|
+
raw :"CONNECT HOME0.NETSCAPE.COM:443 HTTP/1.0\r\nUser-agent: Mozilla/1.1N\r\nProxy-authorization: basic aGVsbG86d29ybGQ=\r\n\r\n"
|
439
|
+
type :HTTP_REQUEST
|
440
|
+
method: HTTP_CONNECT
|
441
|
+
status_code :0
|
442
|
+
request_path:
|
443
|
+
request_url :HOME0.NETSCAPE.COM:443
|
444
|
+
fragment :
|
445
|
+
query_string:
|
446
|
+
body :""
|
447
|
+
body_size :0
|
448
|
+
header_0 :{ "User-agent": "Mozilla/1.1N"}
|
449
|
+
header_1 :{ "Proxy-authorization": "basic aGVsbG86d29ybGQ="}
|
450
|
+
should_keep_alive :0
|
451
|
+
upgrade :""
|
452
|
+
http_major :1
|
453
|
+
http_minor :0
|
454
|
+
|
455
|
+
name :eat CRLF between requests, no "Connection: close" header
|
456
|
+
raw :"POST / HTTP/1.1\r\nHost: www.example.com\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: 4\r\n\r\nq=42\r\n"
|
457
|
+
type :HTTP_REQUEST
|
458
|
+
method: HTTP_POST
|
459
|
+
status_code :0
|
460
|
+
request_path:/
|
461
|
+
request_url :/
|
462
|
+
fragment :
|
463
|
+
query_string:
|
464
|
+
body :"q=42"
|
465
|
+
body_size :0
|
466
|
+
header_0 :{ "Host": "www.example.com"}
|
467
|
+
header_1 :{ "Content-Type": "application/x-www-form-urlencoded"}
|
468
|
+
header_2 :{ "Content-Length": "4"}
|
469
|
+
should_keep_alive :1
|
470
|
+
http_major :1
|
471
|
+
http_minor :1
|
472
|
+
|
473
|
+
name :eat CRLF between requests even if "Connection: close" is set
|
474
|
+
raw :"POST / HTTP/1.1\r\nHost: www.example.com\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: 4\r\nConnection: close\r\n\r\nq=42\r\n"
|
475
|
+
type :HTTP_REQUEST
|
476
|
+
method: HTTP_POST
|
477
|
+
status_code :0
|
478
|
+
request_path:/
|
479
|
+
request_url :/
|
480
|
+
fragment :
|
481
|
+
query_string:
|
482
|
+
body :"q=42"
|
483
|
+
body_size :0
|
484
|
+
header_0 :{ "Host": "www.example.com"}
|
485
|
+
header_1 :{ "Content-Type": "application/x-www-form-urlencoded"}
|
486
|
+
header_2 :{ "Content-Length": "4"}
|
487
|
+
header_3 :{ "Connection": "close"}
|
488
|
+
should_keep_alive :0
|
489
|
+
http_major :1
|
490
|
+
http_minor :1
|
491
|
+
|
492
|
+
name :PURGE request
|
493
|
+
raw :"PURGE /file.txt HTTP/1.1\r\nHost: www.example.com\r\n\r\n"
|
494
|
+
type :HTTP_REQUEST
|
495
|
+
method: UNKNOWN
|
496
|
+
status_code :0
|
497
|
+
request_path:/file.txt
|
498
|
+
request_url :/file.txt
|
499
|
+
fragment :
|
500
|
+
query_string:
|
501
|
+
body :""
|
502
|
+
body_size :0
|
503
|
+
header_0 :{ "Host": "www.example.com"}
|
504
|
+
should_keep_alive :1
|
437
505
|
http_major :1
|
438
506
|
http_minor :1
|
439
507
|
|
@@ -457,7 +525,6 @@ header_5 :{ "Cache-Control": "public, max-age=2592000"}
|
|
457
525
|
header_6 :{ "Server": "gws"}
|
458
526
|
header_7 :{ "Content-Length": "219 "}
|
459
527
|
should_keep_alive :1
|
460
|
-
upgrade :0
|
461
528
|
http_major :1
|
462
529
|
http_minor :1
|
463
530
|
|
@@ -478,7 +545,6 @@ header_2 :{ "X-Powered-By": "Servlet/2.5 JSP/2.1"}
|
|
478
545
|
header_3 :{ "Content-Type": "text/xml; charset=utf-8"}
|
479
546
|
header_4 :{ "Connection": "close"}
|
480
547
|
should_keep_alive :0
|
481
|
-
upgrade :0
|
482
548
|
http_major :1
|
483
549
|
http_minor :1
|
484
550
|
|
@@ -493,8 +559,7 @@ fragment :
|
|
493
559
|
query_string:
|
494
560
|
body :""
|
495
561
|
body_size :0
|
496
|
-
should_keep_alive :
|
497
|
-
upgrade :0
|
562
|
+
should_keep_alive :0
|
498
563
|
http_major :1
|
499
564
|
http_minor :1
|
500
565
|
|
@@ -509,8 +574,7 @@ fragment :
|
|
509
574
|
query_string:
|
510
575
|
body :""
|
511
576
|
body_size :0
|
512
|
-
should_keep_alive :
|
513
|
-
upgrade :0
|
577
|
+
should_keep_alive :0
|
514
578
|
http_major :1
|
515
579
|
http_minor :1
|
516
580
|
|
@@ -528,7 +592,6 @@ body_size :65
|
|
528
592
|
header_0 :{ "Content-Type": "text/plain"}
|
529
593
|
header_1 :{ "Transfer-Encoding": "chunked"}
|
530
594
|
should_keep_alive :1
|
531
|
-
upgrade :0
|
532
595
|
http_major :1
|
533
596
|
http_minor :1
|
534
597
|
|
@@ -546,7 +609,6 @@ body_size :0
|
|
546
609
|
header_0 :{ "Content-Type": "text/html; charset=utf-8"}
|
547
610
|
header_1 :{ "Connection": "close"}
|
548
611
|
should_keep_alive :0
|
549
|
-
upgrade :0
|
550
612
|
http_major :1
|
551
613
|
http_minor :1
|
552
614
|
|
@@ -566,7 +628,6 @@ header_1 :{ "Content-Length": "11"}
|
|
566
628
|
header_2 :{ "Proxy-Connection": "close"}
|
567
629
|
header_3 :{ "Date": "Thu, 31 Dec 2009 20:55:48 +0000"}
|
568
630
|
should_keep_alive :0
|
569
|
-
upgrade :0
|
570
631
|
http_major :1
|
571
632
|
http_minor :1
|
572
633
|
|
@@ -586,7 +647,6 @@ header_1 :{ "Content-Type": "text/xml"}
|
|
586
647
|
header_2 :{ "Content-Length": "0"}
|
587
648
|
header_3 :{ "DCLK_imp": "v7;x;114750856;0-0;0;17820020;0/0;21603567/21621457/1;;~okv=;dcmt=text/xml;;~cs=o"}
|
588
649
|
should_keep_alive :1
|
589
|
-
upgrade :0
|
590
650
|
http_major :1
|
591
651
|
http_minor :1
|
592
652
|
|
@@ -611,33 +671,9 @@ header_6 :{ "Content-Length": "0"}
|
|
611
671
|
header_7 :{ "Content-Type": "text/html; charset=UTF-8"}
|
612
672
|
header_8 :{ "Connection": "keep-alive"}
|
613
673
|
should_keep_alive :1
|
614
|
-
upgrade :0
|
615
674
|
http_major :1
|
616
675
|
http_minor :0
|
617
676
|
|
618
|
-
name :field space
|
619
|
-
raw :"HTTP/1.1 200 OK\r\nServer: Microsoft-IIS/6.0\r\nX-Powered-By: ASP.NET\r\nen-US Content-Type: text/xml\r\nContent-Type: text/xml\r\nContent-Length: 16\r\nDate: Fri, 23 Jul 2010 18:45:38 GMT\r\nConnection: keep-alive\r\n\r\n<xml>hello</xml>"
|
620
|
-
type :HTTP_RESPONSE
|
621
|
-
method: HTTP_DELETE
|
622
|
-
status_code :200
|
623
|
-
request_path:
|
624
|
-
request_url :
|
625
|
-
fragment :
|
626
|
-
query_string:
|
627
|
-
body :"<xml>hello</xml>"
|
628
|
-
body_size :0
|
629
|
-
header_0 :{ "Server": "Microsoft-IIS/6.0"}
|
630
|
-
header_1 :{ "X-Powered-By": "ASP.NET"}
|
631
|
-
header_2 :{ "en-US Content-Type": "text/xml"}
|
632
|
-
header_3 :{ "Content-Type": "text/xml"}
|
633
|
-
header_4 :{ "Content-Length": "16"}
|
634
|
-
header_5 :{ "Date": "Fri, 23 Jul 2010 18:45:38 GMT"}
|
635
|
-
header_6 :{ "Connection": "keep-alive"}
|
636
|
-
should_keep_alive :1
|
637
|
-
upgrade :0
|
638
|
-
http_major :1
|
639
|
-
http_minor :1
|
640
|
-
|
641
677
|
name :field underscore
|
642
678
|
raw :"HTTP/1.1 200 OK\r\nDate: Tue, 28 Sep 2010 01:14:13 GMT\r\nServer: Apache\r\nCache-Control: no-cache, must-revalidate\r\nExpires: Mon, 26 Jul 1997 05:00:00 GMT\r\n.et-Cookie: PlaxoCS=1274804622353690521; path=/; domain=.plaxo.com\r\nVary: Accept-Encoding\r\n_eep-Alive: timeout=45\r\n_onnection: Keep-Alive\r\nTransfer-Encoding: chunked\r\nContent-Type: text/html\r\nConnection: close\r\n\r\n0\r\n\r\n"
|
643
679
|
type :HTTP_RESPONSE
|
@@ -661,7 +697,6 @@ header_8 :{ "Transfer-Encoding": "chunked"}
|
|
661
697
|
header_9 :{ "Content-Type": "text/html"}
|
662
698
|
header_10 :{ "Connection": "close"}
|
663
699
|
should_keep_alive :0
|
664
|
-
upgrade :0
|
665
700
|
http_major :1
|
666
701
|
http_minor :1
|
667
702
|
|
@@ -680,7 +715,131 @@ header_0 :{ "Date": "Fri, 5 Nov 2010 23:07:12 GMT+2"}
|
|
680
715
|
header_1 :{ "Content-Length": "0"}
|
681
716
|
header_2 :{ "Connection": "close"}
|
682
717
|
should_keep_alive :0
|
683
|
-
|
718
|
+
http_major :1
|
719
|
+
http_minor :1
|
720
|
+
|
721
|
+
name :http version 0.9
|
722
|
+
raw :"HTTP/0.9 200 OK\r\n\r\n"
|
723
|
+
type :HTTP_RESPONSE
|
724
|
+
method: HTTP_DELETE
|
725
|
+
status_code :200
|
726
|
+
request_path:
|
727
|
+
request_url :
|
728
|
+
fragment :
|
729
|
+
query_string:
|
730
|
+
body :""
|
731
|
+
body_size :0
|
732
|
+
should_keep_alive :0
|
733
|
+
http_major :0
|
734
|
+
http_minor :9
|
735
|
+
|
736
|
+
name :neither content-length nor transfer-encoding response
|
737
|
+
raw :"HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r\nhello world"
|
738
|
+
type :HTTP_RESPONSE
|
739
|
+
method: HTTP_DELETE
|
740
|
+
status_code :200
|
741
|
+
request_path:
|
742
|
+
request_url :
|
743
|
+
fragment :
|
744
|
+
query_string:
|
745
|
+
body :"hello world"
|
746
|
+
body_size :0
|
747
|
+
header_0 :{ "Content-Type": "text/plain"}
|
748
|
+
should_keep_alive :0
|
749
|
+
http_major :1
|
750
|
+
http_minor :1
|
751
|
+
|
752
|
+
name :HTTP/1.0 with keep-alive and EOF-terminated 200 status
|
753
|
+
raw :"HTTP/1.0 200 OK\r\nConnection: keep-alive\r\n\r\n"
|
754
|
+
type :HTTP_RESPONSE
|
755
|
+
method: HTTP_DELETE
|
756
|
+
status_code :200
|
757
|
+
request_path:
|
758
|
+
request_url :
|
759
|
+
fragment :
|
760
|
+
query_string:
|
761
|
+
body :""
|
762
|
+
body_size :0
|
763
|
+
header_0 :{ "Connection": "keep-alive"}
|
764
|
+
should_keep_alive :0
|
765
|
+
http_major :1
|
766
|
+
http_minor :0
|
767
|
+
|
768
|
+
name :HTTP/1.0 with keep-alive and a 204 status
|
769
|
+
raw :"HTTP/1.0 204 No content\r\nConnection: keep-alive\r\n\r\n"
|
770
|
+
type :HTTP_RESPONSE
|
771
|
+
method: HTTP_DELETE
|
772
|
+
status_code :204
|
773
|
+
request_path:
|
774
|
+
request_url :
|
775
|
+
fragment :
|
776
|
+
query_string:
|
777
|
+
body :""
|
778
|
+
body_size :0
|
779
|
+
header_0 :{ "Connection": "keep-alive"}
|
780
|
+
should_keep_alive :1
|
781
|
+
http_major :1
|
782
|
+
http_minor :0
|
783
|
+
|
784
|
+
name :HTTP/1.1 with an EOF-terminated 200 status
|
785
|
+
raw :"HTTP/1.1 200 OK\r\n\r\n"
|
786
|
+
type :HTTP_RESPONSE
|
787
|
+
method: HTTP_DELETE
|
788
|
+
status_code :200
|
789
|
+
request_path:
|
790
|
+
request_url :
|
791
|
+
fragment :
|
792
|
+
query_string:
|
793
|
+
body :""
|
794
|
+
body_size :0
|
795
|
+
should_keep_alive :0
|
796
|
+
http_major :1
|
797
|
+
http_minor :1
|
798
|
+
|
799
|
+
name :HTTP/1.1 with a 204 status
|
800
|
+
raw :"HTTP/1.1 204 No content\r\n\r\n"
|
801
|
+
type :HTTP_RESPONSE
|
802
|
+
method: HTTP_DELETE
|
803
|
+
status_code :204
|
804
|
+
request_path:
|
805
|
+
request_url :
|
806
|
+
fragment :
|
807
|
+
query_string:
|
808
|
+
body :""
|
809
|
+
body_size :0
|
810
|
+
should_keep_alive :1
|
811
|
+
http_major :1
|
812
|
+
http_minor :1
|
813
|
+
|
814
|
+
name :HTTP/1.1 with a 204 status and keep-alive disabled
|
815
|
+
raw :"HTTP/1.1 204 No content\r\nConnection: close\r\n\r\n"
|
816
|
+
type :HTTP_RESPONSE
|
817
|
+
method: HTTP_DELETE
|
818
|
+
status_code :204
|
819
|
+
request_path:
|
820
|
+
request_url :
|
821
|
+
fragment :
|
822
|
+
query_string:
|
823
|
+
body :""
|
824
|
+
body_size :0
|
825
|
+
header_0 :{ "Connection": "close"}
|
826
|
+
should_keep_alive :0
|
827
|
+
http_major :1
|
828
|
+
http_minor :1
|
829
|
+
|
830
|
+
name :HTTP/1.1 with chunked endocing and a 200 response
|
831
|
+
raw :"HTTP/1.1 200 OK\r\nTransfer-Encoding: chunked\r\n\r\n0\r\n\r\n"
|
832
|
+
type :HTTP_RESPONSE
|
833
|
+
method: HTTP_DELETE
|
834
|
+
status_code :200
|
835
|
+
request_path:
|
836
|
+
request_url :
|
837
|
+
fragment :
|
838
|
+
query_string:
|
839
|
+
body :""
|
840
|
+
body_size :0
|
841
|
+
header_0 :{ "Transfer-Encoding": "chunked"}
|
842
|
+
should_keep_alive :1
|
684
843
|
http_major :1
|
685
844
|
http_minor :1
|
686
845
|
|