
- •В.С. Романчик
- •Глава 2. Использование php.
- •Глава 3.
- •Введение
- •Возможности php.
- •Инструменты для разработки
- •Как php работает
- •Глава 1. Язык php Типы данных
- •Массивы и инициализация массивов
- •Объектно-ориентированное программирование в php Основные понятия ооп
- •Классы и Объекты
- •Конструкторы и деструкторы
- •Наследование классов и интерфейсов
- •Магические методы
- •Обработка ошибок
- •Ошибки php и директива error_reporting
- •Чтение и запись бинарных файлов
- •Работа с каталогами в рнр
- •MySql – сервер: бд1; бд2; бд3; бд4;
- •Язык запросов sql
- •Операция соединения.
- •Команды sql для создания баз данных и таблиц
- •Выборка данных из таблиц бд
- •Работа с MySql (сохранение данных в базе данных).
- •Работа с MySql занесение и получение данных из базы данных
- •Некоторые улучшения в организации работы с данными
- •Передача данных от клиента к серверу и от сервера клиенту
- •Клиентские методы http get, post, head
- •Обработка html-форм и передача переменных в скрипт.
- •Передача значений переменных по методу get
- •Ниже рассмотрен еще один пример передачи данных из клиентской формы на сервер по методу get
- •Передача данных на сервер по методу post
- •Php и обработка различных форм
- •Примеры обработки форм
- •Работа с e-mail
- •Отправка почты на php (Функция mail)
- •Cookies-наборы: сохраненное состояние
- •Сессии (Сеансы) Переменные сеанса
- •Отмена регистрации сеансовых переменных
- •Работа с сеансовыми переменными
- •Постоянные данные, использующие сеансы и cookie-наборы
- •Вывод графических данных с помощью рнр Основной способ создания изображений
- •Получение информации об изображении
- •Функции рисования прямых и кривых линий
- •Заливка изображений
- •Работа с палитрой изображения
- •Удаление и изменение цветов палитры
- •Создание прозрачности в изображениях
- •Рисование с помощью кистей
- •Использование специальных стилей для заливки
- •Использование шрифтов и вывод строк
- •Манипулирование и копирование изображений
- •Создаём графический информер на php
- •Слияние изображений с помощью gd
- •Включения удаленных файлов
- •Различные приложения и полезные скрипты на php
- •Пример. Определение типа и версии браузера
- •Генератор паролей на php
- •Время выполнения скрипта
- •Календарь
- •Загрузка файла от клиента на сервер
- •Работа с ftp на уровне php
- •Сбор статистики на php
- •Проверка ввода емайл
- •Чтение почты через Web-интерфейс
- •Разработка собственных листов рассылки
- •Рассылаем письма
- •Добавляем адреса в список рассылки
- •Редактирование адресов
- •Автоответчик
- •Почтовые функции в рнр
- •Задания для выполнения
- •Приложение 1. Протокол передачи гипертекстов http
- •Клиентские методы и заголовкиHttp
- •Указатель ссылки ("Referer")
- •Медиа-типы
- •Кодирование
- •Безопасность и авторизация
- •Кэширование содержимого http на стороне клиента
- •Http идентификация с php
- •Сжатие данных в протоколе http
- •Модель ajax: между загруженной в браузер страницей и сервером появляется прослойка - уровень ajax, который обеспечивает следующую последовательность выполнения приложения.
- •Класс xmlHttpRequest
- •Методы класса xmlHttpRequest
- •Свойства класса xmlHttpRequest
- •Создание экземпляра объекта xmlHttpRequest
- •Использование dom
- •Проблема с кешированием
- •Информируйте пользователя
- •Нет принципов написания кода
- •Аутентификация средствами php
- •Отделение клиентская части программы от серверной части и шаблоны
- •Использование шаблонов в php
- •Шаблоны подстановки
- •Создаем свои шаблоны в php
- •Теги, атрибуты, значения
- •Структура документа
- •Разрыв строки
- •Предварительное форматирование
- •Комментарии
- •Физическая и логическая разметка документа
- •«Физические» теги:
- •«Логические» теги:
- •Специальные символы
- •Графика
- •Формы html
- •Метатеги
- •Способы включения каскадных таблиц стилей
- •Синтаксис
- •Группирование
- •Наследование
- •Множественные классы.
- •Селекторы идентификаторов (id-селекторы).
- •Комментарии
- •Свойства шрифтов.
- •Свойства текста.
- •Представление документа в виде специальных областей – блоков
- •Отступы, поля, позиционирование.
- •Границы элементов.
- •Визуальные эффекты
- •Свойства списков
- •Свойства таблиц
- •Псевдоклассы
- •Псевдостили текста
- •Псевдоэлементы
- •Различные свойства
- •Css. Примеры
- •Типы данных
- •Ассоциированные массивы
- •Операторы
- •Подпрограммы
- •Приложение 11. Популярные веб-приложения и фреймворки
- •Фреймворки
Клиентские методы и заголовкиHttp
В HTTP используются три основных типа запросов:
GET-запросы. Когда вы хотите только получить информацию от источника HTTP, то можете сделать это методом GET. Получить информацию можно из файла, либо от исполняемой программы на Web-сервере с указанным URL-адресом.
POST-запросы. Когда вы хотите отправить от клиента Web-серверу содержимое Web-формы, то используете запрос POST
HEAD-запросы. Когда вы хотите получить информацию о запрошенном URL, но не информацию самого URL, то используете запрос HEAD.
Чтобы получить доступ к метаинформации, можно обратиться к объекту HttpClient.
При выполнении таких HTTP-методов, как GET или POST, их результат возвраща-ется в первой строке ответа сервера, включающем трехзначный код состояния, например:
НТТР/1.1 200 ОК
Первая часть ответа — НТТР/1.1 — показывает тип протокола, 200 ОК — код ответа сервера.
Существуют пять основных типов кодов ответа, разбитых на группы:
100 — 199: общая информация; 200 — 299: корректный запрос клиента; 300 — 399: запрос был перенаправлен по другому адресу; 400 — 409: ошибка клиентского запроса; 500 — 509: ошибка на стороне сервера.
Наиболее часто применяемые коды: 200-ОК — запрос клиента принят, ответ сервера будет содержать запрошенные данные. 404: запрошенная информация не найдена по указанному URL. 401: неавторизованный запрос. Когда код состояния 401 отправляется браузеру, последний должен запросить у клиента удостоверение.
Как уже было сказано выше, транзакции HTTP состоят из метода HTTP и не-которого количества HTTP-заголовков. Существуют четыре основных типа HTTP-заголовков:
Общий (general). Сюда относятся заголовки, которые используются и клиентом и сервером, включающие общую информацию, такую как дата, кэширование и состояние соединения. Среди них следующие:
Cache-control, Connection, Date, Pragma. Trailer, Transfer-Encoding, Upgrade, Via, Warning.
Запрос (request). Когда клиент запрашивает информацию, заголовок запроса содержит сведения о конфигурации клиента и поддерживаемых форматах данных. Заголовки запроса включают следующие:
Accept, Accept-Charset, Accept-Encoding, Accept-Language, Authoriza¬tion, Cookie, Expect, From, Host, If-Modified-Since, If-Match, If-None-Match, If-Range, If-Unmodified, Max-Forwards, Proxy-Authorization, Range, Referer, ТЕ (transfer encoding — кодировка передачи), User-Agent.
Ответ (response). Когда сервер посылает информацию клиенту, заголовки ответа описывают конфигурацию сервера и несут информацию о запрошенном URL. Заголовки запроса включают следующие:
Accept-Ranges, Age, ETag, Location, Proxy-Authenticate, Retry-After, Server, Set-Cookie, Vary, WWW-Authenticate.
Сущность (entity). Эти заголовки содержат информацию о формате информации, отправленной туда и обратно. Они могут быть использованы как серверами (при отправке информации), так и клиентами (при подтверждении данных, обычно при операции POST). Сущностные заголовки включают следующие:
Allow, Content-Encoding, Content-Language, Content-Length, Content-Location, Content-Range, Content-Type, Expires, Last-Modified.
Идентификация клиентов и серверов
Когда выполняется транзакция HTTP, то и клиент, и сервер, участвующие в ней, могут идентифицировать себя. Как и большинство случаев идентификации в Internet, это не обязательно и легко подделать. Идентификация со стороны клиента осуществляется отправкой серверу заголовка User-agent, который описывает тип клиента. Соответственно, сервер посылает заголовок Server клиенту. Заголовок User-agent позволяет настроить информацию для разных клиентов индивидуально. Это касается исего — от обработки ошибок в разных браузерах, до включения расширенных средств конкретного браузера.
Хотя обычно заголовок User-agent отправляется из браузера на сервер, заголовок Server, не всегда посылается во время HTTP-транзакции. Это — предосторожность в интересах безопасности.
Ниже приведены несколько примеров строк с заголовком User-agent:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)
Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; .NET CLR 1.1.4322)
Moziila/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/85.7 (KHTML, вроде Gecko) Safari/85
Когда вы программируете на РНР, то обычно заинтересованы в идентификации User-agent. Информация о сервере, на котором работает программа уже известна. Стандартная PHP-переменная $_SERVER содержит заголовок User-agent. Вы можете получить к ней доступ следующим образом:
$user_agent = $_SERVER['HTTP_USER_AGENT'];