{"id":101702,"date":"2021-10-19T22:23:37","date_gmt":"2021-10-19T20:23:37","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-servernoj-javascript-platformy-node-js-17-0"},"modified":"2021-10-19T22:23:37","modified_gmt":"2021-10-19T20:23:37","slug":"vypusk-servernoj-javascript-platformy-node-js-17-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-17-0","title":{"rendered":"Rilascio della piattaforma server JavaScript Node.js 17.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>\u00c8 stata rilasciata la versione 17.0 di Node.js, la piattaforma per l'esecuzione di applicazioni web in JavaScript. Node.js 17.0 appartiene al ramo con supporto comune, il cui aggiornamento sar\u00e0 disponibile fino a giugno 2022. Nei prossimi giorni sar\u00e0 completata la stabilizzazione del ramo Node.js 16, che ricever\u00e0 lo stato LTS e sar\u00e0 supportato fino ad aprile 2024. Il supporto per il precedente ramo LTS Node.js 14.0 durer\u00e0 fino ad aprile 2023, mentre il ramo LTS precedente 12.0 fino ad aprile 2022.       <\/p>\n<p>Principali miglioramenti:  <\/p>\n<ul>\n<li class=\"l\"> Il motore V8 \u00e8 stato aggiornato alla versione 9.5.\n<li class=\"l\"> \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e API, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 Promise. \u0412 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a \u0440\u0430\u043d\u0435\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c API Timers Promises \u0438 Streams Promises \u0432 Node.js 17.0 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d API Readline Promise \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u043e\u0433\u043e \u0447\u0442\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043c\u043e\u0434\u0443\u043b\u044f readline.       import * as readline from &#8216;node:readline\/promises&#8217;;     import { stdin as input, stdout as output } from &#8216;process&#8217;;       const rl = readline.createInterface({ input, output });       const answer = await rl.question(&#8216;What do you think of Node.js?&#8217;);       console.log(&#8216;Thank you for your valuable feedback: ${answer}&#8217;);       rl.close();\n<li class=\"l\"> La libreria OpenSSL fornita \u00e8 stata aggiornata alla versione 3.0 (utilizzando un fork di quictls\/openssl con supporto per il protocollo QUIC attivato).\n<li class=\"l\"> \u00c8 stata garantita l'uscita della versione di Node.js nei tracciamenti dello stack, visualizzati in caso di errori fatali che portano alla chiusura dell'applicazione.      <\/ul>\n<p>In aggiunta, si possono menzionare la risoluzione di due vulnerabilit\u00e0 nelle versioni attuali di Node.js (CVE-2021-22959, CVE-2021-22960), che consentono attacchi della classe 'HTTP Request Smuggling' (HRS). Questi attacchi permettono, attraverso l'invio di richieste client appositamente formattate, di infiltrarsi nel contenuto delle richieste di altri utenti, gestite nello stesso flusso tra il front-end e il back-end (ad esempio, \u00e8 possibile iniettare codice JavaScript dannoso nella sessione di un altro utente). I dettagli saranno rivelati in seguito, ma \u00e8 gi\u00e0 noto che i problemi sono causati da una gestione errata degli spazi tra il nome dell'intestazione HTTP e i due punti, cos\u00ec come da una diversa gestione dei caratteri di ritorno a capo e di nuova riga nel blocco di parametri usato per inviare il corpo della richiesta in modalit\u00e0 'chunked'.        <\/p>\n<p>Ricordiamo che la piattaforma Node.js pu\u00f2 essere utilizzata sia per supportare il funzionamento di applicazioni web server, sia per creare normali programmi client e server. Per ampliare le funzionalit\u00e0 delle applicazioni Node.js \u00e8 stata preparata una vasta collezione di moduli, in cui \u00e8 possibile trovare moduli con implementazioni.  <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/it\/server\/\"   title=\"server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1614\">server<\/a> e client HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduli per integrazioni con diversi framework web, gestori WebSocket e Ajax, connettori a DBMS (MySQL, PostgreSQL, SQLite, MongoDB), motori di templating, motori CSS, implementazioni di algoritmi crittografici e sistemi di autorizzazione (OAuth), parser XML.    <\/p>\n<p> Per garantire l'elaborazione di un gran numero di richieste parallele, Node.js utilizza un modello di esecuzione del codice asincrono, basato sulla gestione degli eventi in modalit\u00e0 non bloccante e sulla definizione di gestori di callback. Come metodi di multiplexing delle connessioni, sono supportati metodi come epoll, kqueue, \\\/dev\\\/poll e select. Per il multiplexing delle connessioni viene utilizzata la libreria libuv, che \u00e8 un'astrazione sopra libev nei sistemi Unix e sopra IOCP in Windows. Per creare un pool di thread viene utilizzata la libreria libeio, mentre per eseguire richieste DNS in modalit\u00e0 non bloccante \u00e8 integrato c-ares. Tutti le chiamate di sistema che causano bloccaggi vengono eseguite all'interno del pool di thread e quindi, come i gestori di segnali, trasmettono il risultato del loro lavoro indietro attraverso un canale non nominato (pipe). L'esecuzione del codice JavaScript \u00e8 garantita dall'utilizzo del motore V8 sviluppato da Google (in aggiunta Microsoft sviluppa una variante di Node.js con il motore Chakra-Core).        <\/p>\n<p>Essenzialmente, Node.js \u00e8 simile ai framework Perl AnyEvent, Ruby Event Machine, Python Twisted e all'implementazione degli eventi in Tcl, ma il ciclo di elaborazione degli eventi (event loop) in Node.js \u00e8 nascosto allo sviluppatore e ricorda l'elaborazione degli eventi in un'applicazione web che funziona nel browser. Quando si scrivono applicazioni per node.js, \u00e8 necessario considerare la specificit\u00e0 della programmazione orientata agli eventi, ad esempio, invece di eseguire \u00abvar result = db.query('select..');\u00bb aspettando che l'operazione si completi e poi elaborando i risultati, in Node.js si utilizza il principio dell'esecuzione asincrona, cio\u00e8 il codice viene trasformato in \u00abdb.query('select..', function (result) {elaborazione del risultato});\u00bb, dove il controllo passer\u00e0 immediatamente al codice successivo e il risultato della query sar\u00e0 elaborato man mano che i dati arrivano.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=55997\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Node.js 17.0, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 JavaScript. Node.js 17.0 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u0432\u0435\u0442\u043a\u0435 \u0441 \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u0441\u0440\u043e\u043a\u043e\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u0434\u043e \u0438\u044e\u043d\u044f 2022 \u0433\u043e\u0434\u0430. \u0412 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0435 \u0434\u043d\u0438 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430 \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u0435\u0442\u043a\u0438 Node.js 16, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 LTS \u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043e \u0430\u043f\u0440\u0435\u043b\u044f 2024 \u0433\u043e\u0434\u0430. \u0421\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 LTS-\u0432\u0435\u0442\u043a\u0438 Node.js 14.0 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-101702","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Node.js 17.0, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 JavaScript. Node.js 17.0 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u0432\u0435\u0442\u043a\u0435 \u0441 \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u0441\u0440\u043e\u043a\u043e\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u0434\u043e \u0438\u044e\u043d\u044f 2022 \u0433\u043e\u0434\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-17-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439 JavaScript-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Node.js 17.0 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Node.js 17.0, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 JavaScript. Node.js 17.0 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u0432\u0435\u0442\u043a\u0435 \u0441 \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u0441\u0440\u043e\u043a\u043e\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u0434\u043e \u0438\u044e\u043d\u044f 2022 \u0433\u043e\u0434\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-17-0\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2021-10-19T20:23:37+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-10-19T20:23:37+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Rilascio della piattaforma JavaScript server Node.js 17.0 | ProHoster","description":"\u00c8 stata rilasciata la versione 17.0 di Node.js, la piattaforma per l'esecuzione di applicazioni web in JavaScript. Node.js 17.0 appartiene al ramo con supporto comune, il cui aggiornamento sar\u00e0 disponibile fino a giugno 2022.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-17-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439 JavaScript-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Node.js 17.0 | ProHoster","og:description":"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Node.js 17.0, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 JavaScript. Node.js 17.0 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u0432\u0435\u0442\u043a\u0435 \u0441 \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u0441\u0440\u043e\u043a\u043e\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u0434\u043e \u0438\u044e\u043d\u044f 2022 \u0433\u043e\u0434\u0430.","og:url":"https:\/\/prohoster.info\/it\/blog\/news\/vypusk-servernoj-javascript-platformy-node-js-17-0","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2021-10-19T20:23:37+00:00","article:modified_time":"2021-10-19T20:23:37+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"101702","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-10-19 20:23:42","updated":"2026-02-09 16:51:04","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/101702","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=101702"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/101702\/revisions"}],"predecessor-version":[{"id":158858,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/101702\/revisions\/158858"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=101702"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=101702"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=101702"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}