Lines Matching refs:field
269 // This function is used to help avoid the lowercasing of a field name if it
270 // matches a 'traditional cased' version of a field name. It then returns the
272 // indicate whether the field was a 'no duplicates' field. If a field is not a
273 // 'no duplicates' field, a `0` byte is prepended as a flag. The one exception
275 // it is an 'array' field and thus is treated differently in _addHeaderLines().
279 function matchKnownFields(field, lowercased) {
280 switch (field.length) {
282 if (field === 'Age' || field === 'age') return 'age';
285 if (field === 'Host' || field === 'host') return 'host';
286 if (field === 'From' || field === 'from') return 'from';
287 if (field === 'ETag' || field === 'etag') return 'etag';
288 if (field === 'Date' || field === 'date') return '\u0000date';
289 if (field === 'Vary' || field === 'vary') return '\u0000vary';
292 if (field === 'Server' || field === 'server') return 'server';
293 if (field === 'Cookie' || field === 'cookie') return '\u0002cookie';
294 if (field === 'Origin' || field === 'origin') return '\u0000origin';
295 if (field === 'Expect' || field === 'expect') return '\u0000expect';
296 if (field === 'Accept' || field === 'accept') return '\u0000accept';
299 if (field === 'Referer' || field === 'referer') return 'referer';
300 if (field === 'Expires' || field === 'expires') return 'expires';
301 if (field === 'Upgrade' || field === 'upgrade') return '\u0000upgrade';
304 if (field === 'Location' || field === 'location')
306 if (field === 'If-Match' || field === 'if-match')
310 if (field === 'User-Agent' || field === 'user-agent')
312 if (field === 'Set-Cookie' || field === 'set-cookie')
314 if (field === 'Connection' || field === 'connection')
318 if (field === 'Retry-After' || field === 'retry-after')
322 if (field === 'Content-Type' || field === 'content-type')
324 if (field === 'Max-Forwards' || field === 'max-forwards')
328 if (field === 'Authorization' || field === 'authorization')
330 if (field === 'Last-Modified' || field === 'last-modified')
332 if (field === 'Cache-Control' || field === 'cache-control')
334 if (field === 'If-None-Match' || field === 'if-none-match')
338 if (field === 'Content-Length' || field === 'content-length')
342 if (field === 'Accept-Encoding' || field === 'accept-encoding')
344 if (field === 'Accept-Language' || field === 'accept-language')
346 if (field === 'X-Forwarded-For' || field === 'x-forwarded-for')
350 if (field === 'Content-Encoding' || field === 'content-encoding')
352 if (field === 'X-Forwarded-Host' || field === 'x-forwarded-host')
356 if (field === 'If-Modified-Since' || field === 'if-modified-since')
358 if (field === 'Transfer-Encoding' || field === 'transfer-encoding')
360 if (field === 'X-Forwarded-Proto' || field === 'x-forwarded-proto')
364 if (field === 'Proxy-Authorization' || field === 'proxy-authorization')
366 if (field === 'If-Unmodified-Since' || field === 'if-unmodified-since')
371 return '\u0000' + field;
373 return matchKnownFields(StringPrototypeToLowerCase(field), true);
375 // Add the given (field, value) pair to the message
385 function _addHeaderLine(field, value, dest) {
386 field = matchKnownFields(field);
387 const flag = StringPrototypeCharCodeAt(field, 0);
389 field = StringPrototypeSlice(field, 1);
391 if (typeof dest[field] === 'string') {
392 dest[field] += (flag === 0 ? ', ' : '; ') + value;
394 dest[field] = value;
408 if (dest[field] === undefined) {
409 dest[field] = value;
411 dest[field] += ', ' + value;
413 } else if (dest[field] === undefined) {
415 dest[field] = value;
420 function _addHeaderLineDistinct(field, value, dest) {
421 field = StringPrototypeToLowerCase(field);
422 if (!dest[field]) {
423 dest[field] = [value];
425 dest[field].push(value);