sendBeacon = function (results, context) {
        var options, req, prefix, beaconInfo,
            beacon = context.beacon,

            // request callback (response)
            response = function (res) {
                var info = {
                        'status': res.statusCode,
                        'headers': res.headers,
                        'body': ''
                    };
                res.setEncoding('utf8');
                res.on('data', function (chunk) {
                    info.body += chunk;
                });
                res.on('end', function () {
                    // augment results with beacon response info
                    results.beacon = info;

                    // format and send results
                    results = objToStr(results, context.format);
                    sendResults(results, context.res);
                });
            };

        // normalize beacon url
        if (beacon.indexOf('http') !== 0) {
            prefix = 'http:';
            if (beacon.indexOf('//') !== 0) {
                prefix += '//';
            }
        }
        beacon = url.parse(prefix + beacon);

        // prepare beacon content
        if (results.hasOwnProperty('contentType')) {
            // already converted to string (fire beacon only)
            beaconInfo = results;
        } else {
            // to be converted into string ()
            beaconInfo = objToStr(results, context.format);
        }

        // set request options
        options = {
            host: beacon.hostname,
            port: beacon.port || 80,
            path: beacon.pathname + (beacon.search || ''),
            method: 'POST',
            headers: {
                'Content-Type': beaconInfo.contentType + '; charset=UTF-8',
                'Content-Length': beaconInfo.content.length
            }
        };

        // build request, in verbose mode, beacon response must be logged
        // then returned, otherwise just fire beacon.
        req = http.request(options, context.verbose ? response : null);

        // report errors
        req.on('error', function (e) {
            if (context.verbose) {
                sendError(new Error('Beacon' + e), context.req, context.res);
            }
        });

        // write data to request body
        req.write(beaconInfo.content);
        req.end();
    }
Send beacon.
@param {Object} results The YSlow results to be beaconed.
@param {Object} context The req/res context.