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

ЧТО ТАКОЕ URL?

URL (унифицированный указатель ресурсов) используется для уникальной идентификации ресурса в Интернете. URL-адрес имеет следующий синтаксис:

protocol://hostname:port/path-and-file-name

В URL есть 4 части:

Протокол. Протокол уровня приложения, используемый клиентом и сервером, HTTP, FTP и telnet.

Имя хоста: доменное имя DNS (www.holbertonschool.com) или IP-адрес (xxx.xxx.xxx.xxx) сервера.

Порт. Номер TCP-порта, на котором сервер прослушивает входящие запросы от клиентов.

Путь и имя файла: имя и расположение запрошенного ресурса в базовом каталоге документов сервера.

Мы объясним все это.

Для целей этого блога я буду называть свой URL-адрес https://www.holbertonschool.com. Что произойдет, если вы наберете в браузере https://www.holbertonschool.com и нажмете Enter? На самом деле есть много вещей, которые должны произойти между тем моментом, когда вы вводите URL-адрес, и тем, что вы действительно видите эту страницу.

Первое, что должен сделать ваш веб-браузер, это попытаться понять, что это значит. Компьютеры и браузеры обмениваются данными через IP-адреса, чтобы идентифицировать друг друга.

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

TCP/IP

TCP/IP (протокол управления передачей/Интернет-протокол) – это набор транспортных протоколов и сетевого уровня для связи компьютеров друг с другом по сети.

TCP состоит из 2 протоколов: TCP и UDP (пакет пользовательских дейтаграмм). TCP надежен, каждый пакет имеет порядковый номер и ожидается подтверждение. Пакет будет передан повторно, если он не получен получателем. Доставка пакетов гарантируется в TCP. UDP не гарантирует доставку пакетов и поэтому ненадежен. Однако UDP имеет меньшую нагрузку на сеть и может использоваться для таких приложений, как потоковое видео и аудио, где надежность не имеет решающего значения.

TCP мультиплексирует приложения внутри IP-машины. Для каждого IP-компьютера TCP поддерживает (мультиплексирует) до 65536 портов (или сокетов) с номером порта от 0 до 65535. Приложение, такое как HTTP или FTP, запускается (или прослушивает) на определенном номере порта для входящих запросов. Порты с 0 по 1023 предварительно назначены популярным протоколам: HTTP на 80, FTP на 21, Telnet на 23, SMTP на 25, NNTP на 119 и DNS на 53. Порт 1024 и выше доступен для пользователей.

Соединение между ними устанавливается с помощью процесса, называемого «трехстороннее рукопожатие TCP». Это трехэтапный процесс, в котором клиент и сервер обмениваются сообщениями SYN (синхронизация) и сообщением ACK (подтверждение) для установления соединения. Во-первых, ваш компьютер (клиентский компьютер) отправляет сообщение SYN на сервер (компьютер, расположенный в другом месте) через Интернет с запросом на новое соединение. Если сервер (машина, расположенная в другом месте) имеет открытый порт, вы можете начать новое соединение, оно сообщит об этом клиентскому серверу (вашему компьютеру), отправив сообщение ACK с сообщением SYN в пакете SYN / ACK. Сервер клиента (ваш компьютер) получает сообщение и подтверждает его, отправляя сообщение ACK. А вот так устанавливается TCP-соединение для передачи данных.

HOST X = ваш компьютер

СЕРВЕР = машина, расположенная в другом месте

IP (Интернет-протокол) — это протокол сетевого уровня, который отвечает за сетевую маршрутизацию и адресацию. В IP-сети каждой машине назначается уникальный IP-адрес (например, 165.1.2.3), это нечто похожее на ваш домашний адрес. Программное обеспечение IP отвечает за маршрутизацию сообщения от IP-адреса источника к IP-адресу назначения. В IPv4 (версия IP 4) IP-адрес состоит из 4 байтов, каждый из которых идет от 0 до 255, разделенных точками, что называется четырехточечной формой. Эта схема нумерации поддерживает адреса до 4G в сети. Последняя версия IPv6 (версия IP 6) поддерживает больше адресов.

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

Теперь нам нужно знать, как данные передаются между компьютерами.

Здесь нам нужно что-то еще, и это протокол HTTPS/SSL.

HTTPS/SSL

HTTP (протокол передачи гипертекста) — это клиент-серверный протокол прикладного уровня. Обычно он работает через соединение TCP/IP (HTTP не обязательно должен работать на TCP/IP. Он предполагает только надежный транспорт. Можно использовать любые транспортные протоколы, обеспечивающие такие гарантии).

Существует два типа протокола: HTTP и HTTPS.

HTTPS — то же самое, но с добавлением «Безопасного». Эти два протокола используются для одного и того же — передачи данных.

Основное различие между ними заключается в способе передачи данных. Если данные передаются с использованием HTTP, они передаются в открытом виде и доступны любому, кто перехватывает сообщение. Вместо этого протокол HTTPS использует безопасное соединение с использованием шифрования SSL, поэтому данные безопасно передаются из одного места в другое.

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

HTTP

HTTPS/SSL

Другими словами, SSL работает следующим образом:

  • Браузер вашего компьютера пытается подключиться к сайту, защищенному с помощью SSL.
  • Браузер запрашивает, чтобы веб-сервер идентифицировал себя.
  • Сервер отправляет копию вашего SSL-сертификата в браузер.
  • Браузер проверяет, заслуживает ли доверия SSL-сертификат. Если это так, он отправляет сообщение на сервер.
  • Сервер возвращает подтверждение с цифровой подписью для запуска зашифрованного сеанса SSL.
  • Зашифрованные данные распределяются между браузером и сервером.

Какие данные защищает протокол SSL?
Набор данных, защищаемых протоколом шифрования SSL, включает:

  • Регистрационная информация: имя, адрес, адрес электронной почты, номер телефона
  • Идентификационные данные: адрес электронной почты и пароль
  • Детали платежа: номер кредитной карты, банковский счет
  • Регистрационные формы
  • Документы, загруженные клиентами
  • SSL-сертификат гарантирует невозможность чтения или манипулирования сообщениями, а также то, что личная информация не попадет в чужие руки.

Теперь, когда мы узнали, как работает связь и некоторые используемые протоколы, вы должны спросить себя, как браузер делает это для доступа к URL-адресу www.holbertonschool.com. Что ж, давайте узнаем.

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

Представьте, что мы даже не можем вспомнить собственные телефонные номера; тем более IP-адрес каждого веб-сайта, который мы посещаем. Чтобы решить эту проблему, веб-браузер связывается со службой, которая вызывает службу доменных имен (DNS).

Давайте начнем!

DNS > IP-адрес

DNS (служба доменных имен) преобразует доменное имя в IP-адрес (через распределенные таблицы поиска).

Пример:

IP = 120.12.34.34 становится -›www.holbertonschool.com

служба DNS преобразует этот IP-адрес в домен человеческого языка, например www.holbertonschool.com, и этот домен сохраняется на сервере, расположенном в любой точке мира.

DNS похож на телефонную книгу, где он определяет IP-адрес, связанный с URL-адресом. DNS использует различные методы для поиска IP-адреса. Первым делом проверяется кеш браузера, если вы заходили на сайт ранее, IP-адрес будет храниться здесь какое-то время. Проще говоря, это похоже на проверку вашего телефона на наличие телефонного номера в недавних звонках. Если его там нет, то он проверит кеш ОС, если его там нет, то вам не повезло — шучу. Затем DNS запросит помощь у резолвера. Сервер распознавателя — это не что иное, как ваш интернет-провайдер (ISP). Если его здесь нет, то преобразователь отправит запрос на корневой сервер. Корневые серверы находятся на вершине иерархии DNS. Корневой сервер знает, где находится сервер домена верхнего уровня (TLD) .COM. Если сервер TLD не знает IP-адрес, он направит запрос на авторитетные серверы имен. Они несут ответственность за знание всего о доменном имени. Это последний шаг для распознавателя (ISP) для получения IP-адреса, связанного с доменом имени. Пройдя все эти шаги, резолвер сохраняет его в своем кеше, чтобы в следующий раз выдать адрес, не проходя через все это. Я знаю, что это было много шагов, чтобы следовать. Возможно, эта диаграмма поможет вам лучше понять это:

Когда пользователь вводит домен www.holbertonschool.com в своем браузере, первым шагом является поиск IP-адреса, связанного с доменом, после того, как он будет найден, браузер уже знает, где находится сервер и где он может отправить запрос содержимого веб-сайта по протоколу HTTPS.

ПРИМЕР ПОЛУЧЕНИЯ ЗАПРОСА HTTPS

GET /home HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.holbertonschool.com
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

БРАНДМАУЭР

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

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

Правила межсетевых экранов основаны на:

-IP-адреса
- Доменные имена
- Протоколы
- Программы
- Порты
- Ключевые слова

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

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

Наш запрос был принят брандмауэром, и теперь следующий шаг:

БАЛАНСИРОВЩИК НАГРУЗКИ

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

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

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

ВЕБ СЕРВЕР

Говоря о процессе запроса HTTPS, который мы выполнили до сих пор, мы прошли через брандмауэр и балансировщик нагрузки, следующим шагом является связь с веб-сервером.

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

На веб-сервере размещаются веб-страницы, что делает возможной Всемирную паутину (www). Каждый веб-сайт имеет один или несколько веб-серверов. Основная функция веб-сервера — хранить, обрабатывать и доставлять веб-страницы клиентам.

Это конец процесса запроса, который начался из нашего браузера.

Теперь веб-сервер будет отвечать за преобразование этого запроса в ответ, но что это значит?

Веб-сервер будет искать свои файлы «html», которые соответствуют запросу.

ПРИМЕР ОТВЕТА HTTPS

HTTP/1.1 200 OK
Server: nginx/1.4.6 (Ubuntu)
Date: Tue, 28 Feb 2017 01:52:04 GMT
Content-Type: text/html
Content-Length: 3000
Last-Modified: Tue, 21 Feb 2017 07:21:32 GMT
ETag: "58abea7c-1e"
X-Served-By: 03-web-01
Accept-Ranges: bytes

Эта форма создается, а затем снова упаковывается для отправки Пользователю, сделавшему запрос.

В нашем браузере мы увидим это:

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

Здесь на помощь приходит сервер приложений.

СЕРВЕР ПРИЛОЖЕНИЙ И БАЗА ДАННЫХ

С другой стороны, когда ваш веб-сайт является высокофункциональным или интерактивным, где требуется имя пользователя и пароль, запрос перенаправляется на сервер приложений, который является другой серверной операционной системой или может также размещаться на том же сервере, что и веб-сервер. . В отличие от веб-сервера, серверы приложений не обязательно должны быть частью всемирной паутины. Его основная цель — размещение приложений. Например, когда вы вводите www.holbertonschool.com и хотите зарегистрироваться или хотите войти в систему со своим именем пользователя и паролем, вы будете перенаправлены на сервер приложений, где вы храните информацию для входа в свою базу данных. В то же время, если на домашней странице вашей школы в Холбертоне есть ежедневные темы, они будут сохранены и сгенерированы базой данных.

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



https://www.cloudflare.com/learning/ddos/glossary/open-systems-interconnection-model-osi/