http: remove CRLF variable

PR-URL: https://github.com/nodejs/node/pull/40101
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
This commit is contained in:
shfshanyue 2021-09-14 11:25:35 +08:00 committed by Michael Dawson
parent 58b7d47ad2
commit e9fc67815e
3 changed files with 25 additions and 26 deletions

View File

@ -268,7 +268,7 @@ module.exports = {
_checkIsHttpToken: checkIsHttpToken,
chunkExpression: /(?:^|\W)chunked(?:$|\W)/i,
continueExpression: /(?:^|\W)100-continue(?:$|\W)/i,
CRLF: '\r\n',
CRLF: '\r\n', // TODO: Deprecate this.
freeParser,
methods,
parsers,

View File

@ -45,9 +45,11 @@ const Stream = require('stream');
const internalUtil = require('internal/util');
const { kOutHeaders, utcDate, kNeedDrain } = require('internal/http');
const { Buffer } = require('buffer');
const common = require('_http_common');
const checkIsHttpToken = common._checkIsHttpToken;
const checkInvalidHeaderChar = common._checkInvalidHeaderChar;
const {
_checkIsHttpToken: checkIsHttpToken,
_checkInvalidHeaderChar: checkInvalidHeaderChar,
chunkExpression: RE_TE_CHUNKED,
} = require('_http_common');
const {
defaultTriggerAsyncIdScope,
symbols: { async_id_symbol }
@ -78,14 +80,12 @@ let debug = require('internal/util/debuglog').debuglog('http', (fn) => {
});
const HIGH_WATER_MARK = getDefaultHighWaterMark();
const { CRLF } = common;
const kCorked = Symbol('corked');
const nop = () => {};
const RE_CONN_CLOSE = /(?:^|\W)close(?:$|\W)/i;
const RE_TE_CHUNKED = common.chunkExpression;
// isCookieField performs a case-insensitive comparison of a provided string
// against the word "cookie." As of V8 6.6 this is faster than handrolling or
@ -417,7 +417,7 @@ function _storeHeader(firstLine, headers) {
// Date header
if (this.sendDate && !state.date) {
header += 'Date: ' + utcDate() + CRLF;
header += 'Date: ' + utcDate() + '\r\n';
}
// Force the connection to close when the response is a 204 No Content or
@ -447,14 +447,14 @@ function _storeHeader(firstLine, headers) {
const shouldSendKeepAlive = this.shouldKeepAlive &&
(state.contLen || this.useChunkedEncodingByDefault || this.agent);
if (shouldSendKeepAlive) {
header += 'Connection: keep-alive' + CRLF;
header += 'Connection: keep-alive\r\n';
if (this._keepAliveTimeout && this._defaultKeepAlive) {
const timeoutSeconds = MathFloor(this._keepAliveTimeout / 1000);
header += `Keep-Alive: timeout=${timeoutSeconds}${CRLF}`;
header += `Keep-Alive: timeout=${timeoutSeconds}\r\n`;
}
} else {
this._last = true;
header += 'Connection: close' + CRLF;
header += 'Connection: close\r\n';
}
}
@ -467,9 +467,9 @@ function _storeHeader(firstLine, headers) {
} else if (!state.trailer &&
!this._removedContLen &&
typeof this._contentLength === 'number') {
header += 'Content-Length: ' + this._contentLength + CRLF;
header += 'Content-Length: ' + this._contentLength + '\r\n';
} else if (!this._removedTE) {
header += 'Transfer-Encoding: chunked' + CRLF;
header += 'Transfer-Encoding: chunked\r\n';
this.chunkedEncoding = true;
} else {
// We should only be able to get here if both Content-Length and
@ -487,7 +487,7 @@ function _storeHeader(firstLine, headers) {
throw new ERR_HTTP_TRAILER_INVALID();
}
this._header = header + CRLF;
this._header = header + '\r\n';
this._headerSent = false;
// Wait until the first body chunk, or close(), is sent to flush,
@ -514,7 +514,7 @@ function processHeader(self, state, key, value, validate) {
function storeHeader(self, state, key, value, validate) {
if (validate)
validateHeaderValue(key, value);
state.header += key + ': ' + value + CRLF;
state.header += key + ': ' + value + '\r\n';
matchHeader(self, state, key, value);
}
@ -694,7 +694,7 @@ ObjectDefineProperty(OutgoingMessage.prototype, 'writableNeedDrain', {
}
});
const crlf_buf = Buffer.from(CRLF);
const crlf_buf = Buffer.from('\r\n');
OutgoingMessage.prototype.write = function write(chunk, encoding, callback) {
if (typeof encoding === 'function') {
callback = encoding;
@ -818,7 +818,7 @@ OutgoingMessage.prototype.addTrailers = function addTrailers(headers) {
debug('Trailer "%s" contains invalid characters', field);
throw new ERR_INVALID_CHAR('trailer content', field);
}
this._trailer += field + ': ' + value + CRLF;
this._trailer += field + ': ' + value + '\r\n';
}
};

View File

@ -37,7 +37,6 @@ const assert = require('internal/assert');
const {
parsers,
freeParser,
CRLF,
continueExpression,
chunkExpression,
kIncomingMessage,
@ -252,12 +251,12 @@ ServerResponse.prototype.detachSocket = function detachSocket(socket) {
};
ServerResponse.prototype.writeContinue = function writeContinue(cb) {
this._writeRaw(`HTTP/1.1 100 Continue${CRLF}${CRLF}`, 'ascii', cb);
this._writeRaw('HTTP/1.1 100 Continue\r\n\r\n', 'ascii', cb);
this._sent100 = true;
};
ServerResponse.prototype.writeProcessing = function writeProcessing(cb) {
this._writeRaw(`HTTP/1.1 102 Processing${CRLF}${CRLF}`, 'ascii', cb);
this._writeRaw('HTTP/1.1 102 Processing\r\n\r\n', 'ascii', cb);
};
ServerResponse.prototype._implicitHeader = function _implicitHeader() {
@ -320,7 +319,7 @@ function writeHead(statusCode, reason, obj) {
if (checkInvalidHeaderChar(this.statusMessage))
throw new ERR_INVALID_CHAR('statusMessage');
const statusLine = `HTTP/1.1 ${statusCode} ${this.statusMessage}${CRLF}`;
const statusLine = `HTTP/1.1 ${statusCode} ${this.statusMessage}\r\n`;
if (statusCode === 204 || statusCode === 304 ||
(statusCode >= 100 && statusCode <= 199)) {
@ -646,16 +645,16 @@ function onParserTimeout(server, socket) {
const noop = () => {};
const badRequestResponse = Buffer.from(
`HTTP/1.1 400 ${STATUS_CODES[400]}${CRLF}` +
`Connection: close${CRLF}${CRLF}`, 'ascii'
`HTTP/1.1 400 ${STATUS_CODES[400]}\r\n` +
'Connection: close\r\n\r\n', 'ascii'
);
const requestTimeoutResponse = Buffer.from(
`HTTP/1.1 408 ${STATUS_CODES[408]}${CRLF}` +
`Connection: close${CRLF}${CRLF}`, 'ascii'
`HTTP/1.1 408 ${STATUS_CODES[408]}\r\n` +
'Connection: close\r\n\r\n', 'ascii'
);
const requestHeaderFieldsTooLargeResponse = Buffer.from(
`HTTP/1.1 431 ${STATUS_CODES[431]}${CRLF}` +
`Connection: close${CRLF}${CRLF}`, 'ascii'
`HTTP/1.1 431 ${STATUS_CODES[431]}\r\n` +
'Connection: close\r\n\r\n', 'ascii'
);
function socketOnError(e) {
// Ignore further errors