You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
1.9 KiB
104 lines
1.9 KiB
var utils = require('./utils');
|
|
|
|
var table = `
|
|
1 :authority
|
|
2 :method GET
|
|
3 :method POST
|
|
4 :path /
|
|
5 :path /index.html
|
|
6 :scheme http
|
|
7 :scheme https
|
|
8 :status 200
|
|
9 :status 204
|
|
10 :status 206
|
|
11 :status 304
|
|
12 :status 400
|
|
13 :status 404
|
|
14 :status 500
|
|
15 accept-charset
|
|
16 accept-encoding gzip, deflate
|
|
17 accept-language
|
|
18 accept-ranges
|
|
19 accept
|
|
20 access-control-allow-origin
|
|
21 age
|
|
22 allow
|
|
23 authorization
|
|
24 cache-control
|
|
25 content-disposition
|
|
26 content-encoding
|
|
27 content-language
|
|
28 content-length
|
|
29 content-location
|
|
30 content-range
|
|
31 content-type
|
|
32 cookie
|
|
33 date
|
|
34 etag
|
|
35 expect
|
|
36 expires
|
|
37 from
|
|
38 host
|
|
39 if-match
|
|
40 if-modified-since
|
|
41 if-none-match
|
|
42 if-range
|
|
43 if-unmodified-since
|
|
44 last-modified
|
|
45 link
|
|
46 location
|
|
47 max-forwards
|
|
48 proxy-authenticate
|
|
49 proxy-authorization
|
|
50 range
|
|
51 referer
|
|
52 refresh
|
|
53 retry-after
|
|
54 server
|
|
55 set-cookie
|
|
56 strict-transport-security
|
|
57 transfer-encoding
|
|
58 user-agent
|
|
59 vary
|
|
60 via
|
|
61 www-authenticate
|
|
`;
|
|
|
|
var out = [];
|
|
table.split('\n').filter(function(line) {
|
|
return line;
|
|
}).forEach(function(line) {
|
|
var columns = line.split(/\t/g);
|
|
var name = columns[1];
|
|
var value = columns[2];
|
|
var nameSize = Buffer.byteLength(name);
|
|
var valueSize = Buffer.byteLength(value);
|
|
out.push({
|
|
name: name,
|
|
value: value,
|
|
nameSize: nameSize,
|
|
totalSize: nameSize + valueSize + 32
|
|
});
|
|
});
|
|
|
|
console.log('exports.table = ' + JSON.stringify(out, false, 2) + ';');
|
|
|
|
var map = {};
|
|
table.split('\n').filter(function(line) {
|
|
return line;
|
|
}).forEach(function(line) {
|
|
var columns = line.split(/\t/g);
|
|
var name = columns[1];
|
|
var value = columns[2];
|
|
|
|
var index = columns[0] | 0;
|
|
if (!map[name]) {
|
|
map[name] = {
|
|
index: index,
|
|
values: {}
|
|
};
|
|
}
|
|
map[name].values[value] = index;
|
|
});
|
|
console.log('exports.map = ' + JSON.stringify(map, false, 2) + ';');
|