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

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

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

Иногда вы можете услышать, что разработка внешнего интерфейса называется разработкой на стороне клиента. Наш инстинкт может заключаться в том, чтобы думать о клиенте как о человеке-посетителе или пользователе веб-сайта, но когда мы говорим о клиенте в веб-разработке, мы обычно имеем в виду не человека, запрашивающего контент. В случае посещения веб-сайта клиентом является браузер, но в других случаях клиентом может быть другое приложение, мобильное устройство или даже «умное» устройство!

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

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

Слово «сервер» может означать многое в вычислительной технике, но мы сосредоточимся конкретно на веб-серверах. Веб-сервер – это процесс, работающий на компьютере, который прослушивает входящие запросы на получение информации через Интернет и отправляет ответы. Каждый раз, когда пользователь переходит на веб-сайт в своем браузере, браузер отправляет запрос на веб-сервер этого веб-сайта. У каждого веб-сайта есть как минимум один веб-сервер. Крупная компания, такая как Facebook, имеет тысячи мощных компьютеров с веб-серверами, расположенными по всему миру, которые прослушивают запросы, но мы также можем запустить простой веб-сервер с нашего собственного компьютера!

Конкретный формат запроса (и полученного ответа) называется протоколом. Возможно, вы знакомы с протоколом, используемым для доступа к веб-сайтам: HTTP. Когда посетитель переходит на веб-сайт в своем браузере, подобно тому, как он размещает заказ на вынос, он делает HTTP-запрос для ресурсов, составляющих этот сайт.

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

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

Когда пользователь переходит на google.com, в его запросе указывается URL-адрес, но не имя файла для сегодняшнего Google Doodle. Серверная часть веб-приложения должна содержать логику для принятия решения о том, какие ресурсы отправлять. Более того, современные веб-приложения часто обслуживают конкретного пользователя, а не отправляют одни и те же файлы каждому посетителю веб-страницы. Это называется динамическим содержанием.

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

Серверные части современных веб-приложений включают в себя некую базу данных, часто более одной. Базы данных представляют собой наборы информации. Существует множество различных баз данных, но мы можем разделить их на два типа: реляционные базы данных и нереляционные базы данных (также известные как базы данных NoSQL). В то время как реляционные базы данных хранят информацию в таблицах со столбцами и строками, нереляционные базы данных могут использовать другие системы, такие как пары ключ-значение или модель хранения документов. SQL, Sструктурированный Query Lязык, представляет собой язык программирования для доступа и изменения данных, хранящихся в реляционных базах данных. . Популярные реляционные базы данных включают MySQL и PostgreSQL, а популярные базы данных NoSQL включают MongoDB и Redis.

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

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

  • Внешний интерфейс веб-сайта или приложения состоит из HTML, CSS, JavaScript и статических ресурсов, отправляемых клиенту, например веб-браузеру.
  • Веб-сервер — это процесс, работающий где-то на компьютере, который прослушивает входящие запросы на информацию через Интернет и отправляет ответы.
  • Хранение данных, доступ к ним и манипулирование ими — большая часть серверной части веб-приложения.
  • Данные хранятся в базах данных, которые могут быть реляционными базами данных или базами данных NoSQL.
  • Серверная часть веб-приложения, иногда называемая сервером приложений, выполняет такие важные задачи, как авторизация и аутентификация.
  • Серверная часть веб-приложения часто имеет веб-API, который представляет собой способ взаимодействия с данными приложения через HTTP-запросы и ответы.
  • Вместе технологии, используемые для создания клиентской и серверной части веб-приложения, известны как стек, и для создания надежной серверной части можно использовать множество различных языков и сред.