- •Архитектура Web-приложений
- •Краткое описание архитектуры asp.Net и .Net Framework
- •Архитектура .Net Framework
- •Краткие итоги
- •Создание Web-приложений в среде Delphi
- •1. Особенности
- •2. Достоинства
- •3. Интеграционная роль веб-технологий
- •Сайты и страницы, сервисы, порталы
- •Структура протокола http
- •Методы запросов протокола http
- •Коды состояния протокола http
- •Пример диалога по протоколу http
- •Клиентские скрипты
- •Серверные скрипты
- •1. Ключи
- •2. Индексирование
- •3. Субд Mysql
- •8. Установка соединения
- •9. Выбор базы данных
- •10. Получение списка полей таблицы
- •10.1. Синтаксис Mysql_list_fields
- •11. Запись данных в базу данных
- •11.1. Синтаксис Mysql_query
- •Отображение данных, хранящихся в Mysql
- •1. Добавление записей
- •2. Выбор записей
- •3. Удаление записей
- •1. Принцип атаки внедрения sql
- •2. Методика атак типа внедрение sql-кода
- •3. Защита от атак типа внедрение sql-кода
- •1. Принцип атаки внедрения sql
- •1.1. Внедрение в строковые параметры
- •1.2. Использование union
- •1.4. Экранирование хвоста запроса
- •1.5. Расщепление sql-запроса
- •2. Методика атак типа внедрение sql-кода
- •2.1. Поиск скриптов, уязвимых для атаки
- •3. Защита от атак типа внедрение sql-кода
- •3.1. Фильтрация строковых параметров
- •3.2. Фильтрация целочисленных параметров
- •3.3. Усечение входных параметров
- •3.4. Использование параметризованных запросов
- •1. Вступление
- •2. JavaScript вкратце
- •Специфика клиентского языка
- •11. Внедрение Java Script в html
- •12. Обработка событий
- •Масштабируемость
- •Вопросы проектирования, касающиеся быстродействия и масштабируемости
Коды состояния протокола http
Определение 13. Код состояния протокола HTTP – числовое значение состояния протокола, определяемое результатом обработки последнего запроса. В настоящее время выделено пять классов кодов состояния. 1xx Informational (Информационный) 2xx Success (русск. Успешно) Сообщения данного класса информируют о случаях успешного принятия и обработки запроса клиента. В зависимости от статуса сервер может ещё передать заголовки и тело сообщения. 3xx Redirection (русск. Перенаправление) Коды статуса класса 3xx сообщают клиенту что для успешного выполнения операции нужно произвести следующий запрос к другому URI. В большинстве случаев новый адрес указывается в поле Location заголовка. Клиент в этом случае должен, как правило, произвести автоматический переход. 4xx Client Error (русск. Ошибка клиента) Класс кодов 4xx предназначен для указания ошибок со стороны клиента. При использовании всех методов кроме HEAD сервер должен вернуть в теле сообщения гипертекстовое пояснение для пользователя. 5xx Server Error (русск. Ошибка сервера) Коды 5xx выделены под случаи неудачного выполнения операции по вине сервера. Для всех ситуаций, кроме использования метода HEAD, сервер должен включать в тело сообщения объяснение, которое клиент отобразит пользователю.
Пример диалога по протоколу http
Запрос:
GET /wiki/HTTP HTTP/1.1 Host: ru.wikipedia.org User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5 Accept: text/html Connection: close
Ответ:
HTTP/1.0 200 OK Server: nginx/0.6.31 Content-Language: ru Content-Type: text/html; charset=utf-8 Content-Length: 1234 Connection: close <содержимое запрошенной страницы>
Клиентские скрипты
Как следует из названия, клиентские языки обрабатываются на стороне клиента пользователя, а если проще – программы на клиентском языке обрабатывает браузер. Отсюда следует и недостаток – это то, что обработка скрипта зависит от браузера пользователя, и пользователь имеет полномочия настроить свой браузер так, чтобы он вообще игнорировал написанные вами скрипты. При этом, если браузер старый, он может не поддерживать тот или иной язык или версию языка. Также код клиентского скрипта может посмотреть каждый, кто откроет страницу со скриптом. Преимущество же клиентского языка заключается в том, что обработка скриптов на таком языке может выполняться без отправки документа на сервер. Пример: нужно проверить правильно ли пользователь ввел e-mail; чтобы это сделать пользователю, надо было бы отправить форму с заполненными данными, потом дождаться, пока она обработается, и лишь после этого получить сообщение об ошибке (если она, разумеется, присутствует). Это недопустимо с точки зрения удобства для пользователя и траты ресурсов. С клиентским же языком программа сразу проверит правильное заполнение формы перед отправкой, и, если необходимо, выведет ошибку. Отсюда же вытекает и то ограничение, что с помощью клиентского языка программирования ничто не может быть записано на сервер, то есть, например, с его помощью нельзя сделать гостевую книгу. Самым распространенным из языков клиентских скриптов является JavaScript.
