Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
interaktivnoe_programirovanie_internet-prilozheniy (1).docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.94 Mб
Скачать

Министерство образования и науки Российской Федерации

ФГБОУ ВО «Саратовский государственный технический университет им. Гагарина Ю.А.»

Интерактивное программирование

ВЕБ-ПРИЛОЖЕНИЙ

Методические указания

к выполнению практических работ

по курсу «Интерактивное программирование веб-приложений»

для студентов направления

«Информационные системы и технологии»

Саратов 2017

Разработка веб-приложений с использованием php и MySql

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

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

СУБД – программное обеспечение, предназначенное для работы с базами данных, а именно: хранения и поиска информации по сложным запросам.

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

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

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

В последнем разделе данного учебного пособия мы рассмотрим процесс создания веб-приложения с использованием СУБД MySQL и языка программирования PHP.

Тема 1. Архитектура веб-приложений

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

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

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

Рисунок 91 - Схема работы клиент-серверного приложения

HTTPHyperText Transfer Protocol – протокол передачи данных, предназначенный для передачи гипертекста.

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

Пример структуры HTTP-запроса:

GET / HTTP/1.1 – строка запроса

Host: localhost – заголовок

Здесь:

  • GET – метод передачи данных;

  • / - указание на то, какой файл мы запрашиваем. В данном случае, это главная страница сайта;

  • HTTP/1.1 – версия протокола HTTP.

  • Host: localhost – заголовок, в котором указан адрес сайта, к которому мы обращаемся.

HTTP-заголовков существует множество, и какие из них отправляются в запросе, а какие – нет, зависит от браузера. Заголовок Host отправляется в любом случае, всегда, иначе запрос будет отклонен сервером.

Начальная строка запроса отделяется от заголовков переходом на новую строку. Двойной переход на новую строку означает конец запроса. Забегая вперед, отметим, что в языке PHP аналогом перехода на новую строку является сочетание специальных символов «\r\n».

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

Структура ответа сервера на HTTP-запрос:

HTTP/1.1 200 OK

Server: Apache/2.4.18 (Win64) PHP/7.0.3

Date: Sat, 05 Mar 2016 14:23:26 GMT

Content-Type: text/html

Content-Length: 7563

Last-Modified: Sat, 05 Mar 2014 12:54:30 GMT

Connection: keep-alive

<html>…

</html>

Стартовая строка ответа содержит версию протокола HTTP, код состояния, показывающий результат выполнения запроса (коды, превышающие 400, означают ошибку) и текстовое пояснение результата.

Далее идут заголовки:

  • Server – версия сервера;

  • Date – дата получения ответа;

  • Content-Type – тип возвращаемых данных;

  • Content-Length – размер возвращаемых данных;

  • Last-Modified – дата последнего изменения запрашиваемого документа;

  • Connection – состояние соединения с сервером после выполнения запроса, keep-alive – сервер доступен для новых запросов, close – соединение закрыто.

После заголовков начинается непосредственно тело ответа. В данном случае, это код html-страницы.

Наличие или отсутствие тех или иных заголовков в HTTP-ответе зависит от настроек сервера и действий серверных программистов.

Тело ответа отделено от заголовков двойным переносом строки. Окончание ответа определяется согласно содержимому заголовка Last-Modified.

Говоря о начальной строке HTTP-вопроса, мы упомянули метод передачи данных. Существует некоторое количество методов отправки данных, но нас интересуют два из них:

  • Метод GET;

  • Метод POST.

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

Например, ссылка на результат поискового запроса имеет вид «https://www. Google.ru/search?q=php&oq=ЗРЗ&aqs=chrome.1.69i57j0l5.2680j0 j8&sourceid=chrome&es_sm=122&ie=UTF-8». В этой ссылке все, что находится после знака «?» является параметрами, переданными с помощью метода GET обработчику /search, находящемуся по адресу www. Google.ru. Знак «&» используется при передаче нескольких параметров. Обратите внимание, в примере эти данные переданы по протоколу HTTPS – защищенной версии протокола HTTP.

Представим, что у нас есть файл form.php, находящийся по адресу localhost. В этом файле у нас есть веб-форма с двумя полями: login и pass. Эти данные отправляются на сервер методом GET. Пусть этот же файл является также и обработчиком, то есть получателем данных. Тогда HTTP-запрос будет выглядеть следующим образом:

GET /form.php?login=julia&pass=123456 HTTP/1.1

Host: localhost

Вроде бы все в порядке, однако в реальности этот запрос будет помещен для отправки в адресную строку браузера, как показано на рисунке 92.

Рисунок 92- передача данных методом GET

Итак, из-за способа отправки данных метод GET обладает следующими недостатками:

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

  • Невозможность отправки некоторых данных, например, файлов;

  • Загромождение адресной строки браузера в том случае, если данных при запросе слишком много.

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

Для отправки же данных из формы лучше использовать метод POST. Он отличается от GET тем, что данные посылаются не в составе строки запроса вместе с запрашиваемым файлом, а отдельно.

Рассмотрим структуру HTTP-запроса, отправленного методом POST. Данные из веб-формы отправляются на сервер, HTTP-запрос выглядит следующим образом:

POST /form.php HTTP/1.1

Host: localhost

Content-Length: 23

login=julia&pass=123456

Как видно, в начальной строке запроса указан только метод передачи данных и путь к файлу обработчику. Однако отправляемые данные находятся в теле запроса, которое отделяется от заголовков двойным переходом на новую строку. Также обратите внимание, что появился еще один обязательный заголовок Content-Length, по значению которого сервер определяет окончание запроса.

Итак, мы рассмотрели протокол HTTP передачи данных между клиентом и сервером и два метода передачи данных – GET и POST.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]