Nodejs. Клієнти і сервери.
Відео: Node.js: Створення сервера
Всім привіт! У цій статті ми трохи поговоримо про те, що таке сервер в NodeJS.
Це вступна стаття, тому що в майбутньому ми самі будемо розробляти свій власний сервер на NodeJS.
Відео: Веб-додаток на Node.js # 0: Створення сервера
Щоб написати свій сервер, ми спочатку повинні зрозуміти, що це таке, як ми отримуємо файли з інтернету і як ми їх туди завантажуємо. Тобто, кажучи іншими словами, ми повинні зрозуміти, як відбувається спілкування між клієнтом і сервером.
Припустимо, ви використовуєте який-небудь браузер, наприклад, Google Chrome, заходите на сайт і просите у нього якісь дані. Що відбувається в цей момент? На даному етапі клієнт (браузер) надсилає запит серверу, він його обробляє і відправляє клієнту відповідь. Але як вони між собою спілкуються?
Відео: Ехо-сервер на Node.JS
Для спілкування клієнти і сервери використовують протоколи. протокол - це набір правил для спілкування, які повинні дотримуватися обидві сторони при взаємодії один з одним. Найпростіший приклад з життя - це спілкування двох іноземців. Один з них, припустимо, говорить по французьки, а інший - по німецьки. Якщо кожен з них при спілкуванні буде говорити на своїй мові, то, швидше за все, вони не зможуть один одного зрозуміти. Однак є спільна мова - англійська, який вони обидва знають, і, якщо вони будуть спілкуватися на ньому, то у них вийде нормальна розмова.
Ви вже, напевно, знаєте, що кожен комп`ютер може бути визначено по своєму унікальному IP адресою. Якщо ми хочемо встановити спілкування між двома комп`ютерами, то клієнт спочатку повинен підключитися до IP адресою сервера. Він повинен відкрити, так званий, сокет між ними. По суті, сокет - це просто канал зв`язку, по якому може бути послана якась інформація. Але інформація може бути структурована по різних протоколах, наприклад, по HTTP і FTP. З нашим попереднім прикладом з життя це виглядає так: і німець, і француз знають англійську та іспанську мови, але нам потрібно вибрати, якою мовою вони будуть говорити, а який структурований іншим чином. Це все залежить від того, які дані ми хочемо відправляти. FTP служить для передачі файлів, а HTTP - для сайтів.
Отже, коли ми визначилися, який протокол нам потрібен, припустимо, HTTP, інформація відправляється по сокету між двома комп`ютерами через протокол TCP. Хоча дані і можуть бути структуровані різним спосіб (по HTTP або FTP), Вони потім відправляються з використанням протоколу TCP. TCP розбиває дані на маленькі шматочки (пакети) і відправляє їх по сокету.
Весь цей функціонал вже вбудований в комп`ютери, а NodeJS дає нам можливість отримати доступ до цього функціоналу, щоб відкрити з`єднання між двома комп`ютерами і обмінюватися між ними інформацією. Якщо ми запустимо NodeJS на сервері, то зможемо вказати йому, яку інформацію ми хочемо відправляти клієнтам, коли вони роблять якийсь запит, і це саме те, чим ми будемо займатися в наступній статті. Ми будемо створювати сервер і відправляти відповіді клієнтам (браузерам).
Відео: Node.js + Websocket протокол
Але перед цим ми повинні зробити ще одну річ, і це порти. Коли ми відправляємо запит серверу, як ми можемо дізнатися, що саме NodeJS прийняв його, а не яка-небудь інша програма, що працює на цьому ж комп`ютері? А вся справа тут якраз-таки в портах. Кожна програма на комп`ютері працює на якомусь своєму конкретний порт, тому, якщо ми вкажемо правильний IP адреса і потрібний нам порт, то можемо бути впевнені, що запит буде оброблений саме тією програмою, якою ми і хочемо.
Отже, а на цьому сьогодні все. Дякую за увагу!
- Nodejs. Як створити сервер.
- Nodejs. Що таке npm.
- Що таке сокет в php
- Що таке long-polling, websockets, sse і comet
- Nodejs. Що таке query strings.
- Nodejs. Як відправити дані в форматі json.
- Nodejs. Як зчитувати дані з потоку.
- Nodejs. Що таке pipe ().
- Nodejs. Як записувати дані в потік.
- Nodejs. Що таке middleware і статичні файли.
- Що таке html5 websockets?
- Nodejs. Движок v8.
- Nodejs. Установка платформи.
- Nodejs. Параметри маршрутизації в express.
- Nodejs. Пакет nodemon.
- Nodejs. Створення та видалення директорій.
- Nodejs. Модулі.
- Nodejs. Глобальний об`єкт.
- Nodejs. Template engine. Частина 1.
- Nodejs. Запис і читання файлів.
- Nodejs. Потоковий висновок html сторінки.