Skip to content

Commit 6b9d1ff

Browse files
committed
perf: use tree
1 parent 871baa7 commit 6b9d1ff

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

lib/core/util.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -280,13 +280,13 @@ function parseRawHeaders (headers) {
280280
let contentDispositionIdx = -1
281281

282282
for (let n = 0; n < headers.length; n += 2) {
283-
const key = headers[n + 0].toString()
283+
const key = headerNameToString(headers[n])
284284
const val = headers[n + 1].toString('utf8')
285285

286-
if (key.length === 14 && (key === 'content-length' || key.toLowerCase() === 'content-length')) {
286+
if (key === 'content-length') {
287287
ret.push(key, val)
288288
hasContentLength = true
289-
} else if (key.length === 19 && (key === 'content-disposition' || key.toLowerCase() === 'content-disposition')) {
289+
} else if (key === 'content-disposition') {
290290
contentDispositionIdx = ret.push(key, val) - 1
291291
} else {
292292
ret.push(key, val)

lib/handler/RedirectHandler.js

+12-7
Original file line numberDiff line numberDiff line change
@@ -176,20 +176,25 @@ function parseLocation (statusCode, headers) {
176176
}
177177

178178
for (let i = 0; i < headers.length; i += 2) {
179-
if (headers[i].toString().toLowerCase() === 'location') {
179+
if (headers[i].length === 8 && util.headerNameToString(headers[i]) === 'location') {
180180
return headers[i + 1]
181181
}
182182
}
183183
}
184184

185185
// https://tools.ietf.org/html/rfc7231#section-6.4.4
186186
function shouldRemoveHeader (header, removeContent, unknownOrigin) {
187-
return (
188-
(header.length === 4 && header.toString().toLowerCase() === 'host') ||
189-
(removeContent && header.toString().toLowerCase().indexOf('content-') === 0) ||
190-
(unknownOrigin && header.length === 13 && header.toString().toLowerCase() === 'authorization') ||
191-
(unknownOrigin && header.length === 6 && header.toString().toLowerCase() === 'cookie')
192-
)
187+
if (header.length === 4) {
188+
return util.headerNameToString(header) === 'host'
189+
}
190+
if (removeContent && util.headerNameToString(header).startsWith('content-')) {
191+
return true
192+
}
193+
if (unknownOrigin && (header.length === 13 || header.length === 6)) {
194+
const name = util.headerNameToString(header)
195+
return name === 'authorization' || name === 'cookie'
196+
}
197+
return false
193198
}
194199

195200
// https://tools.ietf.org/html/rfc7231#section-6.4

0 commit comments

Comments
 (0)