Какие технологии программирования серверных сценариев вы знаете в чем их отличие

Языки сценариев для веб-программирования
Мини-учебник по PHP

Дайте мне хороший сценарий, и я сверну горы.

Зачем создателю сайта нужны языки серверных сценариев?

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

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

Обычно люди приходят к необходимости создания динамических сайтов, когда разросшийся объем хранящейся информации или желание часто ее обновлять требуют использования того, что на программистском жаргоне называют «движком» сайта, а официально — CMS (content management system), то есть системой управления содержимым. Создание такого движка невозможно без привлечения сценариев, выполняемых на стороне веб-сервера. Именно эти сценарии как помещают содержимое на сайт, так и формируют внешний вид страниц «на лету».

Как работают сценарии? Языки сценариев

Что происходит, когда вы открываете в браузере (Internet Explorer, Opera, FireFox или любой другой) страницу какого-нибудь сайта?

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

Исключительная же популярность языка PHP связана с тем, что, в отличие, скажем, от Perl, он позволяет внедрять текст сценария непосредственно в HTML-текст страницы и выполнять сценарий в контексте основного процесса обработки HTML.

История создания PHP
Самая лучшая книга по PHP на русском языке.

В 1994 году датский программист (ныне живущий в Канаде) Расмус Лердорф (Rasmus Lerdorf) написал набор скриптов для обработки шаблонов HTML-документов. Вначале этот инструментарий был написан им на Perl, но когда возможностей этого языка по функциональности и быстроте перестало хватать, Лердорф создал на языке C собственный интерпретатор шаблонов и назвал его PHP/FI (Personal Home Page / Forms Interpreter — «Личная домашняя страница / Интерпретатор форм»). Поскольку коды нового инструмента были открыты и свободно распространяемы, это привело к их быстрому расширению и продвижению силами энтузиастов из различных стран. В 1997 году вторую версию интерпретатора PHP/FI 2 использовали около 50 тысяч (около 1% на тот момент) интернет-сайтов мира.

Настоящая же революция в PHP произошла в 1998 году, когда два израильских программиста Энди Гутманс (Andi Gutmans) и Зив Сураски (Zeev Suraski) из израильского института Технион переписали код с нуля, посчитав существовавшую на то время версию не пригодной для разработки приложений электронной коммерции, над которыми они тогда работали. Так появился PHP 3 — почти тот PHP, который мы знаем сегодня: язык с модульной структурой, позволяющей расширять возможности ядра независимо работающими программистами со всего света. В третьей версии появилась поддержка огромного множества платформ, веб-серверов, интернет-протоколов и т.п. Кроме того, в языке сильно изменился синтаксис. Он стал более удобным, более мощным и, что особенно важно, объектно-ориентированным.

Победное шествие PHP 3 по всемирной паутине было впечатляющим: уже к концу 1998 года он использовался в 10% веб-сайтов интернета. С тех пор возможности PHP и его распространенность выросли многократно. На веб-серверах сегодня иcпользуются в основном PHP 4 (его поддержка прекращена совсем недавно) и PHP 5, а на стадии тестирования находится PHP 6.

Немного практики

Как PHP-сценарии встраиваются в HTML-страницу?

Существует несколько синтаксически различных конструкций для внедрения PHP-кода в HTML-текст страницы. Самый ходовой из них:

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

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

Журнал « Лучшие компьютерные игры »

вместо блока PHP-сценария в ходе серверной обработки возникнет HTML-строка.

На страницу эту строку выведет встроенная функция echo, синтаксис которой достаточно понятен. Именно с такой строкой страница вернется в браузер к читателю сайта. Увидит же он ее в виде отдельного абзаца с выделенным жирным стилем названием журнала (сработают вставленные в строку HTML-теги и кавычки-ёлочки):

Журнал «Лучшие компьютерные игры»

Хотя PHP-сценарии и можно встраивать в HTML-страницы, они могут существовать и автономно, в отдельных файлах. Это очень удобно для создания больших сайтов – общий код хранится в одном экземпляре. Что самое важное – при этом и ошибки исправлять приходится только в одном месте.

Комментарии

Проще всего показать, как используются комментарии, нарастив ими предыдущий пример.

Журнал « Лучшие компьютерные игры »

» ); // комментарий до конца строки (стиль С)

Многострочный комментарий в стиле С.

В нем можно поместить не ограниченный по размеру текст

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

Переменные и константы

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

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

Скалярные переменные

$sql = «SELECT * FROM goods» ;

Массивы

Массив — это набор нумерованных значений. Нумерация всегда начинается с нуля. Существуют различные способы инициализации массивов. Вот один из них:

Здесь создан массив из трех строковых элементов. Если мы выполним команду echo($languages[2]), то в браузер будет выведен элемент «Python» (нумерация ведь начинается с 0!).

Этот же массив можно было создать и иначе:

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

Константы

Константы используются для задания постоянных величин. Они объявляются в РНР при помощи функции define():

Здесь объявлены две целочисленные константы: MIN_NUM и MAX_NUM. Основное отличие их от переменных в том, что значения им не присваиваются в ходе выполнения программы, а подменяют их символические обозначения еще до начала ее выполнения.

Простые операторы

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

// в браузере появится строка «Лучшие компьютерные игры»

Управляющие операторы

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

Условный оператор if. elseif. else

Рассмотрим условный оператор на примере, проверяющем (если уж база посвящена товарам) цену, которая для них указана.

if ($price «Очень дешевый товар» );

echo ( «Дорогой товар» );

echo ( «Товар по разумной цене» );

Разумеется, условий elseif мы можем написать сколько угодно.

Операторы цикла while и for

Для выполнения той же самой задачи можно было использовать и цикл for. Запись оператора выглядит при этом проще:

Функции

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

Строится простая собственная функция с двумя входными параметрами примерно так:

// тут расположен собственно текст функции

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

Как осуществляется обратная связь с сайтом через формы?

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

Источник

ДИНАМИЧЕСКИЕ WEB-СТРАНИЦЫ СЕРВЕРНЫЕ СЦЕНАРИИ

Онлайн-конференция

«Современная профориентация педагогов
и родителей, перспективы рынка труда
и особенности личности подростка»

Свидетельство и скидка на обучение каждому участнику

Описание презентации по отдельным слайдам:

Описание слайда:

Троицкий Д.И. Интернет-технологии
1
ДИНАМИЧЕСКИЕ WEB-СТРАНИЦЫ
СЕРВЕРНЫЕ СЦЕНАРИИ
Лекция 9
Кафедра «Автоматизированные станочные системы»
Dept. of Automated Manufacturing Systems

Описание слайда:
Описание слайда:

Троицкий Д.И. Интернет-технологии
3
Серверная и локальная обработка данных
Программа, выполняющая генерацию HTML-кода, может выполняться как на сервере, так и на машине клиента.

Описание слайда:

Троицкий Д.И. Интернет-технологии
4
Под Web-приложением подразумевается программа в виде загрузочного модуля, выполняемая либо под управлением браузера (клиентское Web-приложение), либо под управлением Web-сервера (серверное Web-приложение).
ДИНАМИКА ≠ АКТИВНОСТЬ
Под Web-активностью понимают возможность организации интерактивного взаимодействия с пользователем.
Динамика позволяет «оживить» представление информации.
Активность есть набор методов и средств, которые позволяют обеспечить «подстройку» сайта под конкретного пользователя и его нужды.

Описание слайда:

Троицкий Д.И. Интернет-технологии
5
Различают клиентскую и серверную активность.
Клиентская активность позволяет за счет внедрения в Web-страницы сценариев и некоторых приложений поддерживать диалог с пользователем исключительно средствами Web-браузера.
При серверной активности введенные пользователем данные передаются Web-серверу, обрабатываются им, и результат обработки пересылается обратно пользователю.
Типичные схемы взаимодействия пользователя с Web-сервером:
Взаимодействие с пассивным Web-сервером.
Взаимодействие с активным Web-сервером.

Описание слайда:

Троицкий Д.И. Интернет-технологии
6
Сеанс взаимодействия с пассивным Web-сервером

Описание слайда:

Троицкий Д.И. Интернет-технологии
7
Этапы взаимодействия с пассивным сервером:
1. Пользователь передает браузеру адрес URL необходимой ему Web-страницы.
2. Браузер обращается к серверу за нужной страницей.
3. Происходит загрузка страницы и ее содержимое отображается на экране пользователя (3а).
4. В процессе интерпретации страницы браузер запрашивает объекты, ссылки на которые та содержит (рисунки, аудиофайлы, видеоклипы и т.п.)
5. Запрошенные объекты передаются с сервера и отображаются браузером пользователя.

Описание слайда:

Троицкий Д.И. Интернет-технологии
8
Сеанс взаимодействия с активным Web-сервером

Описание слайда:

Троицкий Д.И. Интернет-технологии
9
Этапы взаимодействия с активным сервером:
Действия, выполняемые на этапах 1..5 аналогичны приведенным в ранее рассмотренной схеме.
6. Пользователь вводит необходимую информацию посредством элементов пользовательского интерфейса (формы), расположенных на текущей Web-странице.
7. Введенные данные пересылаются браузером серверу.
8. На стороне сервера исполняется серверный сценарий либо серверное приложение.
9. Результат работы приложения/сценария в виде HTML-страницы пересылается браузеру.
10. HTML-страница отображается на экране пользователя.

Описание слайда:

Троицкий Д.И. Интернет-технологии
10
Серверные сценарии
Основные отличия серверных сценариев от клиентских:
— интерпретатором серверного сценария является Web-сервер, а не браузер клиента;
— пользователю доступен исходный текст клиентских скриптов, в то время, как ему виден лишь результат работы серверных;
— серверные сценарии не зависят от клиентского программного обеспечения;
— возможности серверных сценариев существенно шире, чем клиентских, в частности, с их помощью можно осуществлять доступ к базам данных.

Описание слайда:

Троицкий Д.И. Интернет-технологии
11
Хронологически первой технологией создания серверных сценариев была технология CGI-сценариев или CGI-скриптов. В качестве языка программирования при разработке CGI-скриптов используется язык Perl, отдаленно напоминающий язык С.
Возможности CGI-сценариев:
— обработка пользовательских данных;
— доступ к файловой системе Web-сервера;
— работа с базами данных;
— динамическая генерация Web-страниц
CGI-сценарии

Описание слайда:
Описание слайда:

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

Источник

Дипломная работа. Примеры выполнения

— интепретатором серверного сценария является Web-сервер, а не браузер клиента;

— пользователю доступен исходный текст клиентских скриптов, в то время, как ему виден лишь результат работы серверных;

— серверные сценарии не зависят от клиентского программного обеспечения;

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

Серверный сценарий пишется на специализированном языке программирования и помещается в виде отдельного файла на Web-сервере, в том каталоге, откуда при настройке сервера разрешен запуск сценариев. Адрес URL данного файла указывается в параметре ACTION формы, данные из элементов управления которой должны быть обработаны с помощью сценария. После нажатия пользователем на Web-странице кнопки типа SUBMIT, эта информация передается серверу и обрабатывается сценарием. По завершению работы последнего пользователю передается результат его работы.

Хронологически первой технологией создания серверных сценариев была технология CGI-сценариев или CGI-скриптов. В качестве языка программирования при разработке CGI-скриптов используется язык Perl, отдаленно напоминающий язык С.

— обработка пользовательских данных;

— доступ к файловой системе Web-сервера;

— работа с базами данных;

— динамическая генерация Web-страниц.

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

— активная страница представляет собой Web-страницу со встроенными в текст сценариями, интерпретируемыми сервером;

— в зависимости от работы сценария, клиенту передается тот или иной документ, который может содержать теги HTML, расположенные на данной активной странице, либо сформированный самим сценарием;

— сценарии ASP составляются на языках JavaScript и VBScript;

— имеется набор объектов, содержащих свойства и методы, очень удобные для использования на стороне сервера;

Если технология CGI-сценариев ориентирована на Web-сервера по ОС семейства UNIX (например, Web-сервер Apache), то ASP изначально предназначалась для Web-серверов от Microsoft (продукты MS Internet Information Server и MS Personal Web Server). В настоящее время такое различие сгладилось: для серверов Apache существуют модули, позволяющие работать с ASP, и для серверов под ОС семейств Windows есть надстройки, позволяющие им работать с CGI-сценариями на языке Perl.

Технология Java включает две составляющих: одноименный язык программирования и платформу Java. Последняя, в свою очередь, состоит из виртуальной машины Java (Java VM) и интерфейса прикладного программирования (Java API).

Язык оказался удачен, в короткое время завоевал широкую популярность и стал фактическим стандартом для разработки программ для Интернет. Единственным недостатком программ для любой виртуальной машины, очевидно, является низкая производительность: программа-виртуальная машина должна выполнять другую программу. Исполняемый модуль для виртуальной машины Java именуется байт-кодом (или иногда J-кодом).

С помощью языка программирования Java можно создавать программы двух типов: приложения (applications) и апплеты (applets). Java-приложения представляют собой полнофункциональные программы, которые выполняются под управлением виртуальной Java-машины, которая, в свою очередь, работает под управлением операционной системы. Java-приложение может работать с любыми ресурсами компьютера, но его необходимо запускать локально.

Выигрыш в безопасности, впрочем, оборачивается небольшими возможностями апплета при работе с пользователем. Однако, следует знать, что апплет может осуществлять взаимодействие с тем Web-сервером, с которого он был загружен. Такая возможность позволяет строить весьма сложные и гибкие клиент-серверные системы, которые (поскольку мы имеем дело с виртуальными машинами) будут работать с любыми типами компьютеров.

Также необходимо отметить, что браузер MS Internet Explorer при работе с апплетами поддерживает технологию своевременной компиляции (Just In Time Compilation, JIT). Сущность этой технологии в том, что получив апплет, браузер преобразует его байт-код для виртуальной машины в исполняемый модуль для Windows. Такой подход значительно увеличивает производительность работы апплета и, в то же время, не снижает безопасность системы, поскольку в полученном исполняемом модуле нет никаких действий сверх того, что было в байт-коде, который по определению безопасен.

Идея JavaScript очень проста. Все операции, которые можно исполнять в программе на JavaScript, описывают действия над хорошо известными и понятными объектами, которыми являются элементы рабочей области браузера (окно, документ, статусная строка…) и контейнеры языка HTML. Собственно объектная ориентированность JavaScript на этом и кончается. Никаких создаваемых программистом классов объектов, а уж тем более наследования в JavaScript нет. Есть только объекты с набором свойств и методов. Кроме методов, существуют и обычные функции, больше похожие на процедуры из традиционных языков программирования. Кроме того, в JavaScript есть события.

Собственно скрипт включается в HTML-документ с помощью тега

Так как JavaScript является основным, но все же не единственным языком написания скриптов, следует указать, что скрипт пишется именно на нем:

При нажатии на кнопку произойдёт событие onClick, по которому произойдет вызов функции wrt().

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

Сценарий можно разместить и непосредственно в обработчике события, например:

Ключевые (зарезервированные) слова JavaScript приведены в Приложении 1. Основными типами данных в JavaScript являются целые, вещественные, булевы и строковые. Переменные в JavaScript, как и в Pascal, задаются с помощью ключевого слова var:

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

Одной и той же переменной можно присваивать различные типы данных:

В Java предусмотрены два способа включения комментариев:

// Это однострочный комментарий

Типы данных в JavaScrpit можно подразделить на следующие группы:

Табл. 11.1. Типы данных в JavaScript

Могут быть выражены в десятичном, восьмеричном и шестнадцатеричном формате.
Например: 45, 071, 0x7d8

С плавающей точкой

Имеют значения true или false

Представляет символы Unicode, заключённых в двойные или одинарные кавычки, например: «Строка», ‘Строчка’

Управляющие символы:
\n перевод на новую строку

\t горизонтальная табуляция

\v вертикальная табуляция

\\ обратная косая черта

Арифметические и логические действия записываются так же, как в языке C.

Источник

Введение в серверную часть

Добро пожаловать на курс для начинающих по программированию серверной части сайта! В этой первой статье мы рассмотрим программирование на стороне сервера с высокого уровня, отвечая на такие вопросы, как «что это»?, «как это отличается от программирования на стороне клиента»? и «почему это так полезно»? После прочтения этой статьи вы поймёте дополнительные возможности, доступные веб-сайтам посредством программирования на стороне сервера.

Перед стартом: Базовая компьютерная грамотность. Базовое понимание, что такое веб-сервер.
Цель: Ознакомиться с тем, что такое программирование серверной части, на что оно способно и чем отличается от программирования клиентской части.

Большинство крупных веб-сайтов используют программирование серверной части чтобы динамично отображать различные данные при необходимости, в основном взятые из базы данных, располагающейся на сервере и отправляемые клиенту для отображения через некоторый код (например, 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 для выделения контента и рекламы может казаться мистикой, но очевидно, что он зависит от ваших лайков и запросов поиска!

Подведение итогов

Поздравляем, вы дошли до конца первой статьи о программировании серверной части.

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

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

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

Источник

Понравилась статья? Поделиться с друзьями:

Не пропустите наши новые статьи:

  • Какие существуют языки программирования и для чего
  • какие существуют языки программирования и для чего они нужны
  • какие существуют инструменты командной строки для автоматизации работы в ос microsoft windows
  • какие существуют браузеры для windows 7
  • какие старые игры пойдут на windows 10

  • Операционные системы и программное обеспечение
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии