ಸರ್ವರ್-ಸೈಡ್ JavaScript Node.js 17.0 ಬಿಡುಗಡೆ

Node.js 17.0, ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ನೆಟ್‌ವರ್ಕ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಚಲಾಯಿಸಲು ವೇದಿಕೆಯನ್ನು ಬಿಡುಗಡೆ ಮಾಡಲಾಗಿದೆ. Node.js 17.0 ಒಂದು ಸಾಮಾನ್ಯ ಬೆಂಬಲ ಶಾಖೆಯಾಗಿದ್ದು ಅದು ಜೂನ್ 2022 ರವರೆಗೆ ನವೀಕರಣಗಳನ್ನು ಸ್ವೀಕರಿಸುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತದೆ. ಮುಂಬರುವ ದಿನಗಳಲ್ಲಿ, Node.js 16 ಶಾಖೆಯ ಸ್ಥಿರೀಕರಣವು ಪೂರ್ಣಗೊಳ್ಳುತ್ತದೆ, ಇದು LTS ಸ್ಥಿತಿಯನ್ನು ಪಡೆಯುತ್ತದೆ ಮತ್ತು ಏಪ್ರಿಲ್ 2024 ರವರೆಗೆ ಬೆಂಬಲಿತವಾಗಿರುತ್ತದೆ. Node.js 14.0 ನ ಹಿಂದಿನ LTS ಶಾಖೆಯ ನಿರ್ವಹಣೆಯು ಏಪ್ರಿಲ್ 2023 ರವರೆಗೆ ಇರುತ್ತದೆ ಮತ್ತು ಕೊನೆಯ LTS ಶಾಖೆಯ ಹಿಂದಿನ ವರ್ಷ 12.0 ಏಪ್ರಿಲ್ 2022 ರವರೆಗೆ ಇರುತ್ತದೆ.

ಮುಖ್ಯ ಸುಧಾರಣೆಗಳು:

  • V8 ಎಂಜಿನ್ ಅನ್ನು ಆವೃತ್ತಿ 9.5 ಗೆ ನವೀಕರಿಸಲಾಗಿದೆ.
  • ಪ್ರಾಮಿಸ್ ಅಸಮಕಾಲಿಕ ಕಂಪ್ಯೂಟಿಂಗ್ ಇಂಟರ್‌ಫೇಸ್‌ನ ಬಳಕೆಯ ಆಧಾರದ ಮೇಲೆ ಮೂಲ API ಯ ರೂಪಾಂತರಗಳ ಅನುಷ್ಠಾನವು ಮುಂದುವರೆದಿದೆ. ಹಿಂದೆ ನೀಡಲಾದ ಟೈಮರ್‌ಗಳು ಪ್ರಾಮಿಸಸ್ ಮತ್ತು ಸ್ಟ್ರೀಮ್ಸ್ ಪ್ರಾಮಿಸಸ್ API ಗಳ ಜೊತೆಗೆ, Node.js 17.0 ರೀಡ್‌ಲೈನ್ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಸಾಲಿನ ಮೂಲಕ ಡೇಟಾವನ್ನು ಓದಲು ರೀಡ್‌ಲೈನ್ ಪ್ರಾಮಿಸ್ API ಅನ್ನು ಪರಿಚಯಿಸುತ್ತದೆ. ಆಮದು * ಅನ್ನು 'ನೋಡ್:ರೀಡ್‌ಲೈನ್/ಪ್ರಾಮಿಸಸ್' ನಿಂದ ರೀಡ್‌ಲೈನ್‌ನಂತೆ; 'ಪ್ರಕ್ರಿಯೆ'ಯಿಂದ {stdin ಅನ್ನು ಇನ್‌ಪುಟ್ ಆಗಿ, stdout ಅನ್ನು ಔಟ್‌ಪುಟ್ ಆಗಿ ಆಮದು ಮಾಡಿಕೊಳ್ಳಿ; const rl = readline.createInterface({ಇನ್ಪುಟ್, ಔಟ್ಪುಟ್}); const answer = rl.question ನಿರೀಕ್ಷಿಸಿ ('ನೋಡ್.ಜೆಎಸ್ ಬಗ್ಗೆ ನಿಮ್ಮ ಅಭಿಪ್ರಾಯವೇನು?'); console.log('ನಿಮ್ಮ ಅಮೂಲ್ಯ ಪ್ರತಿಕ್ರಿಯೆಗಾಗಿ ಧನ್ಯವಾದಗಳು: ${ಉತ್ತರ}'); rl.close();
  • ಒದಗಿಸಲಾದ OpenSSL ಲೈಬ್ರರಿಯನ್ನು ಆವೃತ್ತಿ 3.0 ಗೆ ನವೀಕರಿಸಲಾಗಿದೆ (QUIC ಪ್ರೋಟೋಕಾಲ್ ಬೆಂಬಲವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದ quictls/openssl ಫೋರ್ಕ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ).
  • ಅಪ್ಲಿಕೇಶನ್ ಅಂತ್ಯಗೊಳ್ಳಲು ಕಾರಣವಾಗುವ ಮಾರಣಾಂತಿಕ ದೋಷಗಳ ಸಂದರ್ಭದಲ್ಲಿ ಔಟ್‌ಪುಟ್ ಆಗಿರುವ ಸ್ಟಾಕ್ ಟ್ರೇಸ್‌ಗಳಲ್ಲಿ ಪ್ರದರ್ಶಿಸಲು Node.js ಆವೃತ್ತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ.

ಹೆಚ್ಚುವರಿಯಾಗಿ, Node.js (CVE-2021-22959, CVE-2021-22960) ನ ಪ್ರಸ್ತುತ ಶಾಖೆಗಳಲ್ಲಿ ಎರಡು ದುರ್ಬಲತೆಗಳ ನಿರ್ಮೂಲನೆಯನ್ನು ನಾವು ಉಲ್ಲೇಖಿಸಬಹುದು, ಇದು "HTTP ವಿನಂತಿ ಕಳ್ಳಸಾಗಣೆ" (HRS) ದಾಳಿಗಳನ್ನು ಕೈಗೊಳ್ಳಲು ಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ, ಅದು ಮುಂಭಾಗ ಮತ್ತು ಬ್ಯಾಕೆಂಡ್ ನಡುವೆ ಒಂದೇ ಥ್ರೆಡ್‌ನಲ್ಲಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾದ ಇತರ ಬಳಕೆದಾರರ ವಿನಂತಿಗಳ ವಿಷಯಗಳನ್ನು ಸೇರಿಸಲು ನಮಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡಿ (ಉದಾಹರಣೆಗೆ, ದುರುದ್ದೇಶಪೂರಿತ JavaScript ಕೋಡ್ ಅನ್ನು ಮತ್ತೊಂದು ಬಳಕೆದಾರರ ಸೆಶನ್‌ಗೆ ಸೇರಿಸಬಹುದು). ವಿವರಗಳನ್ನು ನಂತರ ಬಹಿರಂಗಪಡಿಸಲಾಗುವುದು, ಆದರೆ HTTP ಹೆಡರ್ ಹೆಸರು ಮತ್ತು ಕೊಲೊನ್ ನಡುವಿನ ಸ್ಥಳಗಳ ತಪ್ಪಾದ ನಿರ್ವಹಣೆ, ಹಾಗೆಯೇ ಕ್ಯಾರೇಜ್ ರಿಟರ್ನ್ ಮತ್ತು ಲೈನ್ ಫೀಡ್ ಕ್ಯಾರೆಕ್ಟರ್‌ಗಳನ್ನು ರವಾನಿಸುವಾಗ ಬಳಸುವ ಪ್ಯಾರಾಮೀಟರ್ ಬ್ಲಾಕ್‌ನಲ್ಲಿನ ವಿಭಿನ್ನ ನಿರ್ವಹಣೆಯಿಂದ ಸಮಸ್ಯೆಗಳು ಉಂಟಾಗುತ್ತವೆ ಎಂದು ನಮಗೆ ತಿಳಿದಿದೆ. "ಚಂಕ್ಡ್" ಮೋಡ್‌ನಲ್ಲಿ ಭಾಗಗಳಲ್ಲಿ ವಿನಂತಿಯ ದೇಹ "

Node.js ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಅನ್ನು ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಸರ್ವರ್ ನಿರ್ವಹಣೆಗಾಗಿ ಮತ್ತು ಸಾಮಾನ್ಯ ಕ್ಲೈಂಟ್ ಮತ್ತು ಸರ್ವರ್ ನೆಟ್‌ವರ್ಕ್ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ರಚಿಸಲು ಎರಡೂ ಬಳಸಬಹುದು ಎಂಬುದನ್ನು ನೆನಪಿಸಿಕೊಳ್ಳಿ. Node.js ಗಾಗಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಕಾರ್ಯವನ್ನು ವಿಸ್ತರಿಸಲು, ಮಾಡ್ಯೂಲ್‌ಗಳ ದೊಡ್ಡ ಸಂಗ್ರಹವನ್ನು ಸಿದ್ಧಪಡಿಸಲಾಗಿದೆ, ಇದರಲ್ಲಿ ನೀವು HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 ಸರ್ವರ್‌ಗಳು ಮತ್ತು ಕ್ಲೈಂಟ್‌ಗಳು, ಏಕೀಕರಣಕ್ಕಾಗಿ ಮಾಡ್ಯೂಲ್‌ಗಳ ಅನುಷ್ಠಾನದೊಂದಿಗೆ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಕಾಣಬಹುದು. ವಿವಿಧ ವೆಬ್ ಫ್ರೇಮ್‌ವರ್ಕ್‌ಗಳು, ವೆಬ್‌ಸಾಕೆಟ್ ಮತ್ತು ಅಜಾಕ್ಸ್ ಹ್ಯಾಂಡ್ಲರ್‌ಗಳು, DBMS ಕನೆಕ್ಟರ್‌ಗಳು (MySQL, PostgreSQL, SQLite, MongoDB), ಟೆಂಪ್ಲೇಟಿಂಗ್ ಎಂಜಿನ್‌ಗಳು, CSS ಎಂಜಿನ್‌ಗಳು, ಕ್ರಿಪ್ಟೋ ಅಲ್ಗಾರಿದಮ್‌ಗಳ ಅಳವಡಿಕೆಗಳು ಮತ್ತು ದೃಢೀಕರಣ ವ್ಯವಸ್ಥೆಗಳು (OAuth), XML ಪಾರ್ಸರ್‌ಗಳು.

ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಸಮಾನಾಂತರ ವಿನಂತಿಗಳ ಸಂಸ್ಕರಣೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು, Node.js ನಿರ್ಬಂಧಿಸದ ಈವೆಂಟ್ ನಿರ್ವಹಣೆ ಮತ್ತು ಕಾಲ್‌ಬ್ಯಾಕ್ ಹ್ಯಾಂಡ್ಲರ್‌ಗಳ ವ್ಯಾಖ್ಯಾನವನ್ನು ಆಧರಿಸಿ ಅಸಮಕಾಲಿಕ ಕೋಡ್ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಮಾದರಿಯನ್ನು ಬಳಸುತ್ತದೆ. ಮಲ್ಟಿಪ್ಲೆಕ್ಸಿಂಗ್ ಸಂಪರ್ಕಗಳಿಗೆ ಬೆಂಬಲಿತ ವಿಧಾನಗಳೆಂದರೆ epoll, kqueue, /dev/poll, ಮತ್ತು ಆಯ್ಕೆ. ಸಂಪರ್ಕ ಮಲ್ಟಿಪ್ಲೆಕ್ಸಿಂಗ್‌ಗಾಗಿ, libuv ಲೈಬ್ರರಿಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ಇದು Unix ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿ libev ಮತ್ತು Windows ನಲ್ಲಿ IOCP ಗಾಗಿ ಆಡ್-ಆನ್ ಆಗಿದೆ. ಥ್ರೆಡ್ ಪೂಲ್ ರಚಿಸಲು libeio ಲೈಬ್ರರಿಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ಮತ್ತು ತಡೆರಹಿತ ಕ್ರಮದಲ್ಲಿ DNS ಪ್ರಶ್ನೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು c-ares ಅನ್ನು ಸಂಯೋಜಿಸಲಾಗಿದೆ. ನಿರ್ಬಂಧಿಸುವಿಕೆಯನ್ನು ಉಂಟುಮಾಡುವ ಎಲ್ಲಾ ಸಿಸ್ಟಮ್ ಕರೆಗಳನ್ನು ಥ್ರೆಡ್ ಪೂಲ್ ಒಳಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ನಂತರ, ಸಿಗ್ನಲ್ ಹ್ಯಾಂಡ್ಲರ್ಗಳಂತೆ, ಹೆಸರಿಸದ ಪೈಪ್ (ಪೈಪ್) ಮೂಲಕ ತಮ್ಮ ಕೆಲಸದ ಫಲಿತಾಂಶವನ್ನು ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ. ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಕೋಡ್‌ನ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು Google ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ V8 ಎಂಜಿನ್‌ನ ಬಳಕೆಯ ಮೂಲಕ ಒದಗಿಸಲಾಗಿದೆ (ಇದಲ್ಲದೆ, ಚಕ್ರ-ಕೋರ್ ಎಂಜಿನ್‌ನೊಂದಿಗೆ ಮೈಕ್ರೋಸಾಫ್ಟ್ Node.js ನ ಆವೃತ್ತಿಯನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತಿದೆ).

ಅದರ ಮಧ್ಯಭಾಗದಲ್ಲಿ, Node.js Perl AnyEvent, Ruby Event Machine, ಪೈಥಾನ್ ಟ್ವಿಸ್ಟೆಡ್ ಫ್ರೇಮ್‌ವರ್ಕ್‌ಗಳು ಮತ್ತು Tcl ಈವೆಂಟ್ ಅನುಷ್ಠಾನಕ್ಕೆ ಹೋಲುತ್ತದೆ, ಆದರೆ Node.js ನಲ್ಲಿನ ಈವೆಂಟ್ ಲೂಪ್ ಅನ್ನು ಡೆವಲಪರ್‌ನಿಂದ ಮರೆಮಾಡಲಾಗಿದೆ ಮತ್ತು ಚಾಲನೆಯಲ್ಲಿರುವ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿ ಈವೆಂಟ್ ನಿರ್ವಹಣೆಯನ್ನು ಹೋಲುತ್ತದೆ. ಬ್ರೌಸರ್‌ನಲ್ಲಿ. node.js ಗಾಗಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಬರೆಯುವಾಗ, ನೀವು ಈವೆಂಟ್-ಚಾಲಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್‌ನ ನಿಶ್ಚಿತಗಳನ್ನು ಪರಿಗಣಿಸಬೇಕು, ಉದಾಹರಣೆಗೆ, "var result = db.query("select..");" ಕೆಲಸದ ಪೂರ್ಣಗೊಳ್ಳುವಿಕೆ ಮತ್ತು ಫಲಿತಾಂಶಗಳ ನಂತರದ ಪ್ರಕ್ರಿಯೆಗಾಗಿ ಕಾಯುತ್ತಿರುವಾಗ, Node.js ಅಸಮಕಾಲಿಕ ಮರಣದಂಡನೆಯ ತತ್ವವನ್ನು ಬಳಸುತ್ತದೆ, ಅಂದರೆ. ಕೋಡ್ ಅನ್ನು "db.query("ಆಯ್ಕೆ..", ಫಂಕ್ಷನ್ (ಫಲಿತಾಂಶ) {ಫಲಿತಾಂಶ ಸಂಸ್ಕರಣೆ});" ಆಗಿ ಮಾರ್ಪಡಿಸಲಾಗಿದೆ, ಇದರಲ್ಲಿ ನಿಯಂತ್ರಣವು ತಕ್ಷಣವೇ ಮುಂದಿನ ಕೋಡ್‌ಗೆ ಹಾದುಹೋಗುತ್ತದೆ ಮತ್ತು ಡೇಟಾ ಬಂದಂತೆ ಪ್ರಶ್ನೆಯ ಫಲಿತಾಂಶವನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾಗುತ್ತದೆ.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ