рд╕рд░реНрд╡реНрд╣рд░-рд╕рд╛рдЗрдб JavaScript рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо Node.js 19.0 рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ

Node.js 19.0, JavaScript рдордзреНрдпреЗ рдиреЗрдЯрд╡рд░реНрдХ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо, рд░рд┐рд▓реАрдЬ рдХрд░рдгреНрдпрд╛рдд рдЖрд▓рд╛. Node.js 19 рд╣реА рдирд┐рдпрдорд┐рдд рд╕рдкреЛрд░реНрдЯ рд╢рд╛рдЦрд╛ рдЖрд╣реЗ рдЬреА рдЬреВрди 2023 рдкрд░реНрдпрдВрдд рдЕрдкрдбреЗрдЯ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ. рдпреЗрддреНрдпрд╛ рдХрд╛рд╣реА рджрд┐рд╡рд╕рд╛рдВрдд, Node.js 18 рд╢рд╛рдЦреЗрдЪреЗ рд╕реНрдерд┐рд░реАрдХрд░рдг рдкреВрд░реНрдг рдХреЗрд▓реЗ рдЬрд╛рдИрд▓, рдЬреНрдпрд╛рд▓рд╛ LTS рджрд░реНрдЬрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдИрд▓ рдЖрдгрд┐ рдПрдкреНрд░рд┐рд▓ 2025 рдкрд░реНрдпрдВрдд рд╕рдорд░реНрдерд┐рдд рдЕрд╕реЗрд▓. Node.js 16.0 рдЪреНрдпрд╛ рдорд╛рдЧреАрд▓ LTS рд╢рд╛рдЦреЗрдЪреА рджреЗрдЦрднрд╛рд▓ рд╕рдкреНрдЯреЗрдВрдмрд░ 2023 рдкрд░реНрдпрдВрдд рдЖрдгрд┐ рд╢реЗрд╡рдЯрдЪреНрдпрд╛ LTS рд╢рд╛рдЦрд╛ 14.0 рдЪреНрдпрд╛ рдЖрдзреАрдЪреЗ рд╡рд░реНрд╖ рдПрдкреНрд░рд┐рд▓ 2023 рдкрд░реНрдпрдВрдд рдЪрд╛рд▓реЗрд▓.

рдкреНрд░рдореБрдЦ рд╕реБрдзрд╛рд░рдгрд╛:

  • V8 рдЗрдВрдЬрд┐рди рдЖрд╡реГрддреНрддреА 10.7 рдордзреНрдпреЗ рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ, рдЬреЗ Chromium 107 рдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ. Node.js 18 рд╢рд╛рдЦреЗрдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд рдЗрдВрдЬрд┐рдирдордзреАрд▓ рдмрджрд▓рд╛рдВрдордзреНрдпреЗ, Intl.NumberFormat API рдЪреНрдпрд╛ рддрд┐рд╕рд▒реНрдпрд╛ рдЖрд╡реГрддреНрддреАрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд▓рдХреНрд╖рд╛рдд рдпреЗрддреЗ, рдЬреЗ рдирд╡реАрди рдлрдВрдХреНрд╢рдиреНрд╕ formatRange рдЬреЛрдбрддреЗ. (), formatRangeToParts() рдЖрдгрд┐ SelectRange(), рд╕рдВрдЪрд╛рдВрдЪреЗ рдЧрдЯреАрдХрд░рдг, рдЧреЛрд▓рд╛рдХрд╛рд░ рдЖрдгрд┐ рдЕрдЪреВрдХрддрд╛ рд╕реЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдирд╡реАрди рдкрд░реНрдпрд╛рдп, рджрд╢рд╛рдВрд╢ рд╕рдВрдЦреНрдпрд╛ рдореНрд╣рдгреВрди рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕рдЪрд╛ рдЕрд░реНрде рд▓рд╛рд╡рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛. рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ llhttp 8.1.0 рдЖрдгрд┐ npm 8.19.2 рджреЗрдЦреАрд▓ рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗрдд.
  • рд╡реЙрдЪ рдореЛрдбрдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╣ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ "рдиреЛрдб -рд╡реЙрдЪ" рдХрдорд╛рдВрдб рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реА рдЖрд╣реЗ рдЬреА рдЖрдпрд╛рдд рдХреЗрд▓реЗрд▓реА рдлрд╛рдЗрд▓ рдмрджрд▓рд▓реНрдпрд╛рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреБрдиреНрд╣рд╛ рд╕реБрд░реВ рд╣реЛрдИрд▓ рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рддреЗ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, "node -watch index.js" рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдЭрд╛рд▓реНрдпрд╛рд╕, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реНрдг рд╣реЛрдИрд▓. index.js рдмрджрд▓рд▓реНрдпрд╛рд╡рд░ рдЖрдкреЛрдЖрдк рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рд╣реЛрддреЗ).
  • рд╕рд░реНрд╡ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ HTTP/HTTPS рдХрдиреЗрдХреНрд╢рдирд╕рд╛рдареА, HTTP 1.1 Keep-Alive рдореЗрдХреЕрдирд┐рдЭрдорд╕рд╛рдареА рд╕рдорд░реНрдерди рд╕рдХреНрд╖рдо рдХреЗрд▓реЗ рдЖрд╣реЗ, рдЬреЗ рд╕рдорд╛рди рдХрдиреЗрдХреНрд╢рдирдордзреАрд▓ рдЕрдиреЗрдХ HTTP рд╡рд┐рдирдВрддреНрдпрд╛рдВрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реЗрд│реЗрд╕рд╛рдареА рдХрдиреЗрдХреНрд╢рди рдЙрдШрдбреЗ рдареЗрд╡рддреЗ. Keep-Alive рджреНрд╡рд╛рд░реЗ рдереНрд░реБрдкреБрдЯ рдЖрдгрд┐ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░рдгреНрдпрд╛рдЪреА рдЕрдкреЗрдХреНрд╖рд╛ рдЖрд╣реЗ. рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, рдХрдиреЗрдХреНрд╢рди рдУрдкрди рдЯрд╛рдЗрдордЖрдЙрдЯ 5 рд╕реЗрдХрдВрджрд╛рдВрд╡рд░ рд╕реЗрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗ. рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░рддрд┐рд╕рд╛рджрд╛рдВрдордзреНрдпреЗ Keep-Alive HTTP рд╣реЗрдбрд░ рдкрд╛рд░реНрд╕ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди HTTP рдХреНрд▓рд╛рдпрдВрдЯ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ, рдЖрдгрд┐ Keep-Alive рд╡рд╛рдкрд░реВрди рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХреНрд▓рд╛рдпрдВрдЯрдЪреЗ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдбрд┐рд╕реНрдХрдиреЗрдХреНрд╢рди Node.js HTTP рд╕рд░реНрд╡реНрд╣рд░ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ.
  • Ed25519, Ed448, X25519 рдЖрдгрд┐ X448 рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рд╡рд╛рдкрд░реВрди рдлрдВрдХреНрд╢рдиреНрд╕ рд╡рдЧрд│рддрд╛ WebCrypto API рд╕реНрдерд┐рд░ рд╢реНрд░реЗрдгреАрдордзреНрдпреЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ. рд╡реЗрдмрдХреНрд░рд┐рдкреНрдЯреЛ рдореЙрдбреНрдпреВрд▓рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рдЖрддрд╛ globalThis.crypto рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛ рдХрд┐рдВрд╡рд╛ ('node:crypto').webcrypto рд╡рд╛рдкрд░реБ рд╢рдХрддрд╛.
  • DTrace, SystemTap рдЖрдгрд┐ ETW (Windows рд╕рд╛рдареА рдЗрд╡реНрд╣реЗрдВрдЯ рдЯреНрд░реЗрд╕рд┐рдВрдЧ) рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдЯреВрд▓реНрд╕рд╕рд╛рдареА рд╕рдорд░реНрдерди рдХрд╛рдвреВрди рдЯрд╛рдХрдгреНрдпрд╛рдд рдЖрд▓реЗ рдЖрд╣реЗ, рдЬреНрдпрд╛рдЪреА рджреЗрдЦрднрд╛рд▓ рдпреЛрдЧреНрдп рд╕рдорд░реНрдерди рдпреЛрдЬрдиреЗрдЪреНрдпрд╛ рдЕрдиреБрдкрд╕реНрдерд┐рддреАрдд рддреЗ рдЕрджреНрдпрдпрд╛рд╡рдд рдареЗрд╡рдгреНрдпрд╛рдЪреНрдпрд╛ рдЬрдЯрд┐рд▓рддреЗрдореБрд│реЗ рдЕрдпреЛрдЧреНрдп рдорд╛рдирд▓реЗ рдЧреЗрд▓реЗ.

Node.js рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рд╡реЗрдм рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪреНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░-рд╕рд╛рдЗрдб рд╕рдорд░реНрдердирд╛рд╕рд╛рдареА рдЖрдгрд┐ рд╕рд╛рдорд╛рдиреНрдп рдХреНрд▓рд╛рдпрдВрдЯ рдЖрдгрд┐ рд╕рд░реНрд╡реНрд╣рд░ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рджреЛрдиреНрд╣реА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. Node.js рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡рд╛рдврд╡рдгреНрдпрд╛рд╕рд╛рдареА, рдореЙрдбреНрдпреВрд▓реНрд╕рдЪрд╛ рдПрдХ рдореЛрдард╛ рд╕рдВрдЧреНрд░рд╣ рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рддреБрдореНрд╣рд╛рд▓рд╛ HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 рд╕рд░реНрд╡реНрд╣рд░ рдЖрдгрд┐ рдХреНрд▓рд╛рдпрдВрдЯрдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╣ рдореЙрдбреНрдпреВрд▓реНрд╕, рдПрдХрддреНрд░реАрдХрд░рдгрд╛рд╕рд╛рдареА рдореЙрдбреНрдпреВрд▓реНрд╕ рдорд┐рд│реВ рд╢рдХрддрд╛рдд. рд╡рд┐рд╡рд┐рдз рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХрд╕рд╣, WebSocket рдЖрдгрд┐ Ajax рд╣рдБрдбрд▓рд░реНрд╕, DBMS (MySQL, PostgreSQL, SQLite, MongoDB), рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрд┐рди, CSS рдЗрдВрдЬрд┐рди, рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдЖрдгрд┐ рдЕрдзрд┐рдХреГрддрддрд╛ рдкреНрд░рдгрд╛рд▓реА (OAuth), XML рдкрд╛рд░реНрд╕рд░рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА.

рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рд╕рдорд╛рдВрддрд░ рд╡рд┐рдирдВрддреНрдпрд╛ рд╣рд╛рддрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА, Node.js рдиреЙрди-рдмреНрд▓реЙрдХрд┐рдВрдЧ рдЗрд╡реНрд╣реЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЖрдгрд┐ рдХреЙрд▓рдмреЕрдХ рд╣рдБрдбрд▓рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдгреНрдпрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЕрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЛрдб рдПрдХреНрдЭрд┐рдХреНрдпреВрд╢рди рдореЙрдбреЗрд▓ рд╡рд╛рдкрд░рддреЗ. рдорд▓реНрдЯрд┐рдкреНрд▓реЗрдХреНрд╕рд┐рдВрдЧ рдХрдиреЗрдХреНрд╢рдирд╕рд╛рдареА рд╕рдорд░реНрдерд┐рдд рдкрджреНрдзрддреАрдВрдордзреНрдпреЗ epoll, kqueue, /dev/poll рдЖрдгрд┐ рд╕рд┐рд▓реЗрдХреНрдЯ рдпрд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рд╣реЛрддреЛ. рдХрдиреЗрдХреНтАНрд╢рди рдорд▓реНрдЯрд┐рдкреНрд▓реЗрдХреНтАНрд╕рд┐рдВрдЧрд╕рд╛рдареА, libuv рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ, рдЬреА рдпреБрдирд┐рдХреНрд╕ рд╕рд┐рд╕реНтАНрдЯрдорд╡рд░ libev рдЖрдгрд┐ Windows рд╡рд░реАрд▓ IOCP рд╡рд░ рдЕреЕрдб-рдСрди рдЖрд╣реЗ. libeio рд▓рд╛рдпрдмреНрд░рд░реАрдЪрд╛ рд╡рд╛рдкрд░ рдереНрд░реЗрдб рдкреВрд▓ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ c-ares рдиреЙрди-рдмреНрд▓реЙрдХрд┐рдВрдЧ рдореЛрдбрдордзреНрдпреЗ DNS рдХреНрд╡реЗрд░реА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХрддреНрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рдмреНрд▓реЙрдХрд┐рдВрдЧрд▓рд╛ рдХрд╛рд░рдгреАрднреВрдд рдЕрд╕рд▓реЗрд▓реЗ рд╕рд░реНрд╡ рд╕рд┐рд╕реНрдЯреАрдо рдХреЙрд▓ рдереНрд░реЗрдб рдкреВрд▓рдордзреНрдпреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рдирдВрддрд░, рд╕рд┐рдЧреНрдирд▓ рд╣рдБрдбрд▓рд░реНрд╕рдкреНрд░рдорд╛рдгреЗ, рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдХрд╛рдорд╛рдЪрд╛ рдирд┐рдХрд╛рд▓ рдЕрдЬреНрдЮрд╛рдд рдкрд╛рдИрдкрджреНрд╡рд╛рд░реЗ рдкрд░рдд рджреЗрддрд╛рдд. Google рдиреЗ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ V8 рдЗрдВрдЬрд┐рдирдЪреНрдпрд╛ рд╡рд╛рдкрд░рд╛рджреНрд╡рд╛рд░реЗ JavaScript рдХреЛрдбрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХреЗрд▓реА рдЬрд╛рддреЗ (рдпрд╛рд╢рд┐рд╡рд╛рдп, рдорд╛рдпрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдЪрдХреНрд░-рдХреЛрд░ рдЗрдВрдЬрд┐рдирд╕рд╣ Node.js рдЪреА рдЖрд╡реГрддреНрддреА рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдд рдЖрд╣реЗ).

рддреНрдпрд╛рдЪреНрдпрд╛ рдореБрд│рд╛рдд, Node.js рд╣реЗ Perl AnyEvent, Ruby Event Machine, Python Twisted рдлреНрд░реЗрдорд╡рд░реНрдХ рдЖрдгрд┐ Tcl рдордзреАрд▓ рдЗрд╡реНрд╣реЗрдВрдЯреНрд╕рдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ Node.js рдордзреАрд▓ рдЗрд╡реНрд╣реЗрдВрдЯ рд▓реВрдк рд╡рд┐рдХрд╕рдХрд╛рдкрд╛рд╕реВрди рд▓рдкрд▓реЗрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рд╡реЗрдм рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдордзреАрд▓ рдЗрд╡реНрд╣реЗрдВрдЯ рдкреНрд░рдХреНрд░рд┐рдпреЗрд╕рд╛рд░рдЦреЗ рджрд┐рд╕рддреЗ. рдмреНрд░рд╛рдЙрдЭрд░рдордзреНрдпреЗ рдЪрд╛рд▓реВ рдЖрд╣реЗ. node.js рд╕рд╛рдареА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд▓рд┐рд╣рд┐рддрд╛рдирд╛, рдЗрд╡реНрд╣реЗрдВрдЯ-рдЪрд╛рд▓рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧрдЪреА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, тАЬvar result = db.query(тАЬselect..тАЭ);тАЭ рдХрд░рдгреНрдпрд╛рдРрд╡рдЬреА. рдХрд╛рдо рдкреВрд░реНрдг рд╣реЛрдгреНрдпрд╛рдЪреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реВрди рдЖрдгрд┐ рдкрд░рд┐рдгрд╛рдорд╛рдВрдЪреНрдпрд╛ рддреНрдпрд╛рдирдВрддрд░рдЪреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрд╕рд╣, Node.js рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреЗ рддрддреНрддреНрд╡ рд╡рд╛рдкрд░рддреЗ, рдЙрджрд╛. рдХреЛрдбрдЪреЗ рд░реВрдкрд╛рдВрддрд░ тАЬdb.query(тАЬselect..тАЭ, function (result) {result processing});тАЭ рдордзреНрдпреЗ рдХреЗрд▓реЗ рдЬрд╛рддреЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рдирд┐рдпрдВрддреНрд░рдг рддрд╛рдмрдбрддреЛрдм рдкреБрдвреАрд▓ рдХреЛрдбрдХрдбреЗ рдЬрд╛рдИрд▓ рдЖрдгрд┐ рдбреЗрдЯрд╛ рдЖрд▓реНрдпрд╛рд╡рд░ рдХреНрд╡реЗрд░реА рдирд┐рдХрд╛рд▓рд╛рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реА рдЬрд╛рдИрд▓.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛