Zerbitzariaren aldeko JavaScript Node.js 17.0 bertsioa

Node.js 17.0, JavaScript-en sareko aplikazioak exekutatzeko plataforma kaleratu zen. Node.js 17.0 ohiko laguntza-adarra da, eta eguneraketak jasotzen jarraituko du 2022ko ekainera arte. Datozen egunetan, Node.js 16 adarraren egonkortzea amaituko da, LTS egoera jasoko duena eta 2024ko apirilera arte onartzen duena. Node.js 14.0-ren aurreko LTS adarraren mantentze-lanak 2023ko apirilera arte iraungo du, eta azken LTS 12.0 adarraren aurreko urtea 2022ko apirilera arte.

Hobekuntza nagusiak:

  • V8 motorra 9.5 bertsiora eguneratu da.
  • Promise konputazio asinkronoaren interfazearen erabileran oinarritutako oinarrizko APIaren aldaerak inplementatzen jarraitu da. Aurretik eskainitako Timers Promises eta Streams Promises APIez gain, Node.js 17.0-k Readline Promise APIa aurkezten du datuak lerroz lerro irakurtzeko readline modulua erabiliz. inportatu * readline gisa 'nodo:readline/promises'-tik; inportatu { stdin sarrera gisa, stdout irteera gisa } 'prozesutik'; const rl = readline.createInterface ({ sarrera, irteera }); const erantzuna = await rl.question('Zer iruditzen zaizu Node.js?'); console.log('Eskerrik asko zure iritzi baliotsuagatik: ${erantzuna}'); rl.close();
  • Emandako OpenSSL liburutegia 3.0 bertsiora eguneratu da (quictls/openssl fork bat erabiltzen da QUIC protokoloaren euskarria gaituta).
  • Node.js bertsioa aplikazioa amaitzea eragiten duten akats larrien kasuan ateratzen diren pila-arrastoetan bistaratzeko gaitu.

Gainera, Node.js-en egungo adarretan (CVE-2021-22959, CVE-2021-22960) bi ahultasun ezabatzea aipa dezakegu, "HTTP Request Smuggling" (HRS) erasoak egitea ahalbidetzen dutenak. utz iezaguzu frontend eta backend-aren artean hari berean prozesatutako beste erabiltzaileen eskaeren edukietan sartzeko (adibidez, JavaScript kode gaiztoa beste erabiltzaile baten saioan txerta daiteke). Xehetasunak geroago ezagutaraziko dira, baina oraingoz bakarrik dakigu arazoak HTTP goiburuko izenaren eta bi puntuen arteko zuriuneak gaizki maneiatzearengatik sortzen direla, bai eta transmisioan erabiltzen den parametro-blokean orga-itzuleraren eta lerroaren jarioaren karaktereen manipulazio desberdina ere. eskaeraren gorputza zatitan "zatituta" moduan "

Gogorarazteko, Node.js plataforma erabil daiteke bai web aplikazioen zerbitzari-aldeko euskarrirako, bai bezero- eta zerbitzari-aldeko sare-programa estandarrak sortzeko. Node.js aplikazioen funtzionaltasuna zabaltzeko, modulu bilduma handi bat prestatu da, inplementazioa dutenak barne. zerbitzariak eta HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 bezeroak, hainbat web framework-ekin integratzeko moduluak, WebSocket eta Ajax kudeatzaileak, DBMS-rako konektoreak (MySQL, PostgreSQL, SQLite, MongoDB), txantiloi-motorrak, CSS motorrak, algoritmo kriptografikoen eta baimen-sistemen inplementazioak (OAuth), XML parserrak.

Eskaera paralelo kopuru handia kudeatzeko, Node.js-k kode exekuzio asinkrono eredu bat erabiltzen du, gertaeren prozesamendu ez-blokeatzailean eta atzera-dei kudeatzaileetan oinarrituta. Konexio multiplexazio metodoen artean daude epoll, kqueue, /dev/poll eta select. Libuv liburutegia, Unix sistemetan libev-en eta IOCP-en supermultzo bat dena, konexio multiplexaziorako erabiltzen da. Windowslibeio liburutegia hari-multzo bat sortzeko erabiltzen da, eta c-ares integratuta dago DNS kontsultak blokeatzailerik gabeko moduan egiteko. Blokeatzaile sistemaren dei guztiak hari-multzoaren barruan exekutatzen dira eta gero, seinaleen kudeatzaileak bezala, emaitzak izenik gabeko hodi baten bidez itzultzen dituzte. JavaScript exekuzioa Google-ren V8 motorrak eskaintzen du (Microsoftek Node.js-ren aldaera bat ere garatzen ari da Chakra-Core motorrarekin).

Funtsean, Node.js Perl AnyEvent, Ruby Event Machine, Python Twisted esparruen eta Tcl gertaeren inplementazioaren antzekoa da, baina Node.js-en gertaeren begizta garatzaileari ezkutatuta dago eta exekutatzen ari den web aplikazio batean gertaeren kudeaketaren antza du. nabigatzailean. Node.js aplikazioak idaztean, gertaerak gidatutako programazioaren berezitasunak kontuan hartu behar dituzu, adibidez, "var result = db.query("select..");" egin beharrean. lana amaitu eta ondorengo emaitzak prozesatzeko zain egonda, Node.js-ek exekuzio asinkronoaren printzipioa erabiltzen du, hau da. kodea "db.query("hautatu..", funtzioa (emaitza) {emaitza prozesatzea});, eta bertan kontrola berehala pasako da beste kode batera, eta kontsultaren emaitza datuak iristen diren heinean prozesatu egingo da.

Iturria: opennet.ru

Erosi hosting fidagarria DDoS babesa duten guneetarako, VPS VDS zerbitzariak 🔥 Erosi webguneentzako ostatu fidagarria DDoS babesarekin, VPS VDS zerbitzariak | ProHoster