Серверные языки программирования что это
Серверные языки программирования
В статье Как работает сайт мы уже говорили о том, что работа веб-сервера – доставка HTML-файлов пользователям сети, работа с базами данных, вычисления, проверка пользовательского ввода, например, проверка логина и пароля. Все это делается при помощи серверных языков.
Серверные языки в веб-программировании выполняют одни и те же основные функции, отличается только стиль, скорость и используемые методы. Одновременно с развитием всемирной паутины, растет и количество серверных языков.
Ниже перечислены самые популярные серверные языки (в алфавитном порядке), о которых вы скорее всего слышали, а также связанные с ними фреймворки.
C# (произносится C-Sharp)
C # – разработка Microsoft и обычно используется для управления большими базами данных. Из-за распространенности существующего программного обеспечения Microsoft на предприятиях C# получил быстрое распространение.
Фреймворк – ASP.NET
Go – разработка Google, ориентированная на производительность.
Google делает вещи на беспрецедентном уровне масштаба, поэтому вместо того, чтобы адаптировать существующие языки к их потребностям, они решили, что им проще создать новый с учетом масштабируемости.
Фреймворки – Gorilla & Revel
Java (не путать с JavaScript) – один из старейших и наиболее распростаненных языков программирования. Изначально он был предназначенная для разработки автономных настольных приложений, но в начале 2000-х годов разработчики языка нашли способ адаптировать его для использования на веб-серверах.
Фреймворк – Spring
Node.js (JavaScript)
Потому как популярность в разаботке интерфейса веб-сайтов популярность JavaScript выросла, разработчики нашли способ использовать его как серверный язык. Node использует тот же синтаксис JavaScript, но уже на веб-сервере.
Фреймворки – Express & Hapi
Python
Python очень популярен в университетах, его преподают в качестве первого языка программирования, и он широко используется в реальных проектах. У него огроменое количество библитек, в том числе и для работы в сети.
Фреймворк – Django
В отличие от других языков, которые пришлось адаптировать для использования в Интернете, PHP изначально разрабатывался для веб-разработки с самого первого дня. Многие CMS, в том числе WordPress, написаны на PHP.
Фреймворки – Laravel & Symfony
Ruby позиционирует себя как элегантный и продуктивный язык программирования. Популярный в Японии в 90-х годах, Ruby стал распространяться в других странах после того, как была создан широко известный фреймворк Ruby on Rails.
Фреймворк – Ruby on Rails
Как видите, выбор языков довольно богат, и среди разработчиков, как положено, разгорается настоящий холивар на тему, что какой из языков лучше. Но конечному пользователю все равно, важен конечный результат, который зависит не только от языка, а и от того, кто и как им пользуется. В общем, все как в реальной жизни.
Серверные языки программирования
Серверные языки программирования нужны для реализации бизнес-логики, то есть разработчик при помощи языка программирования описывает возможные сценарии использования сайта или приложения.
Языков программирования, используемых для серверной веб-разработки, достаточно много: PHP, Ruby, Java, C, Python, Perl и другие.
В техническом плане для большинства проектов нет каких-либо ограничений при выборе языка, то есть практически любой функционал сайта или приложения может быть успешно реализован на любом из них, поэтому выбор языка не накладывает никаких лимитаций на проект.
Но с экономической точки зрения разница есть. Наиболее распространенным языком веб-программиров ания на сегодня является PHP, поэтому при его использовании достаточно просто найти как отдельных программистов, так и аутсорсинговые компании, которые смогут работать над проектом. Цены при этом весьма демократичные. Из минусов — порог вхождения в сферу PHP-программиров ания невысок, поэтому на рынке немало дилетантов. Если рассматривать другие языки из представленного выше списка, то средний уровень специалистов на кадровом рынке, как правило, выше, но найти их не так просто и стоят их услуги несколько дороже.
Для подавляющего большинства проектов в техническом плане не имеет значения выбор языка разработки. Выбирайте для реализации проекта язык программирования, на котором много доступных разработчиков. На российском рынке для веб-проектов наиболее популярен PHP, после него идут Java, Ruby, Python и языки наиболее часто используемые в ASP.NET проектах (VB, C# и С++).
PHP — скриптовый язык общего назначения, часто применяемый для разработки веб-сайтов.
PHP — интерпретируемый язык программирования, позволяющий создавать программы в процедурном и объектно-ориентированном стиле. PHP — хороший язык для разработки проектов на CMS. И c технической точки зрения современный PHP весьма неплох. Но экосистема языка и особенности кадрового рынка делают PHP не самым лучшим выбором для разработки сложных проектов.
Язык программирования Ruby
Ruby — интерпретируемый мультипарадигмальный язык программирования, ориентированный на удобство для разработчиков.
В отличие от машинно-ориентированных языков, требующих писать программы так, чтобы компьютеру было максимально удобно их выполнять, Ruby ориентирован на удобство и повышение скорости разработки. В современном мире вычислительные ресурсы стоят значительно дешевле, нежели время разработчиков, поэтому этот подход в большинстве случаев не только более комфортный для разработчиков, но и экономически более целесообразный с точки зрения бизнеса.
Язык программирования Python
Python — высокоуровневый интерпретируемый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода.
Язык поддерживает несколько парадигм разработки: структурное, объектно-ориентированное, функциональное, императивное и аспектно-ориентированное программирование. Python — отличный инструмент для задач по обработке данных и для машинного обучения.
Разработка технически сложных сайтов и веб-приложений
Разрабатываем сайты любой сложности, интернет-магазины и веб-приложения для автоматизации бизнеса.
Наша основная специализация — разработка нетиповых проектов с высокими требованиями к качеству ПО. Мы ориентированы на максимально эффективное решение бизнес-задач клиента. Приоритет разработки — коммерческая успешность создаваемых сайтов и веб-приложений, а инструментами для её достижения являются продуманные и красивые интерфейсы, быстрая и надёжная работа программной части, а также устойчивость к нагрузкам в сочетании с высокой производительностью.
К нам обращаются тогда, когда другие говорят, что реализовать задачу невозможно.
Языки веб-программирования: Клиентские и Серверные.
Все языки веб-программирования, можно разделить на две большие группы: клиентские и серверные. Чтобы разобраться и понять: что это за языки, как они работают и чем друг от друга отличаются, нужно разобраться еще в двух определениях: Сервер и Клиент.
Сервер – это тот компьютер, на котором работает сайт в Интернете (хранятся файлы и папки сайта). Еще под термином Сервер понимают специальную программу, установленную на компьютере, которая обрабатывает запросы браузера пользователя к любому web-документу (например, локальный сервер Денвер).
Клиентские языки.
Клиентские языки выполняются на компьютере пользователя (клиента). Если говорить более точно, то их выполняет сам браузер. Обычно клиентские языки встраиваются в html-код web-страницы. Таким образом, чтобы увидеть код, достаточно открыть веб-страницу с помощью любого текстового редактора или браузера.
Так как клиентские языки выполняются на компьютере пользователя, то здесь только пользователь решает, нужны они ему или нет. Он может просто их отключить и браузер не будет ничего выполнять.
Один из основных недостатков клиентских языков заключается в том, что они не могут взаимодействовать с сервером, на котором расположен сайт. Нет возможности сохранять и загружать информацию с него. Это значительно ограничивает применение клиентских языков. Например, о таких программах, которые должны сохранять и загружать определенную информацию с /на сервер: гостевых книгах, блоках комментариев, рейтингах, голосованиях и.т.д. можно вообще забыть.
Кроме того, раз любой пользователь может очень легко просмотреть код программы, то о безопасности можно тоже забыть. Если Вы захотите закрыть доступ к некоторым файлам, с помощью таких языков, это вряд ли удастся. Очень просто просмотреть HTML – код web-страницы, чтобы узнать всю защищенную информацию и пароли.
Однако, раз клиентские языки добились такой популярности, то у них должны быть и преимущества. Да, преимущества есть и еще какие!
1) Они не отправляют данные на сервер, что делает их работу значительно быстрей.
2) Не требуется никакого дополнительного программного обеспечения, все необходимое есть в браузере клиента.
3) За пользование серверными языками компания, предоставляющая хостинг, требует денег (платный хостинг), а за клиентскими нет.
Самыми распространенными клиентскими языками являются: JavaScript и VisualBasicScript (VBS). Для того, чтобы браузер мог их понимать и выполнять в него встроен специальный инструмент – интерпретатор.
JavaScript, разработан компанией Netscape и первоначально использовался только для браузера Netscape Navigator. В настоящее время этот язык получил очень большую популярность. VisualBasicScript (VBS) это аналог клиентского языка от компании Microsoft.
Как уже говорилось ранее, все эти языки работают в обычных браузерах без всяких дополнительных модулей и плагинов. Самые распространенные браузеры это: Internet Explorer, Opera, Mozilla и др.
Серверные языки.
Серверные языки выполняются непосредственно на самом сервере, специальной программой. Это значит, что для того, чтобы они работали не важно, каким браузером пользуется пользователь, все равно все вычисления будут проходить на удаленном компьютере (сервере).
Увидеть код программы на серверном языке для посетителя сайта вообще невозможно, он видит только результаты работы, которые будут уже представлены в качестве HTML-страницы.
Серверные языки предоставляют веб-программисту гораздо больше возможностей, чем клиентские. Используя их можно обмениваться данными с сервером, чего мы были лишены при использовании клиентских языков.
Наибольшую популярность, среди серверных языков получили: PHP и Perl.
Т.к. серверные языки взаимодействуют с удаленным компьютером (сервером), возникает необходимость где-то хранить результаты этого взаимодействия. Возникает вопрос: как и где хранить эти данные?
Например, гостевая книга предполагает сохранение на сервере информации об имени пользователя и данные оставленного им сообщения. Если, данных у Вас не слишком много, можно хранить их в обычном текстовом файле. Но по мере роста любого сайта, приходиться хранить огромное количество информации. Именно для этой цели существует База Данных (БД).
Это своего рода библиотека, где вся информация аккуратно разложена по полочкам. Но просто одной БД еще не достаточно. Когда информации становиться много, найти то, что нам необходимо становиться очень трудно, не говоря уже, уже о том, чтобы всю информацию обработать или извлечь только нужные данные. Так почему бы не поручить это компьютеру? Так и поступили. В настоящее время БД успешно обрабатываются компьютерами. Системы, которые за все это отвечают, называются Системами Управления Базами Данных (СУБД).
Всего Вам доброго.
Читайте также другие наши материалы:
Какой серверный язык вам подходит?
Рынок серверных решений для веб-разработки в наши дни переполнен! Perl, ASP, PHP, JSP, Cold Fusion и многие другие специализированные варианты имеются в большом количестве. Откуда новичок должен знать, чему учиться и что использовать? Выбор платформы для создания вашего первого основного веб-приложения на основе базы данных — это не что иное, как выбор редактора HTML — вы не можете просто загрузить полдюжины кандидатов и взять их всех на тест-драйв одним ленивым днем. Некоторым из этих языков может потребоваться несколько месяцев работы непосвященного веб-разработчика, чтобы по-настоящему понять и начать пользоваться им с комфортом. Если у вас нет времени, чтобы взять год отдыха и свернуться калачиком книг, вам понадобится руководство!
В этой статье я коснусь каждого из основных вариантов в сети сегодня. Для каждого из них я объясню основные моменты продажи, неизбежные недостатки, относительные расходы и необходимые компромиссы. Я также опишу целевой разработчик для каждого из этих технологий; то есть я кратко объясню, кого они имели в виду, когда гении, стоящие за каждой из этих технологий, впервые создали их. Если какой-либо из этих профилей напоминает вам о вашей собственной ситуации, это должно быть довольно хорошим признаком того, что вы нашли правильную технологию.
CGI / Perl
Perl существует дольше, чем сама World Wide Web. Версия 1 была выпущена 18 декабря 1987 года, за целое десятилетие до того, как были разработаны другие языки, описанные в этой статье! Если вы новичок в этом, вы, вероятно, задаетесь вопросом, как мог существовать серверный язык веб-разработки до самой сети. Видите ли, Perl не был создан как язык веб-разработки. Perl, по сути, является многоцелевым языком сценариев, который был разработан для обработки задач, требующих большого количества текстовых манипуляций. Perl очень хорошо умеет манипулировать фрагментами текста из различных источников и объединять их для формирования законченных документов, что и является тем, что задействовано в веб-разработке на стороне сервера.
Преимущества:
Недостатки:
Целевой разработчик:
Большинство веб-разработчиков, которые все еще работают с Perl сегодня, как правило, являются администраторами и пользователями Unix, которые также используют Perl для работы в других областях своей системы. Для таких людей, Perl — это удобный инструмент «иди куда-нибудь, делай что угодно», на который всегда можно положиться. Если вы неопытный разработчик, столкнувшийся с задачей поддержки сайта, изначально написанного на Perl, то возьмите пару хороших книг и приготовьтесь добавить действительно мощный инструмент в свой арсенал.
Хорошо, это продвижение Microsoft в сторону. Теперь давайте посмотрим правде в глаза: для всех практических целей ASP может быть языком. Вы просто получаете выбор между написанием VBScript ASP или JavaScript ASP. Поскольку большая часть примера кода написана на VBScript, ваш выбор для вас почти сделан. Таким образом, ASP, как правило, считается языком для разработки динамических веб-сайтов с использованием VBScript, и под этим углом зрения он превосходит. ASP прост в освоении, достаточно мощный для большинства основных веб-разработок на стороне сервера и довольно неплох с точки зрения производительности.
ASP тесно связан с операционной системой Windows (большинство программных компонентов, на которые ASP полагается за свою функциональность, ориентированы на Windows) и программным обеспечением веб-сервера Microsoft Internet Information Services. По этим причинам нецелесообразно и нежелательно запускать веб-сайт на основе ASP на любом сервере, кроме Windows. Если вы настраиваете свой собственный веб-сервер, это означает, что вы должны инвестировать в копию Windows 2000 Server (хотя большая часть ASP работает на Windows 2000 Professional, IIS не так масштабируема на этой платформе). Если вы платите за веб-хостинг, это означает, что вы платите за сервер под управлением Windows, который обычно стоит дороже. В любом случае ASP будет стоить вам денег на запуск. Существуют версии ASP, которые можно запускать на сервере Apache, работающем под Linux, но если ваша конкретная цель не состоит в том, чтобы перенести существующий веб-сайт ASP на сервер Linux, в этом нет особого смысла.
Еще одной проблемой для разработчиков ASP является относительно ограниченная природа компонентов, поставляемых в комплекте с ASP. Если все, что вам нужно для вашего приложения, это подключение к базе данных, поисковая система, службы обработки электронной почты, базовая обработка форм и отслеживание сеансов, тогда ASP вам подойдет. Однако любая менее распространенная функциональность обычно требует установки дополнительных программных компонентов на вашем сервере. Есть много компаний, которые производят компоненты для использования с ASP, которые генерируют PDF-файлы, взаимодействуют с FTP-серверами, обрабатывают загрузку двоичных файлов и многое другое. К сожалению, такие компоненты, как ASP, являются коммерческими решениями, которые будут стоить вам денег.
Преимущества:
Недостатки:
Целевой разработчик:
Если вы уже занимались какой-либо разработкой с использованием VBScript или Visual Basic или ранее разрабатывали COM-объекты в Windows, то это, безусловно, платформа для веб-разработки для вас. Кроме того, ASP настолько же дружественен к непрограммистам, насколько и язык программирования (но если вы действительно ненавидите программирование, посмотрите Cold Fusion, далее). Если вам удобнее использовать Windows для своей платформы веб-сервера и вы можете позволить себе сопутствующие расходы, или если компания, на которую вы работаете, просто требует уровня поддержки, который может предоставить Microsoft, тогда ASP — отличная технология для изучения.
Введение в серверную часть
Добро пожаловать на курс для начинающих по программированию серверной части сайта! В этой первой статье мы рассмотрим программирование на стороне сервера с высокого уровня, отвечая на такие вопросы, как «что это»?, «как это отличается от программирования на стороне клиента»? и «почему это так полезно»? После прочтения этой статьи вы поймёте дополнительные возможности, доступные веб-сайтам посредством программирования на стороне сервера.
Перед стартом: | Базовая компьютерная грамотность. Базовое понимание, что такое веб-сервер. |
---|---|
Цель: | Ознакомиться с тем, что такое программирование серверной части, на что оно способно и чем отличается от программирования клиентской части. |
Большинство крупных веб-сайтов используют программирование серверной части чтобы динамично отображать различные данные при необходимости, в основном взятые из базы данных, располагающейся на сервере и отправляемые клиенту для отображения через некоторый код (например, HTML и JavaScript).
Возможно, самая значительная польза программирования серверной части в том, что оно позволяет формировать контент веб-сайта под конкретного пользователя. Динамические сайты могут выделять контент, который более актуален в зависимости от предпочтений и привычек пользователя. Это также может упростить использование сайтов за счёт сохранения личных предпочтений и информации, например, повторного использования сохранённых данных кредитной карты для оптимизации последующих платежей.
Это также даёт возможность взаимодействовать с пользователем сайта, посылая уведомления и обновления по электронной почте или по другим каналам. Все эти возможности позволяют глубже взаимодействовать с пользователями.
В современном мире веб-разработки настоятельно рекомендуется узнать о разработке на стороне сервера.
Что такое программирование серверной части сайта?
Веб-браузеры взаимодействуют с веб-серверами при помощи гипертекстового транспортного протокола (HTTP). Когда вы нажимаете на ссылку на веб-странице, заполняете форму или запускаете поиск, HTTP-запрос отправляется из вашего браузера на целевой сервер.
Запрос включает в себя URL, определяющий затронутый ресурс, метод, определяющий требуемое действие (например, получить, удалить или опубликовать ресурс) и может включать дополнительную информацию, закодированную в параметрах URL (пары поле-значение, оправленные как строка запроса), как POST запрос (данные, отправленные методом HTTP POST) или в куки-файлах.
Веб-серверы ожидают сообщений с клиентскими запросами, обрабатывают их по прибытию и отвечают веб-браузеру при помощи ответного HTTP сообщения (HTTP-ответ). Ответ содержит строку состояния, показывающую, был ли запрос успешным или нет (например, «HTTP/1.1 200 OK» в случае успеха).
Тело успешного ответа на запрос может содержать запрашиваемые данные (например, новую HTML-страницу или изображение, и т. п.), который может отображаться через веб-браузер.
Статические сайты
Схема ниже показывает базовую архитектуру веб-сервера для статического сайта (статический сайт — это тот, который возвращает одно и то же жёстко закодированное содержимое с сервера всякий раз, когда запрашивается конкретный ресурс). Когда пользователь хочет перейти на страницу, браузер отправляет HTTP-запрос «GET» с указанием его URL.
Сервер извлекает запрошенный документ из своей файловой системы и возвращает HTTP-ответ, содержащий документ и успешный статус (обычно 200 OK). Если файл не может быть извлечён по каким-либо причинам, возвращается статус ошибки (смотри ошибки клиента и ошибки сервера).
Одинаково ли программирование серверной части и клиентской?
Динамические сайты
Динамический веб-сайт — это тот, где часть содержимого ответа генерируется динамически только при необходимости. На динамическом веб-сайте HTML-страницы обычно создаются путём вставки данных из базы данных в заполнители в HTML-шаблонах (это гораздо более эффективный способ хранения большого количества контента, чем использование статических сайтов).
Динамический сайт может возвращать разные данные для URL-адреса на основе информации, предоставленной пользователем или сохранёнными настройками, и может выполнять другие операции, как часть возврата ответа (например, отправку уведомлений).
Большая часть кода для поддержки динамического веб-сайта должна выполняться на сервере. Создание этого кода известно, как «программирование серверной части» (или иногда «программирование бэкенда»).
Схема ниже показывает простую архитектуру динамического сайта. Как и на предыдущей схеме, браузеры отправляют HTTP-запросы на сервер, затем сервер обрабатывает запросы и возвращает соответствующие HTTP-ответы.
Запросы статических ресурсов обрабатываются так же, как и для статических сайтов (статические ресурсы — это любые файлы, которые не меняются, обычно это: CSS, JavaScript, изображения, предварительно созданные PDF-файлы и прочее).
Запросы динамических данных отправляются (2) в код серверной части (показано на диаграмме как Веб-приложение). Для «динамических запросов» сервер интерпретирует запрос, читает необходимую информацию из базы данных (3), комбинирует извлечённые данные с шаблонами HTML и возвращает ответ, содержащий сгенерированный HTML (5, 6).
Теперь обратим внимание на код, задействованный в серверной части и клиентской части. В каждом случае код существенно различается:
Код, который выполняется в браузере, известный как код клиентской части, прежде всего связан с улучшением внешнего вида и поведения отображаемой веб-страницы. Это включает в себя выбор и стилизацию компонентов пользовательского интерфейса, создание макетов, навигацию, проверку форм и т. д. Напротив, программирование веб-сайта на стороне сервера в основном включает выбор содержимого, которое возвращается браузеру в ответ на запросы. Код на стороне сервера обрабатывает такие задачи, как проверка отправленных данных и запросов, использование баз данных для хранения и извлечения данных и отправка правильных данных клиенту по мере необходимости.
Код клиентской части написан с использованием HTML, CSS и JavaScript — он запускается в веб-браузере и практически не имеет доступа к базовой операционной системе (включая ограниченный доступ к файловой системе).
Веб-разработчики не могут контролировать, какой браузер может использовать каждый пользователь для просмотра веб-сайта — браузеры обеспечивают противоречивые уровни совместимости с функциями кода на стороне клиента, и одной из задач программирования на стороне клиента является изящная обработка различий в поддержке браузера.
Код серверной части может быть написан на любом количестве языков программирования — примеры популярных языков серверной части включают в себя PHP, Python, Ruby, C# и NodeJS (JavaScript). Код серверной части имеет полный доступ к операционной системе сервера, и разработчик может выбрать какой язык программирования (и какую версию) он хотел бы использовать.
Разработчики обычно пишут свой код, используя веб-фреймворки. Веб-фреймворки — это наборы функций, объектов, правил и других конструкций кода, предназначенных для решения общих проблем, ускорения разработки и упрощения различных типов задач, стоящих в конкретной области.
И снова, поскольку и клиентская и серверная части используют фреймворки, области очень разные и, следовательно, фреймворки тоже разные. Фреймворки клиентской части упрощают вёрстку и представление данных, тогда как фреймворки серверной части обеспечивают много «обычной» функциональности веб-сервера, которую вы, возможно, в противном случае, должны были осуществлять самостоятельно (например, поддержка сессий, поддержка пользователей и аутентификация, простой доступ к базе данных, шаблонам библиотек и т. д.).
На заметку: Фреймворки клиентской части часто используются для ускорения написания кода клиентской части, но вы также можете решить писать весь код руками; на самом деле, написание кода руками может быть более быстрым и эффективным, если вам нужен небольшой простой веб-сайт UI.
И, наоборот, вы практически никогда не посмотрите в сторону написания кода серверной части веб-приложения без фреймворка: осуществление жизненно важной функции, такой как HTTP сервер действительно сложно сделать с нуля, скажем, на Python, но веб-фреймворки для Python, такие как Django, обеспечивают это из коробки наряду с другими полезными инструментами.
Что можно сделать в серверной части?
Программирование серверной части очень полезно поскольку позволяет эффективно доставлять информацию, составленную для индивидуальных пользователей и, таким образом, создавать намного лучший опыт использования.
Компании, такие как Amazon, используют программирование серверной части для построения исследовательских результатов для товаров, формирования целевого предложения, основанного на предпочтениях клиента и предыдущих покупках, упрощения заказов и т. д. Банки используют программирование серверной части, чтобы хранить учётную информацию и позволять только авторизованным пользователям просматривать и совершать транзакции. Другие сервисы, такие как Facebook, Twitter, Instagram и Wikipedia используют бэкенд, чтобы выделять, распространять и контролировать доступ к интересному контенту.
Некоторые типичные применения и выгоды бэкенда перечислены ниже. Вы заметите, что есть некоторое пересечение!
Эффективное хранение и доставка информации
Представьте, сколько товаров доступно на Amazon, и представьте, сколько постов было написано на Facebook? Создание статической страницы для каждого товара или поста было бы абсолютно неэффективным.
Программирование серверной части позволяет вместо этого хранить информацию в базе данных и динамически создавать и возвращать HTML и другие типы файлов (например, PDF, изображения, и т. д.). Также есть возможность просто вернуть данные (JSON, XML, и т. д.) для отображения, используя подходящий фреймворк клиентской части (это уменьшает загрузку процессора на сервере и количество передаваемых данных).
Сервер не ограничен в отправке информации из баз данных и может вместо этого возвращать результат инструментов программного обеспечения или данные из сервисов коммуникации. Контент даже может быть целевым относительно устройства клиента, который его получает.
Из-за того, что информация находится в базе данных, её также можно легко передать и обновить через другие бизнес системы (например, отслеживание).
На заметку: вам не нужно сильно напрягать своё воображение, чтобы увидеть достоинства кода серверной части для эффективного хранения и передачи информации:
Для обычного поиска (например, «рыба») вы можете увидеть буквально миллионы найденных значений. Использование базы данных позволяет им храниться и передаваться эффективно, и это позволяет контролировать представление информации всего в одном месте.
Настраиваемый пользовательский опыт взаимодействия
Серверы могут хранить и использовать информацию о клиентах чтобы поставлять удобный и сделанный индивидуально пользовательский опыт взаимодействия. Например, многие сайты хранят данные кредитных карт, чтобы не нужно было вводить их повторно. Сайты, наподобие Google Maps, могут использовать сохранённое и текущее местоположение для предоставления информации о маршруте, а также историю поиска или путешествий для выделения местных предприятий в результатах поиска.
Более глубокий анализ привычек пользователя может быть использован для прогнозирования их интересов и дальнейших настроек ответов и уведомлений, например, предоставление списка ранее посещённых популярных мест, которые вы, возможно, захотите найти на карте.
На заметку: Google Maps сохраняет вашу историю поиска и посещений. Часто посещаемые или часто вводимые в поиск локации выделяются больше, чем остальные.
Результаты поиска Google оптимизируются на основе предыдущего поиска.
Стечение обстоятельств? Нет!
Контролируемый доступ к контенту
Программирование серверной части позволяет сайтам ограничивать доступ авторизованным пользователям и предоставлять только ту информацию, которую пользователю разрешено видеть.
На заметку: Рассмотрим другие реальные примеры, где доступ к контенту контролируется. Например, что вы можете увидеть, если зайдёте на сайт вашего банка? Авторизуйтесь через вашу учётную запись, и какую дополнительную информацию вы можете просматривать и редактировать? Что за информацию вы можете увидеть, которую может редактировать только банк?
Хранение информации о сессии/состоянии
Программирование серверной части позволяет разработчикам использовать сессии – изначально это механизм, позволяющий серверу хранить информацию о текущем пользователе сайта и отправлять разные ответы, основанные на этой информации.
Это позволяет, например, сайту знать, что пользователь был предварительно авторизован и выводить ссылки на его адрес электронной почты или историю заказов или, возможно, сохранить прогресс простой игры, так чтобы пользователь мог вернуться на сайт продолжить с того места, где он закончил.
На заметку: Посетите новостной сайт, у которого есть подписка и откройте ветку тегов (например, The Age). Продолжайте посещать сайт в течение нескольких часов/дней. В итоге вас начнёт перенаправлять на страницы, объясняющие, как оформить платную подписку, а сами статьи станут вам недоступны. Эта информация является примером сессии, сохранённой в куки-файлах.
Уведомления и средства связи
Серверы могут отправлять общие или пользовательские уведомления непосредственно через сайт или по электронной почте, через смс, мгновенные сообщения, видеосвязь или другие средства связи.
Вот несколько примеров:
На заметку: Самый распространённый вид уведомлений – это «подтверждение регистрации». Возьмите почти любой интересующий вас крупный сайт (Google, Amazon, Instagram и т. п.) и создайте новую учётную запись, используя ваш адрес электронной почты. Вскоре вы получите письмо, подтверждающее факт вашей регистрации или содержащее информацию о необходимости активировать вашу учётную запись.
Анализ данных
Веб-сайт может собирать много данных о своих пользователях: что они ищут, что они покупают, что они рекомендуют, как долго они остаются на каждой странице. Программирование серверной части может быть использовано, чтобы усовершенствовать ответы, основанные на анализе этих данных.
Например, и Amazon, и Google рекламируют товары на основании предыдущих поисков (и покупок).
На заметку: Если вы пользуетесь Facebook, зайдите на вашу стену и посмотрите на ряд постов. Заметьте, что некоторые посты не идут по порядку: в частности, посты с большим количеством «лайков» часто находятся выше по списку, чем остальные. Также взгляните на рекламу, которую вам показывают, вы вероятно увидите рекламу товаров, которые искали на других сайтах. Алгоритм Facebook для выделения контента и рекламы может казаться мистикой, но очевидно, что он зависит от ваших лайков и запросов поиска!
Подведение итогов
Поздравляем, вы дошли до конца первой статьи о программировании серверной части.
Теперь вы узнали, что код серверной части выполняется на веб-сервере и его основная роль состоит в контролировании отправляемой пользователю информации (тогда как код клиентской части в основном определяет структуру и способ преподнесения информации пользователю). Вы должны также понимать, что это полезно, так как позволяет создавать веб-сайты, которые эффективно доставляют информацию, собранную для конкретных пользователей и иметь чёткое представление о некоторых вещах, которые вы сможете делать, когда станете разработчиком бэкенда.
Наконец, вы должны понимать, что код серверной части может быть написан на разных языках программирования, и что вам следует использовать веб-фреймворк для упрощения процесса написания кода.
В следующей статье мы поможем вам выбрать лучший фреймворк для вашего первого сайта; затем мы изучим несколько основных взаимодействий с клиентской частью более подробно.