Файл: Средства создания программ, выполняемых на стороне сервера.pdf
Добавлен: 22.04.2023
Просмотров: 136
Скачиваний: 2
ВВЕДЕНИЕ
В настоящее время современный человек не может представить свою жизнь без телевизора, радио, сотового телефона, а главное без компьютера. В современном мире персональный компьютер играет главную роль во всех сферах деятельности, во всех странах мира. Конечно, можно отметить, что еще несколько десятилетий назад, никто не пользовался ПК и при этом не имели никаких удобств, но мир не стоит на месте и необходимо идти «в ногу со временем».
Разработка веб-приложений находится на рекордно высоком уровне, поскольку все больше и больше людей получают доступ к сети, а также рост многих веб-компаний приводит к популяризации этих технологий.
Веб-приложения – это приложения, которые запускаются в веб-браузере, и именно поэтому они популярны из-за повсеместности веб-браузеров. Это также удобно из-за того, что не нужно устанавливать программное обеспечение или приложение на десятки, сотни или даже тысячи компьютеров, что в свою очередь упрощает обслуживание приложения. В этом и заключается актуальность данной работы.
Целью данной работы является анализ средств разработки программ, выполняемых на стороне сервера.
В рамках работы необходимо решить следующие задачи:
- раскрыть понятие «веб-разработка»;
- изучить особенности серверного программирования;
- провести анализ языков программирования используемых на сервере и систем управления базами данных.
1. Анализ предметной области
1.1 Веб-разработка
Веб-разработка в целом относится к задачам, связанным с разработкой веб-сайтов для их размещения в сети Интернет. Процесс веб-разработки включает в себя веб-дизайн, разработку веб-контента, сценарии на стороне клиента и серверной стороне, а также настройку сетевой безопасности.
Веб-разработка – это кодирование или программирование, обеспечивающее функциональность веб-сайта в соответствии с требованиями владельца. В основном это касается стандартного плана создания веб-сайтов, который включает в себя кодирование и написание разметки.
Веб-разработка варьируется от создания простых текстовых страниц до сложных веб-ресурсов, приложений для социальных сетей и электронных бизнес-приложений. [9]
Иерархия веб-разработки выглядит следующим образом:
- кодирование на стороне клиента;
- кодирование на стороне сервера;
- технология баз данных.
Сама веб-разработка и то, как это делается, сильно изменились за последние годы, но одна вещь осталась прежней: веб-разработка относится к созданию приложений, которые запускаются в веб-браузере.
Некоторые из этих приложений имеют большую часть своей логики, живущих на веб-сервере, который создает HTML, CSS и JavaScript для создания сайта.
Другие приложения используют сервер для создания своего исходного состояния, загрузки логики для запуска приложения, а затем используют сервер только для извлечения и хранения данных.
Однако, независимо от того, как осуществляется веб-разработка, основные технологии одинаковы: HTML, JavaScript, CSS.
Веб-разработчики используют все основные языки программирования для создания веб-приложений. Это возможно, потому что пользовательский интерфейс веб-приложения – это, по существу, HTML, CSS и JavaScript, которые могут быть сгенерированы любым языком программирования, способным создать текст.
JavaScript используется для управления так называемой DOM (Document Object Model), которая представляет собой веб-страницу в браузере для прямого изменения пользовательского интерфейса отображаемого в браузере, без прямого создания нового кода HTML или CSS.
Ранняя веб-разработка состояла в основном из создания статических HTML-страниц, а навигация осуществлялась исключительно гиперссылками.
Раньше веб-разработчик в реальности не создавал «приложение». Он создавал набор статических веб-страниц, которые использовались для передачи информации и, возможно, нескольких изображений, все связанные с гиперссылками.
Для того, чтобы веб-разработка была полезна, необходим способ сделать веб-страницы более интерактивными и условно отобразить некоторый контент, а также отслеживать состояние всей системы в целом.
Вначале веб-разработчики использовали технологию CGI для создания самых ранних веб-приложений, которые могли условно генерировать HTML в зависимости от данных, таких как строки запросов, которые были отправлены из браузера на сервер.
Затем появились основные принципы веб-разработки, которые были разработаны для упрощения CGI и динамической генерации HTML.
ColdFusion или ASP были некоторые из ранних веб-фреймворков, которые упростили веб-разработку. [7]
Теперь веб-разработчик может создавать HTML страницы, смешанные со специальными тегами и разметкой, чтобы генерировать это условное выражение HTML, а также может выполнять реализовывать определенную логику, чтобы определить, какой HTML-код будет создан для данной веб-страницы. Такая технология работала как язык шаблонов и позволяла огромному числу разработчиков создавать веб-приложения легко и быстро.
В конечном счете, с развитием технологий браузера и быстрым ростом компьютеров, а также растущим спросом на более сложные приложения – JavaScript начал использоваться для расширения возможностей многих веб-приложений.
Кроме того, в это время также появился CSS, чтобы упростить стилизацию веб-приложений, предоставив HTML роль определения контента и CSS для определения макета и стиля этого контента.
Рендеринг всего на сервере был слишком медленным и не чувствовал себя отзывчивым, поэтому были созданы технологии, такие как AJAX (асинхронный JavaScript и XML), чтобы позволить динамически обновлять веб-страницы без обновления страницы.
В конце концов, все веб-приложения были построены динамически без обновления любой страницы. Эти типы веб-приложений известны как SPA или Single Pages Applications. Они позволяет динамически изменять веб-страницу, не обновляя ее.
Веб продолжает двигаться вперед, поскольку он развивается, чтобы быть все более похожим на десктопные приложения, когда браузер действительно начинает работать также быстро, как операционная система.
Фактически это стало настолько справедливым, что Google создал веб-ОС под названием Chrome OS, в которой в качестве ОС используется браузер Chrome. В будущем все будет размещено в Интернете, потому что браузеры будут достаточно мощными, чтобы запускать все. Уже все движется в этом направлении, поскольку все больше и больше развиваются облачные технологии.
За последние годы некоторые вещи изменились, но основные функциональные возможности Интернета и ее основополагающих технологий в основном остались прежними.
Основные парадигмы веб-браузеров следующие:
- веб-браузер способен анализировать и преобразовывать HTML и CSS в видимый формат, который называют веб-страницей;
- веб-браузер также способен выполнять JavaScript для исполнения различных действий, включая изменение базовой структуры веб-страницы.
- веб-браузер должен отправить запрос на веб-сервер, чтобы получить веб-страницу для рендеринга.
Это делается через протокол, известный как HTTP, или протокол передачи гипертекста. [6]
Когда запрос на определенный ресурс или URL (Унифицированный Идентификатор Ресурса) отправляется на веб-сервер, этот веб-сервер находит запрашиваемый контент, если он существует, и отправляет ответ в браузер.
Затем браузер анализирует и отображает этот ответ, который видит конечный пользователь в веб-браузере.
Теперь, очевидно, на фронтенде происходит гораздо больше, но основная идея заключается в том, что веб-браузер делает запрос, и веб-сервер отвечает, возвращаясь из HTML, CSS и JavaScript.
Веб-приложение нужно рассматривать немного иначе, чем обычное десктопное приложение, поскольку веб-приложения должны постоянно запрашивать запросы с сервера для каждого действия, которое происходит в приложении.
В настольном приложении вы можете хранить различные биты состояния в памяти и иметь доступ к данным состояния при переключении на другую страницу или раздел приложения.
Для веб-приложений вам необходимо обойти тот факт, что базовый протокол HTTP не имеет статуса.
Нужно иметь некоторый способ управлять состояниями между запросами и отслеживать отдельных пользователей, которые используют веб-приложение одновременно.
Теперь, очевидно, существуют рамки и шаблоны, которые делают это проще, но важно понять, что веб-разработка сильно отличается от других видов развития из-за HTTP и постоянных взаимодействий с клиентским сервером.
В самой простой модели веб-разработки все веб-страницы отображаются на сервере, а HTML, CSS и JavaScript этой страницы отправляются в веб-браузер, где он анализируется и отображается пользователю. Подтверждение на стороне сервера просто означает, что страницы полностью построены логикой на сервере. Таким образом, при рендеринге на стороне сервера логика приложения практически полностью зависит от сервера.
Сегодня такие технологии, как ASP.NET или PHP, по-прежнему в основном используют эту модель, хотя с использованием различных фреймворков JavaScript даже для серверной технологии рендеринга можно использовать для рендеринга сторону клиента.
Клиентский рендеринг просто означает, что содержимое веб-страницы создается в браузере через JavaScript, а не на сервере.
Благодаря рендерингу на стороне клиента можно практически почти думать о том, что веб-сервер предоставляет «приложение» браузеру, и браузер выполняет это приложение внутри себя, и в итоге отображает страницы, создает навигацию и запрашивает любые дополнительные данные с сервера.
За кулисами JavaScript используется для создания и управления элементами DOM и даже для создания HTML или CSS, который является частью веб-страницы или в данном случае веб-приложения. Рендеринг на стороне клиента выглядит более плавным для конечного пользователя, потому что нет необходимости возвращать запросы на сервер для отображения новых страниц, а только запросы на дополнительные данные, которые затем «подключаются», веб-страницы динамически.
Вот почему некоторые приложения на стороне клиента называются SPA. Обычно есть только одна страница, и содержимое этой страницы динамически обновляется. [2]
Оба метода можно даже объединить в одном веб-приложении, где некоторые части пользовательского интерфейса визуализируются на стороне клиента, а другие части и страницы рендерятся на стороне сервера.
Таким образом, высокоуровневые языки являются очень удобным инструментом для разработки, который позволяет по сравнению с низкоуровневыми языками строить более гибкие приложения. Веб-разработка же является очень популярной составляющей современного мира информационных технологий.
1.2 Серверное программирование
Веб-программирование – это частный случай программирования клиент-серверного приложения. Клиент-серверное приложение – это вид распределенной информационной системы. Двигаясь от частного к общему, получаем, что веб-программирование – это частный случай программирования распределенной информационной системы. Теперь попытаемся двигаться в обратном направлении, с целью определить, чем именно характерен этот самый частный случай. [9]
Понятие «веб-сервер» может относиться как к аппаратной начинке, так и к программному обеспечению. Или даже к обеим частям, работающим совместно.
С точки зрения «железа», «веб-сервер» – это компьютер, который хранит файлы сайта (HTML-документы, CSS-стили, JavaScript-файлы, картинки и другие) и доставляет их на устройство конечного пользователя (веб-браузер и т.д.). Он подключен к сети Интернет и может быть доступен через доменное имя.
С точки зрения ПО, веб-сервер включает в себя несколько компонентов, которые контролируют доступ веб-пользователей к размещенным на сервере файлам, как минимум – это HTTP-сервер. HTTP-сервер – это часть ПО, которая понимает URL’ы (веб-адреса) и HTTP (протокол, который ваш браузер использует для просмотра веб-станиц).
На самом базовом уровне, когда браузеру нужен файл, размещенный на веб-сервере, браузер запрашивает его через HTTP-протокол. Когда запрос достигает нужного веб-сервера («железо»), сервер HTTP (ПО) принимает запрос, находит запрашиваемый документ (если нет, то сообщает об ошибке 404) и отправляет обратно, также через HTTP. [7]
Чтобы опубликовать веб-сайт, необходим либо статический, либо динамический веб-сервер.
Статический веб-сервер, или стек, состоит из компьютера («железо») с сервером HTTP (ПО). Его называют «статикой», потому что сервер посылает размещенные файлы в браузер «как есть».
Динамический веб-сервер состоит из статического веб-сервера и дополнительного программного обеспечения, чаще всего сервера приложения и базы данных. Его называют «динамическим», потому что сервер приложений изменяет исходные файлы перед отправкой в ваш браузер по HTTP.