Request: рддреНрд░реБрдЯрд┐: рд╕реЙрдХреЗрдЯ рд╣реИрдВрдЧ рдЕрдк

рдХреЛ рдирд┐рд░реНрдорд┐рдд 31 рдЬрдире░ 2016  ┬╖  77рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: request/request

рдирдорд╕реНрддреЗ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдореБрджреНрджреЗ рдкрд╣рд▓реЗ рдмрдирд╛рдП рдЧрдП рдереЗ, рд▓реЗрдХрд┐рди рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╡рд┐рд╡рд░рдг рдерд╛ред

рдореИрдВрдиреЗ рд╕рд░рд▓ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА: рдлреЙрд░реНрдо рдбреЗрдЯрд╛ рднреЗрдЬреЗрдВред рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдЕрдиреБрд░реЛрдз рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рд╣рдореЗрд╢рд╛ "рд╕реЙрдХреЗрдЯ рд╣реИрдВрдЧ рдЕрдк" рдлреЗрдВрдХ рджреЗрддрд╛ рд╣реИред

рд╕рд░рд▓ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдиреАрдЪреЗ

'use strict';

const request = require('request');
const http = require('http');
const querystring = require('querystring');

const data = {
    xstext: 'I have a some problem about node.js server. What should I do to solve the this problem?',
    spintype: 0,
    removeold: 0,
};

// Using request
request(
    {
        method: 'POST',
        url: 'http://address:9017/',
        form: data,
    },
    (error, responce, body) => {
        if (!error) {
            console.log(body, responce);
            return;
        }
        console.log(error);
    }
);

// Using native http
let postData = querystring.stringify(data);

let options = {
    hostname: 'address',
    port: 9017,
    path: '/',
    method: 'POST',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Content-Length': postData.length,
    },
};

let req = http.request(options, (res) => {
    console.log(`STATUS: ${res.statusCode}`);
    console.log(`HEADERS: ${JSON.stringify(res.headers)}`);
    res.setEncoding('utf8');
    res.on('data', (chunk) => {
        console.log(`BODY: ${chunk}`);
    });
    res.on('end', () => {
        console.log('No more data in response.');
    });
});

req.on('error', (e) => {
    console.log(`problem with request: ${e.message}`);
});

req.write(postData);
req.end();

рдЕрдиреБрд░реЛрдз рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП:

{ [Error: socket hang up] code: 'ECONNRESET' }

рджреЗрд╢реА http рдХреЗ рд▓рд┐рдП:

STATUS: 200
HEADERS: {"content-length":"98","content-type":"text/html","cache-control":"no-cache","connection":"keep-close"}
BODY: Excellent some problem about client. js server. What must i do to solve the particular this issue?
No more data in response.

рдЕрдиреБрд░реЛрдз рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрдЧ рдХреА рддрд░рд╣ рд╣реИред

Not enough info (see CONTRIBUTING.md)

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдХреЛрдИ рдореБрдЭреЗ рдмрдЪрд╛ рд▓реЛ : рдкрд░реА :

рд╕рднреА 77 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗрдВ gzip:true рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдЖрдк Node.js рдХреЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? 0.10 рд╕реЗ 0.12 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рдо рдХрднреА-рдХрднрд╛рд░ ECONNRESET рдЕрдкрд╡рд╛рдж рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред рдиреЛрдб.рдЬреЗрдПрд╕ рдмрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рд╕реЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ 0.12 рдореЗрдВ рдЯреВрдЯ рдЧрдпрд╛ рд╣реЛрдЧрд╛ рдФрд░ рдмрд╛рдж рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдпрд╣рд╛рдБ рд╡рд╣реА рдореБрджреНрджрд╛ред рдХреЛрдИ рд╕реБрдзрд╛рд░ ? рдореИрдВ node.js 4.2.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдЖрд╡рдзрд┐рдХ (рдкреНрд░рддрд┐ рдорд┐рдирдЯ 3-4 рдмрд╛рд░) ECONNRESET рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИред

рд╣рд╛рдп @aymeba рдпрд╣ рдкрд╣рд▓реЗ 4.x рд╕рдВрд╕реНрдХрд░рдг рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдлрд┐рдХреНрд╕ 4.4.0 рд╣реИред

http: handle errors on idle sockets рд╢реАрд░реНрд╖рдХ рд╡рд╛рд▓реЗ рдХрдорд┐рдЯ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВред рдЗрд╕ рд╢реАрд░реНрд╖рдХ рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрдорд┐рдЯреНрд╕ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рд╢рд╛рдЦрд╛рдУрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ, рдореИрдВ рднреНрд░рдорд┐рдд рд╣реЛ рдЧрдпрд╛ рдФрд░ рдиреЛрдб.рдЬреЗрдПрд╕ (#3595) рдореЗрдВ рдПрдХ ECONNRESET рдмрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рдерд╛ред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдРрд╕рд╛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрддрд╛рдП рдЧрдП рдмрдЧ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ:

  • рд╣рдорд╛рд░реЗ рдмреИрдХрдПрдВрдб рдХреЛ рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВ
  • рдмреИрдХрдПрдВрдб рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ
  • рдХрд┐рд╕реА рддрд░рд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдЕрдиреБрд░реЛрдз рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ ECONNRESET рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ
  • рд╣рдореЗрдВ рдпрдХреАрди рд╣реИ, рдХрд┐ рд╣рдорд╛рд░рд╛ рдмреИрдХрдПрдВрдб рд╕рд░реНрд╡рд░ рдХрдиреЗрдХреНрд╢рди рдирд╣реАрдВ рддреЛрдбрд╝рддрд╛

рдореИрдВ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдЙрд▓рдЭрди рдореЗрдВ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдмреИрдХрдПрдВрдб рд╕рд░реНрд╡рд░ рдХреЛ рдпрд╣ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП рдпрд╛?

рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?. рдореБрдЭреЗ рдмреЙрдЯрдХрд┐рдЯ 0.2.1 рдХреЗ рд╕рд╛рде рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИред

рдореЗрд░реА рднреА рдЗрд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдШрдВрдЯреЛрдВ рд╢реЛрдз, рдкрд░реАрдХреНрд╖рдг рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд┐рдпрд╛ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреЛрд╕реНрдЯрдореИрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрд╕реА рд░реЗрд╕реНрдЯрд╛рдкреА рдореЗрдВ рдкреЛрд╕реНрдЯрд┐рдВрдЧ рдЕрдВрдд-рдмрд┐рдВрджреБ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рджреЗрд╢реА NodeJS http.request рдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рд╡рд┐рдлрд▓ред рд╕рднреА рд╣реЗрдбрд░ рдФрд░ рдкреЗрд▓реЛрдб (рдмреЙрдбреА) рд╕рдорд╛рди рд╣реИрдВред (рд╕рд┐рд╡рд╛рдп рдореЗрд░реЗ рдкрд╛рд╕ рд╣реЗрдбрд░ рдореЗрдВ рдкреЛрд╕реНрдЯрдореИрди-рдЯреЛрдХрди рдирд╣реАрдВ рд╣реИ)

рдкреВрд░реНрдг рдкреНрд░рдХрдЯреАрдХрд░рдг, рдореИрдВ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рд░реЗрд╕реНрдЯрд┐рдлрд╛рдЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдпрджрд┐ рдЖрдк рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рд░реЗрд╕реНрдЯрд┐рдлрд╛рдЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдСрдбрд┐рдЯрд░ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛, рдЬреЛ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕ рдкрд░ рдХреБрдЫ рд╕рдВрдХреЗрдд рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рд╛рде рд╣реА, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдЕрдиреБрд░реЛрдз рдореЗрдВ рд╕рд╣реА "рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░" рд╕реЗрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╕рд░реНрд╡рд░ рдЬрд╛рдирддрд╛ рд╣реЛ рдХрд┐ рдХреНрдпрд╛ рдЙрдореНрдореАрдж рдХрд░рдиреА рд╣реИред рдореИрдВрдиреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рддрдм рджреЗрдЦреА рд╣реИ рдЬрдм рд╕рд░реНрд╡рд░ рдЕрдиреБрд░реЛрдз рдХреЛ рдЧрд▓рдд рд╕рдордЭ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╕реЗ рдорджрдж рдорд┐рд▓реЗрдЧреАред

рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ? рдореИрдВ рдЕрднреА рднреА рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдиреЛрдб v5.0.0 рдХреЗ рд╕рд╛рде рд╣реЛрддреЗ рд╣реБрдП рджреЗрдЦрддрд╛ рд╣реВрдВред рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдЕрдиреБрд░реЛрдз рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рд╕рдордп рд╕реЗ 45 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рдпрд╣ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рд╣рд╛рдкреАрдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рджреЗрдЦреА рд╣реИред рд╕рдорд╕реНрдпрд╛ рдЧрд▓рдд рд╕рд╛рдордЧреНрд░реА-рд▓рдВрдмрд╛рдИ рд╢реАрд░реНрд╖рд▓реЗрдЦ рдереА

рдореИрдВ рд╕рджрд╕реНрдпрддрд╛ рдФрд░ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ рдзрдиреНрдпрд╡рд╛рдж...

рдиреЛрдб v6.9.2 рдХреЗ рд╕рд╛рде рд╣реЛ рд░рд╣рд╛ рд╣реИред

  get: async function(ctx) {
    let body = await new Promise(function(resolve, reject) {
      return ctx.req.pipe(request('/path/to/my/backend', function(err, res, body) {
        if (err) { return reject(err) }
        resolve(body)
      }))
    })
    return body
  }

рдореИрдВ рдЗрд╕реЗ рдиреЛрдб 6.6.0 рдХреЗ рд╕рд╛рде рднреА рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред рдЬрд┐рд╕ рд╕рд░реНрд╡рд░ рд╕реЗ рдореИрдВ рдХрдиреЗрдХреНрдЯ рд╣реЛ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА-рд▓рдВрдмрд╛рдИ рд╢реАрд░реНрд╖рд▓реЗрдЦ рдирд╣реАрдВ рднреЗрдЬ рд░рд╣рд╛ рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ HTTP рд╕реНрдкреЗрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рд░реНрд╡рд░ рдХреЛ рд╕рднреА рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреЗ рдмрд╛рдж рд╕реНрдЯреНрд░реАрдо рдмрдВрдж рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд╕реЙрдХреЗрдЯ рд╣реИрдВрдЧ рдЕрдк рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рдХрд╛ рдЧрд▓рдд рдЕрд░реНрде рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдХрд░реНрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

+1
рдиреЛрдб 6.9.4
рдЕрдиреБрд░реЛрдз 2.79.0

рдХрд░реНрд▓ рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдпреВрдЖрд░рдПрд▓ рдореИрдВ рд░рд┐рдЯрд░реНрди рд╣реЗрдбрд░ рд╕рд╛рдордЧреНрд░реА-рд▓рдВрдмрд╛рдИ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ

+1
рдиреЛрдб 6.9.1
рдЕрдиреБрд░реЛрдз 2.79.0

Wget, рдХрд░реНрд▓ - рд╕рдлрд▓рддрд╛, рд▓реЗрдХрд┐рди рдЕрдиреБрд░реЛрдз - рддреНрд░реБрдЯрд┐ред

рдиреЛрдб - v6.9.4
рдЕрдиреБрд░реЛрдз - 2.79.0

# node req.js
REQUEST { uri: 'http://wtfismyip.com', callback: [Function] }
REQUEST make request http://wtfismyip.com/

{ Error: socket hang up
    at createHangUpError (_http_client.js:254:15)
    at Socket.socketOnEnd (_http_client.js:346:23)
    at emitNone (events.js:91:20)
    at Socket.emit (events.js:185:7)
    at endReadableNT (_stream_readable.js:974:12)
    at _combinedTickCallback (internal/process/next_tick.js:74:11)
    at process._tickCallback (internal/process/next_tick.js:98:9) code: 'ECONNRESET' }

рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛрдирд╛ред рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдиреБрд░реЛрдз рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рдорд╛рди рдХреЛрдб рдореЗрд░реЗ рд▓рд┐рдП 6.4.0 рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди 6.9.2 рдореЗрдВ рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИ (рдпреЗ рд╕рд┐рд░реНрдл 2 рдиреЛрдбрдЬ рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ)ред

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ Connection: keep-alive рд╣реЗрдбрд░ рд╕реЗрдЯ рдХрд░рдХреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред

@dieseldjango рд╕реБрдЭрд╛рд╡ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рдпрд╣рд╛рдБ рдПрдХ рд╕рд╛рдЗрдЯ рд╣реИ рдЬреЛ рдкреБрдирд░реБрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдпрд╣ рддреНрд░реБрдЯрд┐ рджреЗрддреА рд╣реИ:

{ request: 
   { debugId: 1,
     uri: 'https://www.deal.no/',
     method: 'GET',
     headers: 
      { Connection: 'keep-alive',
        host: 'www.deal.no',
        'accept-encoding': 'gzip, deflate' } } }
error:  Error: socket hang up
    at TLSSocket.onHangUp (_tls_wrap.js:1111:19)
    at TLSSocket.g (events.js:291:16)
    at emitNone (events.js:91:20)
    at TLSSocket.emit (events.js:185:7)
    at endReadableNT (_stream_readable.js:974:12)
    at _combinedTickCallback (internal/process/next_tick.js:74:11)
    at process._tickCallback (internal/process/next_tick.js:98:9)

.. рднреЗрдЬреЗ рдЧрдП рд╣реЗрдбрд░ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рддрдХ рд╣рд▓ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ? рдпрд╣ рджреЛ рд╕рдкреНрддрд╛рд╣ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдЕрдм рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ
{ [Error: socket hang up] code: 'ECONNRESET', response: undefined }
рдиреЛрдб -рд╡реА 4.4.7

рд╣реЗрдбрд░ рдореЗрдВ 'рд╕реНрд╡реАрдХреГрддрд┐-рдПрдиреНрдХреЛрдбрд┐рдВрдЧ' рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ: 'gzip, deflate' рдиреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ред

рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣ рддреНрд░реБрдЯрд┐ рдЕрдзрд┐рдХ рдмрд╛рд░ рдорд┐рд▓ рд░рд╣реА рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рд▓ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЧрдард┐рдд рдпреВрдЖрд░рдПрд▓ рдерд╛, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд┐рдХреГрдд рдерд╛ред рдореИрдВ рдЖрдк рд╕рднреА рдХреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ рд╣реИред рдореИрдВ рдЖрдкрдХреЛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ, 98% рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдореВрд▓ рдХрд╛рд░рдг рдХреБрдЫ рд╕рд╛рдВрд╕рд╛рд░рд┐рдХ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЕрдирджреЗрдЦрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореИрдВрдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ, рдпрд╣ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдлреЙрд░рд╡рд░реНрдб рд╕реНрд▓реИрд╢ рдкрд░ рдЖ рдЧрдпрд╛ред

рдореИрдВ рдЙрди рд╕рднреА рд╕реБрдЭрд╛рд╡реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрджреНрджрд╛ рдЕрднреА рднреА рд╣реЛрддрд╛ рд╣реИред рдмрд╣реБрдд рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИ....

рдЕрдЧрд░ рдпрд╣ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ рддреЛ рдореИрдВрдиреЗ рдЕрдВрддрддрдГ рдХрд░реНрд▓ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛ ('child_process').exec рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд┐рдпрд╛ред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдЗрдирдкреБрдЯ рдХреЛ рдареАрдХ рд╕реЗ рд╕рд╛рдл рдХрд░рддреЗ рд╣реИрдВ рдпрджрд┐ рд╡реЗ рдпреВрдЬрд░рд▓реИрдВрдб рд╕реЗ рдЖ рд░рд╣реЗ рд╣реИрдВред

рдХреГрдкрдпрд╛ google.com => hostname: 'google.com' рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, "рд╣реЛрд╕реНрдЯрдирд╛рдо" рдХреЛ nginx рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИрдВрдбрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЦрд╛рд▓реА рд╢рд░реАрд░ рдХреЗ рд╕рд╛рде рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рдХреЛрдб рдХреЛ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

var http = require("http");
var options = {
  hostname: 'myAddressNginx',
  port: 80,
  path: '/',
  method: 'GET',
  headers: {
    'Content-Type': 'text/html',
    'Content-Length': Buffer.byteLength("")
  }
};

var req = http.request(options, (res) => {
  res.on('data', (chunk) => {console.log("%s", chunk);});
  res.on('end', () => {});
});

// write data to request body
req.write("");
req.end();

рдпрд╣ рдХреЛрдб рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

var http = require("http");
var options = {
  hostname: 'myAddressNginx',
  port: 80,
  path: '/',
  method: 'GET',
  headers: {
    'Content-Type': 'text/html',
    'Content-Length': Buffer.byteLength("")
  }
};

var req = http.request(options, (res) => {
  res.on('data', (chunk) => {console.log("%s", chunk);});
  res.on('end', () => {});
});

// write data to request body
req.write("abc");
req.end();

+1
рдиреЛрдб 6.9.5

рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред +1
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ рдореИрдВ рджреВрд╕рд░реЗ рдирд┐рдЧрд░рд╛рдиреА рдЙрдкрдХрд░рдг рдХреЗ рднреАрддрд░ 'рдЕрдиреБрд░реЛрдз' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рдореБрджреНрджреЗ рдХрдо рд╕реЗ рдХрдо рд╣реИрдВред рдореБрдЭреЗ node.js рдмрд╣реБрдд рдкрд╕рдВрдж рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХреБрдЫ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреЛрд╕реНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдлрд╝реАрдбрдмреИрдХ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдЖрдкрдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдореЗрдВ рдереЛрдбрд╝реА рдорджрдж рдорд┐рд▓реЗрдЧреАред

рддреНрд░реБрдЯрд┐ рдЕрдм рдЙрдЪреНрдЪ рдпрд╛рддрд╛рдпрд╛рдд рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИред
рдореИрдВ рд╕рд░реНрд╡рд░ рдХреА "рд╕рдЯреАрдХ" рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЛ рд╕реНрдкрд┐рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рддреНрд░реБрдЯрд┐ "рдХрднреА рдирд╣реАрдВ" рдкреНрд░рдХрдЯ рд╣реЛрддреА рд╣реИред рдореИрдВ рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ рдХреЛ рдЪрд╛рд░реЛрдВ рдУрд░ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдФрд░ рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдЙрдЪреНрдЪ рдпрд╛рддрд╛рдпрд╛рдд рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред
{[рддреНрд░реБрдЯрд┐: рд╕реЙрдХреЗрдЯ рд╣реИрдВрдЧ рдЕрдк] рдХреЛрдб: 'ECONNRESET'}ред

рдпрд╣ рдПрдХ рдЖрдВрддрд░рд╛рдпрд┐рдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд╢реБрд░реВ рд╣реБрдЖ рдЬреЛ рдореИрдВрдиреЗ рдХрдИ рджрд┐рдиреЛрдВ рдкрд╣рд▓реЗ рджреЗрдЦрд╛ рдерд╛ рдФрд░ рдирд┐рдЧрд░рд╛рдиреА рд╕реЗрд╡рд╛ рдХреЗ рдмрд╛рдж рдХрдИ рдмрд╛рд░ рдЭреВрдареА рдЪреЗрддрд╛рд╡рдиреА рджреА рдЧрдИ рдереА ..... рдФрд░ рдЙрддреНрдкрд╛рджрди рдкрд░реАрдХреНрд╖рдг рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рдмрд╛рд░ рдкрд░реАрдХреНрд╖рдг рдХреА рдПрдХ рдмрд┐рд▓реНрд▓реА рдЬреЛ 'рдЕрдиреБрд░реЛрдз' рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдореИрдВрдиреЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдпрд╣рд╛рдВ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдм рдкрд░ рдЦреЛрдЬ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЕрдм рдореИрдВрдиреЗ рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП 8 рдорд╣реАрдиреЛрдВ рдореЗрдВ рдХреЛрдИ рдХреЛрдб/рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ рдФрд░ рдореИрдВ рдЙрд▓рдЭрди рдореЗрдВ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХрд╣реАрдВ рд╕реЗ рднреА рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рддреЛ... 'рдЕрдиреБрд░реЛрдз' рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХреНрдпрд╛ рдмрджрд▓ рдЧрдпрд╛ рдЕрдЧрд░ рдореИрдВрдиреЗ рдХреЛрдИ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдирд╣реАрдВ рдмрджрд▓рд╛?

+1
рдиреЛрдб 6.9.1

рдпрд╣ рдХреЗрд╡рд▓ рдХрднреА-рдХрднреА рд╣реЛрддрд╛ рд╣реИ, рдЬрдм рдореИрдВ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реВрдВ, рдХрдИ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рддреЗрдЬреА рд╕реЗ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ ...

рд╣рдо рдиреЛрдб 4 рдФрд░ рдиреЛрдб 6 рдХреЗ рд╕рд╛рде рднреА рдЗрд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдиреЛрдб0.12 рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВред

рджреЗрд╢реА https.request рдореБрджреНрджреЗ рдореЗрдВ рдЗрд╕реА рддрд░рд╣ рдХреА
рдпрд╣рд╛рдБ рдкрд░ рдФрд░ рджреЗрдЦреЗрдВ,

рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЬреЛрдбрд╝реЗрдВ рд╡рд┐рдХрд▓реНрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ (рдареАрдХ) рдХрд░реЗрдЧрд╛,

agentOptions: {
  ciphers: 'DES-CBC3-SHA'
}

рдореИрдВ рдкрдХрдбрд╝рд╛ рдЧрдпрд╛ рдФрд░ рдкреВрд░реА рджреЛрдкрд╣рд░ рдЗрд╕реЗ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ ... рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХреА рдХрдИ рдкрд░рддреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЬрдЯрд┐рд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдерд╛: is this DNS issue? -> no way it's DNS -> definitely DNS -> no it's not
рдЬрдм рддрдХ рдореИрдВрдиреЗ @fractalf рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рджреЗрдЦрд╛, рдФрд░ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдпреЗ рд╕рдм рдХреЗрд╡рд▓ IIS6 рдкрд░ https . рдХреЗ рд╕рд╛рде рд╣реЛрд╕реНрдЯ рдХреА рдЧрдИ рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реБрдЖ рд╣реИ

рдХреЛрдИ рднрд╛рдЧреНрдп рдирд╣реАрдВред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд▓рд┐рдП рд╕рд┐рдлрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рдореЗрд░реЗ рдХрд╛рдо рдирд╣реАрдВ рдЖрдпрд╛ред
рдПрдЬреЗрдВрдЯ рд╡рд┐рдХрд▓реНрдк: {
рд╕рд┐рдлрд░: 'рдбреЗрд╕-рд╕реАрдмреАрд╕реА3-рдПрд╕рдПрдЪрдП'
}

@aganapan рдЖрдк рдХрд┐рд╕ рдпреВрдЖрд░рдПрд▓ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣реЗ рдереЗ? рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдХреЗрд╡рд▓ IIS6 + TLS1.0 рдкрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ рдХреЛ рдареАрдХ рдХрд░реЗрдЧрд╛ред рдРрд╕реЗ рдЕрдиреНрдп рдореБрджреНрджреЗ рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕рдорд╛рди рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╣реЛрддрд╛ рд╣реИред

рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред рдореИрдВрдиреЗ рдПрдирдЧреНрд░реЛрдХ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдФрд░ рд░реЙ рдЕрдиреБрд░реЛрдз рдХреЛ рджреЗрдЦрд╛ред рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдореЗрдВ рдПрдХ e2808b рдЧреИрд░-рдореБрджреНрд░рдг рдпреЛрдЧреНрдп рд╡рд░реНрдг рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред рд╢рд╛рдпрдж рдХреЙрдкреА/рдкреЗрд╕реНрдЯ рдХрд░реЗрдВред рдореИрдВрдиреЗ рдЙрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░ encodeURIComponent() рдХрд┐рдпрд╛ рдЬреЛ рдпреВрдЖрд░рдЖрдИ рднрд╛рдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреА рд╣реИред

рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред

  • рдиреЛрдб V6.9.5
  • рдЕрдиреБрд░реЛрдз V2.69.0

@danielkhan рдореИрдВрдиреЗ encodeURIComponent рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ;

// this is request
{
    "request": {
        "debugId": 5,
        "uri": "https://xxx.cdn.cn/js/information_main_27d1838a.js",
        "method": "GET",
        "headers": {
            "user-agent": "Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36",
            "host": "xxx.cdn.cn"
        }
    }
}

{
    "response": {
        "debugId": 5,
        "headers": {
            "expires": "Sat, 15 Apr 2017 11:01:16 GMT",
            "date": "Thu, 16 Mar 2017 11:01:16 GMT",
            "content-type": "application/x-javascript; charset=utf-8",
            "content-length": "49785",
            "last-modified": "Sun, 12 Mar 2017 14:30:49 GMT",
            "cache-control": "max-age=2592000",
            "access-control-allow-origin": "*",
            "accept-ranges": "bytes",
            "age": "19",
            "x-cache": "HIT from www.matocloud.com",
            "connection": "close",
            "alt-svc": "h2=\":443\""
        },
        "statusCode": 200
    }
}

Node.js 6.10.0
рдЕрдиреБрд░реЛрдз 2.72.0

рдХреБрдЫ рдмреИрдХрдПрдВрдб рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╕рдордп рд╣рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓реАред рд╣рдорд╛рд░рд╛ рдЙрддреНрдкрд╛рдж HTTPS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ рдиреЗрдЯрд╡рд░реНрдХ рдЙрдкрдХрд░рдгреЛрдВ рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИред рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ, рд╣рдо рдХрдИ HTTPS рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдХреБрдЫ POST рдФрд░ GET рдЕрдиреБрд░реЛрдз рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдЪреВрдВрдХрд┐ рд╕рдорд╕реНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╣реБрдИ рдереА, рдЗрд╕рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди HTTP рд▓рдЧрд╛рддрд╛рд░ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рдерд╛ (HTTP рд╢реАрд░реНрд╖рд▓реЗрдЦ Connection: close )ред рдРрд╕рд╛ рдХрд░рдХреЗ, рд╣рдо рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдХреЗ рдмрд╛рдж рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВ (HTTP/1.1)ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдо HTTP рд▓рдЧрд╛рддрд╛рд░ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд╛рднреЛрдВ рдХреЛ рдЦреЛ рджреЗрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рдкреНрд░рддреНрдпреЗрдХ рдЯреАрд╕реАрдкреА рдХреЗрд╡рд▓ рдПрдХ рдЕрдиреБрд░реЛрдз рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдЧрд╛ред

рдХреНрд░реЛрдо рдЗрд╕ DES-CBC3-SHA рд╕рдорд╛рдзрд╛рди рдХреЛ рд░реЛрдХ рд░рд╣рд╛ рд╣реИ

рдореЗрд░реЗ рд▓рд┐рдП, рдХрд░реНрд▓ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ред рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓ рдкрд░ рдкреНрд░реЙрдХреНрд╕реА рд╕реЗрдЯ рдХрд┐рдпрд╛ рдерд╛ред рдЬрдм рдореИрдВ рдкреНрд░реЙрдХреНрд╕реА рд╣рдЯрд╛рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рдЕрднреА рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред

{ Error: socket hang up
 at createHangUpError (_http_client.js:302:15)
 at Socket.socketOnEnd (_http_client.js:394:23)
 at emitNone (events.js:91:20)
 at Socket.emit (events.js:186:7)
 at endReadableNT (_stream_readable.js:974:12)
 at _combinedTickCallback (internal/process/next_tick.js:74:11)
 at process._tickDomainCallback (internal/process/next_tick.js:122:9) code: 'ECONNRESET' }

рдЕрдВрдд рдореЗрдВ рдпрд╣ рд░рд┐рдХреИрдкреНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рд▓рд╛ред рдореБрдЭреЗ https рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЖрдпрд╛рдд рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ред рдпрд╣рд╛рдБ рдХрд╛рд░реНрдп рдХреЛрдб рд╣реИ:

рд╡рд░ https = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('https');
var querystring = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдХреНрд╡реЗрд░реАрд╕реНрдЯреНрд░рд┐рдВрдЧ');

рд╡рд░ рдЧреБрдкреНрдд = "Your_KEY";
рд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ = RESPONSE_CODE;
рд╡рд░ рдкреЛрд╕реНрдЯрдбреЗрдЯрд╛ = "рдЧреБрдкреНрдд =" + рдЧреБрдкреНрдд + "рдФрд░" + "рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ =" + рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛;

// рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдкреЛрд╕реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдмрдирд╛рдПрдВ
var post_data = querystring.stringify({
'рд╕рдВрдХрд▓рди_рд╕реНрддрд░': 'ADVANCED_OPTIMIZATIONS',
'рдЖрдЙрдЯрдкреБрдЯ_рдлреЙрд░реНрдореИрдЯ': 'рдЬреЗрд╕рди',
'output_info': 'рд╕рдВрдХрд▓рд┐рдд_рдХреЛрдб',
'рдЪреЗрддрд╛рд╡рдиреА_рд╕реНрддрд░': 'QUIET',
'js_code': рдкреЛрд╕реНрдЯрдбреЗрдЯрд╛
});

рд╡рд░ рд╡рд┐рдХрд▓реНрдк = {
рд╣реЛрд╕реНрдЯрдирд╛рдо: ' www.google.com ',
рдмрдВрджрд░рдЧрд╛рд╣: 443,
рдкрде: '/ рд░рд┐рдХреИрдкреНрдЪрд╛/рдПрдкреАрдЖрдИ/рд╕рд╛рдЗрдЯ рд╕рддреНрдпрд╛рдкрди',
рд╡рд┐рдзрд┐: 'рдкреЛрд╕реНрдЯ',
рд╢реАрд░реНрд╖рд▓реЗрдЦ: {
'рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░': 'рдПрдкреНрд▓рд┐рдХреЗрд╢рди/x-www-form-urlencoded'
// 'рд╕рд╛рдордЧреНрд░реА-рдПрдиреНрдХреЛрдбрд┐рдВрдЧ': 'рдЧрдЬрд╝рд┐рдк',
// 'рдХрдиреЗрдХреНрд╢рди': 'рдХрд░реАрдм'
},
рдПрдЬреЗрдВрдЯ рд╡рд┐рдХрд▓реНрдк: {
рд╕рд┐рдлрд░: 'рдбреЗрд╕-рд╕реАрдмреАрд╕реА3-рдПрд╕рдПрдЪрдП'
}
};
рд╡рд░ рдЕрдиреБрд░реЛрдз = https.request (рд╡рд┐рдХрд▓реНрдк, рд╕рдорд╛рд░реЛрд╣ (рд░реЗрд╕) {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ ('рд╕реНрдерд┐рддрд┐:' + res.statusCode);
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ ('рд╣реЗрдбрд░:' + JSON.stringify (res.headers));
res.setEncoding ('utf8');
res.on ('рдбреЗрдЯрд╛', рдлрд╝рдВрдХреНрд╢рди (рдмреЙрдбреА) {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ ('рдмреЙрдбреА:' + рдмреЙрдбреА);
});
});
req.on ('рддреНрд░реБрдЯрд┐', рдлрд╝рдВрдХреНрд╢рди (рдИ) {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ ('рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛:' + рдИ.рд╕рдВрджреЗрд╢);
});
// рд╢рд░реАрд░ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд▓рд┐рдЦреЗрдВ
рд░рд┐рдХ.рд░рд╛рдЗрдЯ (рдкреЛрд╕реНрдЯрдбрд╛рдЯрд╛);
рдЕрдиреБрд░реЛрдз рдЕрдВрдд ();

рдиреЛрдЯ: рдЗрд╕реЗ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд░рд┐рдХреЙрд░реНрдб рдХрд░рдирд╛ рдЬреЛ рдЙрд╕ рд╡рд┐рд╢реЗрд╖ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп рд╢рд╛рдпрдж рдЗрд╕ рдЪрд░реНрдЪрд╛ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдПрдВрдЧреЗред

рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдКрдкрд░ рдХреА рдЕрдзрд┐рдХрд╛рдВрд╢ рдЪрд░реНрдЪрд╛ рдмрд┐рдВрджреБ рдХреЛ рдпрд╛рдж рдХрд░рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рддреНрд░реБрдЯрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдЯ рдХреЗ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП request рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ "рд╕рдорд╛рдзрд╛рди" рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рд╕реЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ HTTP рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рд╕реЙрдХреЗрдЯ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдСрдкрд░реЗрд╢рди рдореЗрдВ рд▓рдВрдмреА рджреЗрд░реА рдХреЗ рдХрд╛рд░рдг рдирд┐рд╖реНрдХреНрд░рд┐рдп рдЯрд╛рдЗрдордЖрдЙрдЯ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╕реЙрдХреЗрдЯ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдкрд░ ECONNRESET рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЗ рд▓рд┐рдП рднреА рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ рдФрд░ рдПрдХреНрд╕рдкреНрд░реЗрд╕/рдХреЛрдЖ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдмреИрдХрдПрдВрдб рдСрдкрд░реЗрд╢рди рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ HTTP рдЕрдиреБрд░реЛрдз рд╕реЙрдХреЗрдЯ рдкрд░ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдЯрд╛рдЗрдордЖрдЙрдЯ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП ES6 koa рд░реВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП:

javascript ctx => { .... ctx.socket.setTimeout(0); // now trigger the long lasting backend operation .... }

рдЕрдм рдореЗрд░реА рдХреНрд▓рд╛рдЗрдВрдЯ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕рдорд╕реНрдпрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдореЗрдВ рдХрд┐рд╕реА рднреА рд▓рд╛рдЗрди рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ рдЪрд▓реА рдЧрдИ рд╣реИ ...

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк url рдХреЛ рд╕рд╣реА SSL рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдпрд╛ рддреЛ https рдпрд╛ http

рдпрд╣ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рднреА рдкреНрд░реЙрдХреНрд╕реА рдореБрджреНрджрд╛ рд╣реИред http_proxy рдФрд░ https_proxy рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рдорд╕реНрдпрд╛ рджреВрд░ рд╣реЛ рдЧрдИ рд╣реИред

рдореЗрд░реА рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред

рдХрд░реНрд▓ рдХреЗ рд▓рд┐рдП:
HTTP/1.1 200 OK

рджреЗрд╢реА http рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП:
{ [Error: socket hang up] code: 'ECONNRESET' }

рдЕрдиреБрд░реЛрдз рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП:
{ [Error: socket hang up] code: 'ECONNRESET' }

рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдерд╛, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ http рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдЧрд▓рдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВред
\n рдкреНрд░рддреАрдХ рдкреНрд░рддреНрдпреЗрдХ рд╢реАрд░реНрд╖рд▓реЗрдЦ рдХреЗ рдмрд╛рдж рдерд╛, рд▓реЗрдХрд┐рди \r\n рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЕрдВрддрд┐рдо рд╢реАрд░реНрд╖рд▓реЗрдЦ рдХреЗ рдмрд╛рдж - \r\n\r\n ред

рдЬрдм рдЗрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛, рддреЛ рддреНрд░реБрдЯрд┐ рдЧрд╛рдпрдм рд╣реЛ рдЧрдИред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛ рдФрд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рд╕рдордп рдмрдЪрд╛рдПред

рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВрдиреЗ рдЕрдиреБрд░реЛрдз рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╣реЗрдбрд░ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдПрдЬреЗрдВрдЯ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рд╕рдорд╕реНрдпрд╛ рджреВрд░ рд╣реЛ рдЧрдИ рд╣реИред

рдиреЛрдб 8.x . рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛрдирд╛

+1
рдиреЛрдб 8.1.2
"рдЕрдиреБрд░реЛрдз": "=2.81.0"

{
    "method": "GET",
    "json": true,
    "uri": "http://www.bb.com/xxxxxxxxxxx",
    "baseUrl": null,
    "headers": {
        "cookie": "yyyyy",
        "user-agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Mobile/14G60"
    },
    "qs": {
        "app_version": "1.9.8.8",
        "env": "prod"
    }
}

//res
Error: socket hang up
InternalServerError: Internal Server Error

// setting
var _request = require('request').defaults({
        forever      : true,
        maxRedirects : 8
    }),

рдореБрдЭреЗ рд╡рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА, рд▓реЗрдХрд┐рди рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ, рдореЗрд░реА рд╕реНрдерд┐рддрд┐ рдЗрд╕ рддрд░рд╣ рд╣реИред
рдЯреЗрд╕реНрдЯрдПрдк -> рдПрдкреАрдЖрдИ рдП -> рдПрдкреАрдЖрдИ рдмреА
-> рдХрд╛ рдЕрд░реНрде рд╣реИ рдЕрдиреБрд░реЛрдз
рдкрд░реАрдХреНрд╖рдг рдРрдк рдХреЛ рд╣реИрдВрдЧ рдЕрдк рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ рдЬрдм рдП рдЕрдиреБрд░реЛрдз рдмреА рдмрд╣реБрдд рдзреАрд░реЗ-рдзреАрд░реЗ рдФрд░ рдЕрдВрдд рдореЗрдВ рдмреА рд╕реЗ 500 рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ (рддреНрд░реБрдЯрд┐ рдХреЛ рдПрдкреАрдЖрдИ рдП рдореЗрдВ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЯрд╛рдЗрдо рдЖрдЙрдЯ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдкреАрдЖрдИ рдП рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЗрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдмрд╣реБрдд рдзреАрдореА рдЧрддрд┐ рд╕реЗ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВред
рдЕрдм рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд▓рдЭрди рдореЗрдВ рд╣реВрдВ рдХрд┐ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдФрд░ рдЕрдиреБрд░реЛрдз рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, 500 рддреНрд░реБрдЯрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдкреАрдЖрдИ рдП рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдЕрдиреНрдп рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВред рдЯреЗрд╕реНрдЯ рдРрдк рдХреЛ рдЕрднреА рднреА рд╕реЙрдХреЗрдЯ рд╣реИрдВрдЧ рдЕрдк рддреНрд░реБрдЯрд┐ рдХреНрдпреЛрдВ рдорд┐рд▓реЗрдЧреА?

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдирд╡реАрдирддрдо рдиреЛрдб (8.6) рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдирд╡реАрдирддрдо 7.x рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде рднреА рдЪрд▓ рд░рд╣рд╛ рд╣реВрдВред рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдБ рд╣реИ рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕ рдкрд░ рд╡рд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ: https://stackoverflow.com/questions/46666079/node-js-http-get-econnreset-error-on-read

рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ!

рдиреЛрдб 6.10.0 . рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛрдирд╛

рдПрдХ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг: рдЖрдк рд╕рд╛рдордЧреНрд░реА-рд▓рдВрдмрд╛рдИ рд╢реАрд░реНрд╖рд▓реЗрдЦ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ HTTP рдмреЙрдбреА рдореЗрдВ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рднреЗрдЬ рд░рд╣реЗ рд╣реИрдВ

+1
рдиреЛрдб 8.6.0

рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП:
1-рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬреЛрдбрд╝реЗрдВ.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
2-рдЕрдкрдЧреНрд░реЗрдб рдЬрд╝реЛрди.рдЬреЗрдПрд╕ рд╕реЗ v0.7.4

рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдереА рдФрд░ рд╕рдВрдХрд▓реНрдк рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ NO_PROXY = "yourcompany.com" рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╕рдЦреНрдд рдПрд╕рдПрд╕рдПрд▓: рдЭреВрдард╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ , рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░рд╛ рдЕрдиреБрд░реЛрдз рдЖрдВрддрд░рд┐рдХ рдХрдВрдкрдиреА рдпреВрдЖрд░рдПрд▓ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рдерд╛ рдФрд░ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЖрдк рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ process.env.NO_PROXY="yourcompany.com" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

+1
рдиреЛрдб 8.8.1

at createHangUpError (_http_client.js:329:15)
at Socket.socketOnEnd (_http_client.js:421:23)
at emitNone (events.js:110:20)
at Socket.emit (events.js:207:7)
at endReadableNT (_stream_readable.js:1056:12)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickDomainCallback (internal/process/next_tick.js:218:9) code: 'ECONNRESET' }

рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдЕрдВрдд рдореЗрдВ рдореБрджреНрджрд╛ рдпрд╣ рдерд╛ рдХрд┐ рд╡реИрдЧреНрд░рд╛рдВрдЯ рдмрдВрджрд░рдЧрд╛рд╣ рдкрд░ "рдХрдмреНрдЬрд╛" рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдореЗрд░реЗ GET рдЕрдиреБрд░реЛрдз рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж FIN рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдПрдХ рдЯреАрд╕реАрдкреА рдкреИрдХреЗрдЯ рднреЗрдЬ рд░рд╣рд╛ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрднреА рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрд░реЛрдо рдФрд░ рдбрд╛рдХрд┐рдпрд╛ рдХреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдереА рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдирд╛ - рд╢рд╛рдпрдж рдЙрдирдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рдЪреАрд▓рд╛рдкрди рд╣реИ

рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдереА, GZIP рдЪрд╛рд▓реВ рдерд╛, рдХреАрдк рдЬрд╝рд┐рдВрджрд╛ рднреА рдЪрд╛рд▓реВ рдерд╛ред
рдкреИрдХреЗрдЬ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рд╕рдорд╕реНрдпрд╛ рдЧрд╛рдпрдм рд╣реЛ рдЧрдИред

const zlib = require('zlib'); // for GZIP
const http = require('http');
const https = require('https');

рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ - рд╕реНрдерд╛рдиреАрдпрд╣реЛрд╕реНрдЯ рд╕реЗ рдпреВрдЖрд░рдПрд▓ рдХреЛ рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдИрдкреА рдореЗрдВ рдмрджрд▓рдХрд░ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рд┐рд░реНрдл рдПрдХ рдПрдлрд╡рд╛рдИрдЖрдИ

рдЕрднреА рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖ рд░рд╣реА рд╣реИ.... рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИред

info:  Error: socket hang up
    at createHangUpError (_http_client.js:345:15)
    at Socket.socketOnEnd (_http_client.js:437:23)
    at emitNone (events.js:110:20)
    at Socket.emit (events.js:207:7)
    at endReadableNT (_stream_readable.js:1059:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickDomainCallback (internal/process/next_tick.js:218:9)

рдирдорд╕реНрддреЗ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЖрдкрдиреЗ рдЕрднреА рддрдХ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд░ рд▓рд┐рдпрд╛ рдерд╛, рдЬрдм рдореИрдВ рдбрд┐рдмрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ,

// Using native http
let postData = querystring.stringify(data);
...
req.write(postData);

рдпрджрд┐ рдЖрдк рд░рд┐рдореЛрдЯ рд╕рд░реНрд╡рд░ рдХреЛрдЖ (рдпрд╛ рдЕрдиреНрдп рдиреЛрдбрдЬ рд╕рд░реНрд╡рд░) рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдбреЗрдЯрд╛ {} , рддреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ postData {} , рд▓реЗрдХрд┐рди рдХреЛрдЖ рд╕рд░реНрд╡рд░ рдорд┐рд▓рддрд╛ рд╣реИ {} parser error рдлреЗрдВрдХ рджреЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрдиреБрд░реЛрдз рддреНрд░реБрдЯрд┐ рдХреЛ рдлреЗрдВрдХ рджреЗрдЧрд╛

Error: socket hang up
    at createHangUpError (_http_client.js:345:15)
    at Socket.socketOnEnd (_http_client.js:437:23)
    at emitNone (events.js:110:20)
    at Socket.emit (events.js:207:7)
    at endReadableNT (_stream_readable.js:1059:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickDomainCallback (internal/process/next_tick.js:218:9)

рддреЛ рдореИрдВрдиреЗ рдпрд╣ рдХрд┐рдпрд╛ рдерд╛: __postData = postData === '{}'? '' : рдбрд╛рдЯрд╛ рдбрд╛рд▓реЛ__

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рдореЗрд░реЗ рд▓рд┐рдП, рдЕрдиреБрд░реЛрдз рд╣реЗрдбрд░ рдореЗрдВ content-length : 0 рд╕рд╛рде POST рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреЗ рд╕рдордп рдРрд╕рд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдкрд░рд┐рдгрд╛рдо рдЙрдЪрд┐рдд рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реЗрдбрд░ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЬрдм рдореИрдВ 'GET' рдХреЛ 'POST' рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реВрдВ, рддреЛ рдЗрд╕реЗ рдареАрдХ рдХрд░реЗрдВред рд▓реЗрдХрд┐рди рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпреЛрдВ, рдореИрдВ рдЗрд╕реЗ https://cnodejs.org/topic/57a6c35282e6ea4870ecd3f2 рд╕реЗ рдареАрдХ рдХрд░рддрд╛ рд╣реВрдВ, рдХрд┐рд╕реА рдиреЗ рдХрд╣рд╛ рдХрд┐ рдпрджрд┐ рдЖрдк 'GET' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреЛрдб res.on('data', cb)

@LvChengbin рдореИрдВ рднреА POST рдЕрдиреБрд░реЛрдз рдкрд░ рдЗрд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ред рд╢рд░реАрд░ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде Content-Length : 0 рдЬрдЧрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред

рдХреЛрдИ рдореБрдЭреЗ рдмрдЪрд╛ рд▓реЛ : рдкрд░реА :

рдореБрдЭреЗ рдмреЛрдбреЗ v.8.9 . рдореЗрдВ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ

{рддреНрд░реБрдЯрд┐: рд╕реЙрдХреЗрдЯ рд╣реИрдВрдЧ рдЕрдк
createHangUpError рдкрд░ (_http_client.js:331:15)
Socket.socketOnEnd рдкрд░ (_http_client.js:423:23)
рдЙрддреНрд╕рд░реНрдЬрди рдкрд░ рдХреЛрдИ рдирд╣реАрдВ (events.js:111:20)
Socket.emit рдкрд░ (events.js:208:7)
endReadableNT рдкрд░ (_stream_readable.js:1064:12)
_combinedTickCallback рдкрд░ (рдЖрдВрддрд░рд┐рдХ/рдкреНрд░рдХреНрд░рд┐рдпрд╛/next_tick.js:138:11)
at process._tickCallback (рдЖрдВрддрд░рд┐рдХ/рдкреНрд░рдХреНрд░рд┐рдпрд╛/next_tick.js:180:9) рдХреЛрдб: 'ECONNR
рдИрдПрд╕рдИрдЯреА'}

рдореЗрд░рд╛ рдХреЛрдб рдиреАрдЪреЗ рд╣реИред

рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рджреЗрдВ = рдЖрд╡рд╢реНрдпрдХрддрд╛ ("рдЕрдиреБрд░реЛрдз");
рдкреНрд░рд╛рд░реНрдердирд╛({
url: " http://192.168.31.29 :3019/tactics/createMediaHotTotal20",
рд╡рд┐рдзрд┐: "рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ",
рдЬреЗрд╕рди: рд╕рдЪ,
рд╢реАрд░реНрд╖рд▓реЗрдЦ: {
"рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░": "рдПрдкреНрд▓рд┐рдХреЗрд╢рди/рдЬреЗрд╕рди"
},
}, рдлрд╝рдВрдХреНрд╢рди (рддреНрд░реБрдЯрд┐, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, рд╢рд░реАрд░) {
рдЕрдЧрд░ (рддреНрд░реБрдЯрд┐) {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ (рддреНрд░реБрдЯрд┐)
} рдЕрдиреНрдпрдерд╛ {
рд╕рдВрдХрд▓реНрдк (рд╢рд░реАрд░);
}
})

рд╡рд╣реА рдореБрджреНрджрд╛, рдиреЛрдб v9.5.0

const https = require("https");
const fs = require("fs");

process.env.NO_PROXY="yourcompany.com";

const options = {
  hostname: "en.wikipedia.org",
  port: 443,
  path: "/wiki/George_Washingtons",
  method: "POST",
  // ciphers: 'DES-CBC3-SHA'
};

const req = https.request(options, (res) => {
  let responseBody = "";
  console.log("Response started");
  console.log(`Server Status: ${res.statusCode} `);
  console.log(res.headers);
  res.setEncoding("UTF-8");

  res.once("data", (chunk) => {
    console.log(chunk);
  });

  res.on("data", (chunk) => {
    console.log(`--chunk-- ${chunk.length}`);
    responseBody += chunk;
  });

  res.on("end", () => {
    fs.writeFile("gw.html", responseBody, (err) => {
      if (err) throw err;
      console.log("Downloaded file");
    });
  });
});

req.on("error", (err) => {
  console.log("Request problem", err);
});
Request problem { Error: socket hang up
    at createHangUpError (_http_client.js:330:15)
    at TLSSocket.socketOnEnd (_http_client.js:423:23)
    at TLSSocket.emit (events.js:165:20)
    at endReadableNT (_stream_readable.js:1101:12)
    at process._tickCallback (internal/process/next_tick.js:152:19) code: 'ECONNRESET' }



md5-988987fef0feed585119ccc2fe5450ba



~/node-training> npm config ls -l
; cli configs
long = true
metrics-registry = "https://registry.npmjs.org/"
scope = ""
user-agent = "npm/6.1.0 node/v9.5.0 darwin x64"

; userconfig /Users/katsanos/.npmrc
strict-ssl = false

; default values
access = null
allow-same-version = false
also = null
always-auth = false
audit = true
auth-type = "legacy"
bin-links = true
browser = null
ca = null
cache = "/Users/katsanos/.npm"
cache-lock-retries = 10
cache-lock-stale = 60000
cache-lock-wait = 10000
cache-max = null
cache-min = 10
cafile = undefined
cert = null
cidr = null
color = true
commit-hooks = true
depth = null
description = true
dev = false
dry-run = false
editor = "vi"
engine-strict = false
fetch-retries = 2
fetch-retry-factor = 10
fetch-retry-maxtimeout = 60000
fetch-retry-mintimeout = 10000
force = false
git = "git"
git-tag-version = true
global = false
global-style = false
globalconfig = "/usr/local/etc/npmrc"
globalignorefile = "/usr/local/etc/npmignore"
group = 1493692218
ham-it-up = false
heading = "npm"
https-proxy = null
if-present = false
ignore-prepublish = false
ignore-scripts = false
init-author-email = ""
init-author-name = ""
init-author-url = ""
init-license = "ISC"
init-module = "/Users/katsanos/.npm-init.js"
init-version = "1.0.0"
json = false
key = null
legacy-bundling = false
link = false
local-address = undefined
loglevel = "notice"
logs-max = 10
; long = false (overridden)
maxsockets = 50
message = "%s"
; metrics-registry = null (overridden)
no-proxy = null
node-options = null
node-version = "9.5.0"
offline = false
onload-script = null
only = null
optional = true
otp = null
package-lock = true
package-lock-only = false
parseable = false
prefer-offline = false
prefer-online = false
prefix = "/usr/local"
production = false
progress = true
proxy = null
read-only = false
rebuild-bundle = true
registry = "https://registry.npmjs.org/"
rollback = true
save = true
save-bundle = false
save-dev = false
save-exact = false
save-optional = false
save-prefix = "^"
save-prod = false
scope = ""
script-shell = null
scripts-prepend-node-path = "warn-only"
searchexclude = null
searchlimit = 20
searchopts = ""
searchstaleness = 900
send-metrics = false
shell = "/usr/local/bin/fish"
shrinkwrap = true
sign-git-tag = false
sso-poll-frequency = 500
sso-type = "oauth"
; strict-ssl = true (overridden)
tag = "latest"
tag-version-prefix = "v"
timing = false
tmp = "/var/folders/kn/3cnpbcsx60n4fx_jv6sf4l80_mdkps/T"
umask = 18
unicode = true
unsafe-perm = true
usage = false
user = 356960985
; user-agent = "npm/{npm-version} node/{node-version} {platform} {arch}" (overridden)
userconfig = "/Users/katsanos/.npmrc"
version = false
versions = false
viewer = "man"

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ : рдореБрдЭреЗ req.end() рдпрд╛рдж рдЖ рд░рд╣рд╛ рдерд╛ред рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдмрдЧ рд╣реИред рдЕрдиреБрд░реЛрдз рдореЗрдВ рд╕рд╛рдордЧреНрд░реА-рд▓рдВрдмрд╛рдИ рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рдкрд░ POST рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдк рд▓реЛрдЧреЛрдВ рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ:
'рд╕рд╛рдордЧреНрд░реА-рд▓рдВрдмрд╛рдИ': Buffer.byteLength (рдбреЗрдЯрд╛) // рдкреЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА-рд▓рдВрдмрд╛рдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ Connection: keep-alive рд╣реЗрдбрд░ рд╕реЗрдЯ рдХрд░рдХреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред

рдореЗрд░рд╛ рджрд┐рди рдмрдЪрд╛рдУ!

рдореИрдВ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдЦреЛрджрддрд╛ рд╣реВрдВред
рдЬрдм рдиреЛрдбрдЬ рд╕рд░реНрд╡рд░ рдкрд░ рдкреЛрд╕реНрдЯ рднреЗрдЬрддреЗ рд╣реИрдВ рддреЛ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдкрд┐рдЫрд▓рд╛ рдореБрджреНрджрд╛ рд╣реЛрддрд╛ рд╣реИред
рдбрд┐рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдЕрдиреБрд░реЛрдз рдЦрд░рд╛рдм рд╣реЛрдиреЗ рдкрд░ рдиреЛрдбрдЬ рд╕рд┐рд░реНрдл рдХрдиреЗрдХреНрд╢рди рд▓рдЯрдХрд╛рддреЗ рд╣реИрдВред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдкрд┐рдЫрд▓рд╛ рдмрдЧ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм POST рдЕрдиреБрд░реЛрдз http.request рдореЗрдВ рдкрд╛рд╕ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╢рд░реАрд░ рдХреЛ рдЕрдВрддрд┐рдо рдкреНрд░рддреАрдХреЛрдВ рдХреЗ рдмрд┐рдирд╛ рднреЗрдЬрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рд╢рд╛рдпрдж рдпрд╣ setContentLength() рдореЗрдВ рд╕рд╛рдордЧреНрд░реА-рд▓рдВрдмрд╛рдИ рдХреЗ рдЧрд▓рдд рдЕрдиреБрдорд╛рди рдХреЗ рдХрд╛рд░рдг рдерд╛

'https' рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдмрдЬрд╛рдп 'http' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рднреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛрддрд╛ рд╣реИред

рдпрд╣ рдмрд╣реБрдд рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рд╕рд░реНрд╡рд░ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ Nodejs (рдЕрдиреБрд░реЛрдз рдпрд╛ рд╕реБрдкрд░рдПрдЬреЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рд╕реЗ POST рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдХрд░реНрд▓ рдпрд╛ рдкреЛрд╕реНрдЯрдореИрди рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдкрд╛рдЧрд▓, рдХреЙрд▓ рд╕рдлрд▓ рд╣реЛрдЧрд╛ рдпрджрд┐ рдореИрдВ рдЕрдиреБрд░реЛрдз рдХрдерди рдкрд░ рдбреАрдмрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд░реЛрдХ рджреЗрддрд╛ рд╣реВрдВ, рдФрд░ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реВрдВред

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрднреА рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ 'рд╣реЛрд╕реНрдЯ' рд╣реЗрдбрд░ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╣рдо рдПрдХ рдирдП рдиреЛрдбрдЬ ( 10.16.3 ) рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдПред рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдкрд░ рд╣рдордиреЗ keepAlive: true рд╕рд╛рде рдиреЛрдбрдЬ http рдПрдЬреЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реБрдЖ:

  • рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдлреНрдд рд╕реЙрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
  • рдЙрд╕реА рд╕рдордп рд╕рд░реНрд╡рд░ KeepAliveTimeout рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг рд╕реЙрдХреЗрдЯ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдиреЛрдбрдЬ рд╕рдВрд╕реНрдХрд░рдг 8 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИ

рд╕рдорд╛рдзрд╛рди
рдЕрдм рддрдХ рд╣рдордиреЗ рджреЛ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬреЗ рд╣реИрдВ:
1) рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ keepAliveTimeout рдХреЛ 0 рдмрд░рд╛рдмрд░ рд╕реЗрдЯ рдХрд░рдХреЗ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ
2) keepAliveTimeout рдореВрд▓реНрдп рдореЗрдВ рдореБрдлреНрдд рд╕реЙрдХреЗрдЯ рдмрдВрдж рдХрд░реЗрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ 5 рд╕реЗрдХрдВрдб)ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ http рдПрдЬреЗрдВрдЯ рдРрд╕реА рдХреНрд╖рдорддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ ( timeout рд╕реЗрдЯрд┐рдВрдЧ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ)ред рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдПрдЬреЗрдВрдЯ рдХреАрдкрд┐рдВрдЧ рд▓рд┐рдм рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛

const HttpsAgent = require('agentkeepalive').HttpsAgent;

const agent = new HttpsAgent({
    freeSocketTimeout: 4000
});
let req = http.get(options, (res) => {
    ...........
    ...........
}).on('error', function(e) {
        console.error(e);
});

рдЗрд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗред

рд╣рдо рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рд╣рдо 6.11.x рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдиреЛрдб 10 рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдорджрдж рдирд╣реАрдВ рдХреАред

рд╣рдордиреЗ рдЕрдиреБрд░реЛрдз рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ + рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╕рднреА рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдкрд░ рдХреЛрдИ рдорджрдж рдирд╣реАрдВ рдорд┐рд▓реАред

рдХреЛрдИ рдЕрдиреНрдп рд╡рд┐рдЪрд╛рд░ рдпрд╛ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ред

рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ - рд╣рдорд╛рд░реЗ рдПрдкреАрдЖрдИ рдЧреЗрдЯрд╡реЗ рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗрдЯрд┐рдВрдЧ рдереА рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣реА рдереАред рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ - рд╣рдорд╛рд░реЗ рдПрдкреАрдЖрдИ рдЧреЗрдЯрд╡реЗ рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗрдЯрд┐рдВрдЧ рдереА рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣реА рдереАред рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдирдорд╕реНрддреЗ, рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗрдЯрд┐рдВрдЧ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреА рд╣реИ

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрдм рдореИрдВ рдЪрд╛рдп-http рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдорд╛рд░реНрдЧреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдмреЗрддреБрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рддреАрди рдкрд╛рд╕ рдареАрдХ рд╣реИ !! рдореИрдВ рдкреВрд░реЗ рджрд┐рди рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

рдпрд╣рд╛рдБ рдореЗрд░рд╛ рдХреЛрдб:
```
рд▓реЙрдЧ ("рдХрд╛рд░реНрдп рдкрд░реАрдХреНрд╖рдг")
it("рдЯреЗрд╕реНрдЯ/рд▓реЙрдЧрд┐рди рд░реВрдЯреНрд╕", рдХрд┐рдпрд╛ => {
рдЪрд╛рдп
рдЕрдиреБрд░реЛрдз (рд╕рд░реНрд╡рд░)
рдкреЛрд╕реНрдЯ ("/ рд▓реЙрдЧрд┐рди")
редрднреЗрдЬрдирд╛({ })
рдЕрдВрдд (рдлрд╝рдВрдХреНрд╢рди (рдЧрд▓рддреА, рд░реЗрд╕) {
рдЙрдореНрдореАрдж (рддреНрд░реБрдЯрд┐)ред to.be.null;
рдЙрдореНрдореАрдж (res.status).to.not.equal(404);
рдЙрдореНрдореАрдж (res.body.message).to.not.be.equal("рдирд╣реАрдВ рдорд┐рд▓рд╛");
рдХрд┐рдпрд╛ рд╣реБрдЖ();
});
});

рд▓реЙрдЧ (рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рдкрд░реАрдХреНрд╖рдг: рд╕реЙрдХреЗрдЯ рд╣реИрдВрдЧ рдЕрдк)
рдпрд╣ ('рдкрд░реАрдХреНрд╖рдг / getResetCodePassword рдорд╛рд░реНрдЧ', (рдХрд┐рдпрд╛ рдЧрдпрд╛) => {
рдЪрд╛рдп
рдЕрдиреБрд░реЛрдз (рд╕рд░реНрд╡рд░)
рдкреИрдЪ ("/ getResetCodePassword")
редрднреЗрдЬрдирд╛({ })
рдЕрдВрдд ((рдЧрд▓рддреА, рд░реЗрд╕) => {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ (рдЧрд▓рддреА);
рдХрд┐рдпрд╛ рд╣реБрдЖ();
})
})

```

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

victor0402 picture victor0402  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Aranir picture Aranir  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lupo9557 picture lupo9557  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jdarling picture jdarling  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Guymestef picture Guymestef  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ