В этом посте вы поймете, как работает веб-стек, определяя такие темы, как база данных, DNS-запрос, TCP/IP и т. д.

Когда мы выходим в Интернет, мы никогда не спрашиваем себя, как это работает? Как получить доступ к веб-страницам? Мы только ищем, находим и используем их, даже не зная верхушки айсберга.

DNS-запрос.

Чтобы понять, что такое DNS, мы сначала должны определить его как транслятор IP-адресов.

Что происходит, когда мы ищем в нашем браузере «holbertonschool.com», так это то, что он ищет в своем кеше, и если он не может его найти, он ищет в системе доменных имен IP-адрес, принадлежащий домену, который мы ищем.

TCP/IP.

Чтобы определить TCP / IP, мы могли бы сказать, что это набор сетевых протоколов, которые обеспечивают передачу данных в Интернете.

Протокол управления передачей (TCP):

TCP заботится о создании соединений между ними и гарантирует, что данные доставляются без ошибок и в порядке доставки.

Интернет-протокол (IP):

IP быстрее и эффективнее создает блоки данных для отправки и получения, всегда создавая лучший маршрут, это влияет на гарантию прибытия в пункт назначения.

Брандмауэр.

Чтобы определить брандмауэр, мы могли бы сказать, что это программное обеспечение, которое устанавливает правила о том, что хорошо и что плохо в сети (вход и выход разрешены). Поэтому важно иметь брандмауэр на наших серверах, чтобы избежать хакерских атак.

HTTPS/SSL.

Эта часть очень важна, так как это безопасность нашей информации.

HTTPS расшифровывается как «Безопасный протокол передачи гипертекста» и является безопасной версией HTTP. Запросы и ответы HTTPS шифруются, что гарантирует пользователям защиту от кражи или использования их данных третьими лицами.

SSL означает Secure Sockets Layer, сертификат должен быть выдан доверенным центром сертификации, и когда веб-сайт имеет этот сертификат, мы можем увидеть небольшой значок замка рядом с именем веб-сайта в строке поиска.

Балансировщик нагрузки.

При постоянном трафике запросов на сервере разместить их на сервере практически невозможно, для этого используется балансировщик нагрузки для распределения запросов по разным серверам, что также позволяет избежать атак на один сервер.

Чтобы определить балансировщик нагрузки, мы можем сказать, что это программное обеспечение, которое распределяет запросы между несколькими серверами в соответствии с алгоритмом балансировки нагрузки.

Балансировщиком нагрузки, который мы могли бы использовать, был бы HAproxy, который является очень известным балансировщиком нагрузки, в этом программном обеспечении мы можем использовать различные алгоритмы, такие как циклический, взвешенный циклический и т. д.

Веб сервер.

Чтобы определить веб-сервер, мы можем сказать, что это программа, которая предлагает статический контент, такой как простые HTML-страницы, изображения или текстовые файлы; Примером веб-сервера может быть Nginx, Apache, IIS и другие.

По сути, веб-сервер отвечает за определение местоположения статического контента, соответствующего запрошенному адресу, и его предоставление в качестве ответа HTTP или HTTPS.

Сервер приложений.

Сервер приложений — это программа, отвечающая за управление приложениями, взаимодействие с базами данных и управление пользовательской информацией, среди прочего. Они работают за веб-серверами и смогут обслуживать динамические приложения, используя статическое содержимое веб-сервера.

Это позволяет вам создавать интерактивные страницы с пользователем, такие как сохранение информации, запуск собственного сеанса и многое другое.

База данных.

И последнее, и не менее важное в нашем путешествии, мы приходим к базам данных, которые для определения можно сказать, что это организованный набор структурированной информации или данных, которые обычно хранятся в электронном виде в компьютерной системе; для управления этим мы будем использовать СУБД, которая представляет собой программу, которая позволит нам взаимодействовать с нашей базой данных для добавления и изменения данных.

Основными методами моделирования являются реляционные и нереляционные. Реляционные базы данных можно рассматривать как набор таблиц, представляющих объекты, где каждый столбец является атрибутом, а каждая строка — экземпляром этого объекта, а нереляционные базы данных могут иметь множество форм, поскольку вставляемые в них данные не обязательно должны следовать конкретная схема. Их также называют базами данных NoSQL.