Что такое серверная веб-разработка (backend development)?

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

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

Для того чтобы стать backend-разработчиком необходимо освоить:

  • основные компоненты веб-приложения;
  • обязанности backend разработчика;
  • что такое HTTP и какая его роль в работе веб-приложений;
  • RESTful API.

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

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

Введение в Back-End разработку (основные понятия)

Давайте посмотрим, что же такое бэкэнд и какую роль он играет в веб-приложении.

Веб-приложение – это клиент-серверное приложение, в котором клиент (веб-интерфейс) запускается в веб-браузере, а серверная часть запускается на веб-сервере.

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

Back-end веб-разработка включает в себя создание «мозга» приложения, который берет на себя весь функционал веб-приложения. Эта функциональность зависит от необходимой логики и данных, которые веб-приложение должно обеспечивать. Frontend часто называют клиентской стороной (client-side), а backend – серверной стороной (server-side) веб-приложения.

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

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

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

Исследуем Backend

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

Наиболее распространенные слои веб-приложения:

  1. Уровень представления. Этот уровень относится к пользовательскому интерфейсу приложения. Пользовательский интерфейс веб-приложения включает код HTML, CSS и JavaScript, который запускается в браузере для отображения веб-страниц, составляющих интерфейс приложения, и управления их динамическим поведением при взаимодействии пользователя со страницей.
  2. Прикладной уровень. Этот слой обрабатывает логику, которая обеспечивает функционирование веб-приложения. Тут выполняются любые операции и алгоритмы, обеспечивающие работу бизнес-функций приложения. Например, если пользователь пытается запланировать возврат товара в приложении для покупок, бизнес-логика, скорее всего, проверит, что крайний срок возврата не прошел, запросит у пользователя желаемый метод возврата и обновит статус заказ. Этот тип бизнес-логики может обрабатываться на стороне клиента и на стороне сервера, но обычно обрабатывается на стороне сервера, поскольку он тесно связан с динамическими данными приложения.
  3. Уровень данных. Этот уровень хранит, организует и управляет доступом к данным приложения с использованием базы данных. Реализуется в коде на стороне сервера.

Архитектура приложения и подходы в её реализации

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

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

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

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

В последнее время все чаще применяется разработка приложений с рендерингом на стороне клиента, а обмен данными с сервером происходит при помощи API-запросов. Таким образом важно разобраться с тем, что такое RESTful web API, как работает и взаимодействует с БД.

Компоненты и их взаимодействие

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

Взаимодействие клиента и веб-сервера

Серверная часть веб-приложения называется серверной, поскольку этот код выполняется на веб-сервере.

Веб-сервер – это физический компьютер, на котором размещается ваше приложение и который доступен для пользователей по всему миру через Интернет. Как разработчик, вы можете выбрать операционную систему (Windows, Linux и т. д.), программное обеспечение веб-сервера (Apache, Nginx, IIS) и аппаратные возможности, соответствующие потребностям.

На базовом уровне веб-сервер обрабатывает запросы на получение веб-контента и передает его клиентам. Происходит это путем идентификации ресурсов, которые запрашивает клиент на основе URL, затем HTML-файл страницы и таблица стилей CSS передается клиенту и отображается браузером.

Для динамических сайтов и веб-приложений работает сервер приложений запущенный на веб-сервере, который обрабатывает бизнес-логику приложения. Эта бизнес-логика и есть тот серверный код, написанием которого занимается backend-разработчик. Код должен обеспечивать обработку запросов от клиента, обмен данными с базой данных, выполнение любых необходимых изменений или модификаций, а затем возврат результата клиенту. Код может быть написан на таких серверных языках как Python, JavaScript/Node.js, Ruby, PHP и многих других.

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

Краткое резюме

Таким образом, веб-сервер предоставляет доступ к ресурсам в Интернете, обрабатывая веб-запросы от клиентов. Он может содержать сервер приложений, который обрабатывает динамическую бизнес-логику приложения, а также подключаться к базе данных, которая соответствует уровню данных приложения. Эти два компонента, которые необходимо программировать в качестве backend-разработчика. Существует множество языков и технологий, которые вы можете использовать для каждого слоя (представление, приложение, данные) и для веб-сервера. Комбинация технологий, используемых для приложения, составляет «стек» разработки программного обеспечения. В следующих статьях я планирую рассмотреть эти компоненты более подробно.

Добавить комментарий

Ваш адрес email не будет опубликован.

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