NodeJS. Клиенты и серверы.
Всем привет! В этой статье мы немного поговорим о том, что такое сервер в NodeJS.
Это вводная статья, так как в будущем мы сами будем разрабатывать свой собственный сервер на NodeJS.
Чтобы написать свой сервер, мы сначала должны понять, что это такое, как мы получаем файлы из интернета и как мы их туда загружаем. Т.е., говоря другими словами, мы должны понять, как происходит общение между клиентом и сервером.
Допустим, вы используете какой-нибудь браузер, например, Google Chrome, заходите на сайт и просите у него какие-то данные. Что происходит в этот момент? На данном этапе клиент(браузер) посылает запрос серверу, он его обрабатывает и отправляет клиенту ответ. Но как они между собой общаются?
Для общения клиенты и серверы используют протоколы. Протокол – это набор правил для общения, которые должны соблюдать обе стороны при взаимодействии друг с другом. Самый простой пример из жизни – это общение двух иностранцев. Один из них, допустим, говорит по французски, а другой – по немецки. Если каждый из них при общении будет говорить на своем языке, то, скорее всего, они не смогут друг друга понять. Однако есть общий язык – английский, который они оба знают, и, если они будут общаться на нем, то у них получится нормальный разговор.
Вы уже, наверное, знаете, что каждый компьютер может быть определен по своему уникальному IP адресу. Если мы хотим установить общение между двумя компьютерами, то клиент сначала должен подключиться к IP адресу сервера. Он должен открыть, так называемый, сокет между ними. По сути, сокет – это просто канал связи, по которому может быть послана какая-то информация. Но информация может быть структурирована по разным протоколам, например, по HTTP и FTP. С нашим предыдущим примером из жизни это выглядит так: и немец, и француз знают английский и испанский языки, но нам нужно выбрать, на каком языке они будут говорить, а какой структурирован другим образом. Это все зависит от того, какие данные мы хотим отправлять. FTP служит для передачи файлов, а HTTP – для сайтов.
Итак, когда мы определились, какой протокол нам нужен, допустим, HTTP, информация отправляется по сокету между двумя компьютерами через протокол TCP. Хотя данные и могут быть структурированы разным способ(по HTTP или FTP), они затем отправляются с использованием протокола TCP. TCP разбивает данные на маленькие кусочки(пакеты) и отправляет их по сокету.
Весь этот функционал уже встроен в компьютеры, а NodeJS дает нам возможность получить доступ к этому функционалу, чтобы открыть соединение между двумя компьютерами и обмениваться между ними информацией. Если мы запустим NodeJS на сервере, то сможем указать ему, какую информацию мы хотим отправлять клиентам, когда они делают какой-то запрос, и это именно то, чем мы будем заниматься в следующей статье. Мы будем создавать сервер и отправлять ответы клиентам(браузерам).
Но перед этим мы должны сделать еще одну вещь, и это порты. Когда мы отправляем запрос серверу, как мы можем узнать, что именно NodeJS принял его, а не какая-нибудь другая программа, работающая на этом же компьютере? А все дело тут как раз-таки в портах. Каждая программа на компьютере работает на каком-то своем конкретном порте, поэтому, если мы укажем правильный IP адрес и нужный нам порт, то можем быть уверены, что запрос будет обработан именно той программой, какой мы и хотим.
Итак, а на этом сегодня все. Спасибо за внимание!
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.