diff --git a/doc/api/http.markdown b/doc/api/http.markdown index 7d5b9b5215..4cef0c847f 100644 --- a/doc/api/http.markdown +++ b/doc/api/http.markdown @@ -487,21 +487,21 @@ Example: ## http.Agent -In node 0.5.3+ there is a new implementation of the HTTP Agent which is used +In node 0.5.3+ there is a new implementation of the HTTP Agent which is used for pooling sockets used in HTTP client requests. -Previously, a single agent instance help the pool for single host+port. The +Previously, a single agent instance help the pool for single host+port. The current implementation now holds sockets for any number of hosts. -The current HTTP Agent also defaults client requests to using -Connection:keep-alive. If no pending HTTP requests are waiting on a socket -to become free the socket is closed. This means that node's pool has the -benefit of keep-alive when under load but still does not require developers +The current HTTP Agent also defaults client requests to using +Connection:keep-alive. If no pending HTTP requests are waiting on a socket +to become free the socket is closed. This means that node's pool has the +benefit of keep-alive when under load but still does not require developers to manually close the HTTP clients using keep-alive. -Sockets are removed from the agent's pool when the socket emits either a -"close" event or a special "agentRemove" event. This means that if you intend -to keep one HTTP request open for a long time and don't want it to stay in the +Sockets are removed from the agent's pool when the socket emits either a +"close" event or a special "agentRemove" event. This means that if you intend +to keep one HTTP request open for a long time and don't want it to stay in the pool you can do something along the lines of: http.get(options, function(res) { @@ -509,7 +509,7 @@ pool you can do something along the lines of: }).on("socket", function (socket) { socket.emit("agentRemove"); }); - + Alternatively, you could just opt out of pooling entirely using `agent:false`: http.get({host:'localhost', port:80, path:'/', agent:false}, function (res) { diff --git a/doc/api/https.markdown b/doc/api/https.markdown index 7a5473cf84..4113fe06e3 100644 --- a/doc/api/https.markdown +++ b/doc/api/https.markdown @@ -69,7 +69,7 @@ The options argument has the following options - method: HTTP request method. Default `'GET'`. The following options can also be specified. -However, a global [Agent](http.html#http.Agent) cannot be used. +However, a global [Agent](http.html#http.Agent) cannot be used. - key: Private key to use for SSL. Default `null`. - cert: Public x509 certificate to use. Default `null`. diff --git a/lib/http.js b/lib/http.js index 2d298203a9..9eb3b50d54 100644 --- a/lib/http.js +++ b/lib/http.js @@ -1015,7 +1015,7 @@ function ClientRequest(options, cb) { if (options.port && +options.port !== options.defaultPort) { hostHeader += ':' + options.port; } - this.setHeader("Host", hostHeader); + this.setHeader('Host', hostHeader); } } @@ -1032,9 +1032,11 @@ function ClientRequest(options, cb) { } if (Array.isArray(options.headers)) { - self._storeHeader(self.method + ' ' + self.path + ' HTTP/1.1\r\n', options.headers); + self._storeHeader(self.method + ' ' + self.path + ' HTTP/1.1\r\n', + options.headers); } else if (self.getHeader('expect')) { - self._storeHeader(self.method + ' ' + self.path + ' HTTP/1.1\r\n', self._renderHeaders()); + self._storeHeader(self.method + ' ' + self.path + ' HTTP/1.1\r\n', + self._renderHeaders()); } if (self.socketPath) { self._last = true; @@ -1060,9 +1062,9 @@ function ClientRequest(options, cb) { } } - self._deferToConnect(null, null, function () { + self._deferToConnect(null, null, function() { self._flush(); - }) + }); } util.inherits(ClientRequest, OutgoingMessage); @@ -1095,7 +1097,7 @@ function createHangUpError() { ClientRequest.prototype.onSocket = function(socket) { var req = this; - process.nextTick(function () { + process.nextTick(function() { var parser = parsers.alloc(); req.socket = socket; req.connection = socket; diff --git a/lib/url.js b/lib/url.js index f6d8631651..7a28e0064b 100644 --- a/lib/url.js +++ b/lib/url.js @@ -234,7 +234,7 @@ function urlParse(url, parseQueryString, slashesDenoteHost) { } out.hostname = newOut.join('.'); - out.host = (out.hostname || '') + + out.host = (out.hostname || '') + ((out.port) ? ':' + out.port : ''); out.href += out.host; } @@ -419,7 +419,7 @@ function urlResolveObject(source, relative) { //to support http.request if (source.pathname !== undefined || source.search !== undefined) { source.path = (source.pathname ? source.pathname : '') + - (source.search ? source.search : ''); + (source.search ? source.search : ''); } source.slashes = source.slashes || relative.slashes; source.href = urlFormat(source); @@ -504,7 +504,7 @@ function urlResolveObject(source, relative) { //to support http.request if (source.pathname !== undefined || source.search !== undefined) { source.path = (source.pathname ? source.pathname : '') + - (source.search ? source.search : ''); + (source.search ? source.search : ''); } source.href = urlFormat(source); return source; @@ -590,7 +590,7 @@ function urlResolveObject(source, relative) { //to support request.http if (source.pathname !== undefined || source.search !== undefined) { source.path = (source.pathname ? source.pathname : '') + - (source.search ? source.search : ''); + (source.search ? source.search : ''); } source.auth = relative.auth || source.auth; source.slashes = source.slashes || relative.slashes; diff --git a/test/simple/test-http-url.parse-auth-with-header-in-request.js b/test/simple/test-http-url.parse-auth-with-header-in-request.js index 6abb8f99de..5ac789068e 100644 --- a/test/simple/test-http-url.parse-auth-with-header-in-request.js +++ b/test/simple/test-http-url.parse-auth-with-header-in-request.js @@ -22,7 +22,6 @@ var common = require('../common'); var assert = require('assert'); var http = require('http'); -var https = require('https'); var url = require('url'); var testURL = url.parse('http://asdf:qwer@localhost:' + common.PORT); @@ -45,7 +44,7 @@ var server = http.createServer(function(request, response) { server.close(); }); -server.listen(common.PORT, function () { +server.listen(common.PORT, function() { // make the request http.request(testURL).end(); }); diff --git a/test/simple/test-http-url.parse-auth.js b/test/simple/test-http-url.parse-auth.js index 0aa43fcae6..dfa8833190 100644 --- a/test/simple/test-http-url.parse-auth.js +++ b/test/simple/test-http-url.parse-auth.js @@ -22,7 +22,6 @@ var common = require('../common'); var assert = require('assert'); var http = require('http'); -var https = require('https'); var url = require('url'); var testURL = url.parse('http://asdf:qwer@localhost:' + common.PORT); @@ -40,7 +39,7 @@ var server = http.createServer(function(request, response) { server.close(); }); -server.listen(common.PORT, function () { +server.listen(common.PORT, function() { // make the request http.request(testURL).end(); }); diff --git a/test/simple/test-http-url.parse-https.request.js b/test/simple/test-http-url.parse-https.request.js index f16646057b..6756db5487 100644 --- a/test/simple/test-http-url.parse-https.request.js +++ b/test/simple/test-http-url.parse-https.request.js @@ -47,7 +47,7 @@ var server = https.createServer(httpsOptions, function(request, response) { server.close(); }); -server.listen(common.PORT, function () { +server.listen(common.PORT, function() { // make the request var clientRequest = https.request(testURL); // since there is a little magic with the agent diff --git a/test/simple/test-http-url.parse-path.js b/test/simple/test-http-url.parse-path.js index ec97d87a4d..8ef09520c6 100644 --- a/test/simple/test-http-url.parse-path.js +++ b/test/simple/test-http-url.parse-path.js @@ -22,7 +22,6 @@ var common = require('../common'); var assert = require('assert'); var http = require('http'); -var https = require('https'); var url = require('url'); var testURL = url.parse('http://localhost:' + common.PORT + '/asdf'); @@ -40,7 +39,7 @@ var server = http.createServer(function(request, response) { server.close(); }); -server.listen(common.PORT, function () { +server.listen(common.PORT, function() { // make the request http.request(testURL).end(); }); diff --git a/test/simple/test-http-url.parse-post.js b/test/simple/test-http-url.parse-post.js index a51f061c18..be93166d53 100644 --- a/test/simple/test-http-url.parse-post.js +++ b/test/simple/test-http-url.parse-post.js @@ -29,13 +29,13 @@ var testURL = url.parse('http://localhost:' + common.PORT + '/asdf?qwer=zxcv'); testURL.method = 'POST'; function check(request) { - //url.parse should not mess with the method - assert.strictEqual(request.method, 'POST'); - //everything else should be right - assert.strictEqual(request.url, '/asdf?qwer=zxcv'); - //the host header should use the url.parse.hostname - assert.strictEqual(request.headers.host, - testURL.hostname + ':' + testURL.port); + //url.parse should not mess with the method + assert.strictEqual(request.method, 'POST'); + //everything else should be right + assert.strictEqual(request.url, '/asdf?qwer=zxcv'); + //the host header should use the url.parse.hostname + assert.strictEqual(request.headers.host, + testURL.hostname + ':' + testURL.port); } var server = http.createServer(function(request, response) { @@ -46,7 +46,7 @@ var server = http.createServer(function(request, response) { server.close(); }); -server.listen(common.PORT, function () { +server.listen(common.PORT, function() { // make the request http.request(testURL).end(); }); diff --git a/test/simple/test-http-url.parse-search.js b/test/simple/test-http-url.parse-search.js index 2c7ca5c82c..3b6727d0bf 100644 --- a/test/simple/test-http-url.parse-search.js +++ b/test/simple/test-http-url.parse-search.js @@ -40,7 +40,7 @@ var server = http.createServer(function(request, response) { server.close(); }); -server.listen(common.PORT, function () { +server.listen(common.PORT, function() { // make the request http.request(testURL).end(); }); diff --git a/test/simple/test-url.js b/test/simple/test-url.js index ca6782ed9b..c89545d640 100644 --- a/test/simple/test-url.js +++ b/test/simple/test-url.js @@ -989,7 +989,7 @@ relativeTests.forEach(function(relativeTest) { if (relativeTests2[181][0] === './/g' && relativeTests2[181][1] === 'f:/a' && relativeTests2[181][2] === 'f://g') { - relativeTests2.splice(181,1); + relativeTests2.splice(181, 1); } relativeTests2.forEach(function(relativeTest) { var actual = url.resolveObject(url.parse(relativeTest[1]), relativeTest[0]),