Взаимодействие между клиентом и сервером в рассматриваемой нами архитектуре происходит с использованием протокола HTTP (HyperText Transfer Protocol). Браузер инициирует запрос к HTTP-серверу и получает ответ.
Запрос клиента представляет собой символьную строку. Запрос клиента в общем случае содержит:
· Метод доступа;
· Адрес запрашиваемого ресурса с параметрами;
· Тело запроса (информация о клиенте, данные и т.п.);
· Другую информацию для обработки запроса.
Метод доступа сообщает серверу о характере запроса клиента. В HTTP используется несколько методов доступа. С точки зрения обработки запросов с помощью PHP нам интересны методы доступа GET и POST.
Метод GET предписывает серверу выдать информацию по адресу запрашиваемого ресурса. Для уточнения запрашиваемой информации помимо адреса ресурса передаются параметры, которые доступны серверу. Тело запроса, как таковое, отсутствует – все, что нужно для формирования ответа сервера, содержится в параметрах запроса.
Параметры задаются после адреса запрашиваемого ресурса, параметры начинаются со знака ?.
Пример запроса GET:
GET http://127.0.0.1/ex3.php?par1=100&par2=abc;&par3=80
Сервер распознает ex3.php как программу на PHP, которую необходимо вызвать. В качестве параметров в этой программе будут доступны параметры par1, par2 и par3. В запросе эти параметры разделяются &.
Метод POST также предписывает серверу выдать информацию по адресу запрашиваемого ресурса, метод POST, в отличие от GET, передает серверу не параметры, а тело запроса, из которого HTTP-сервер может получить параметры. Тело запроса должно быть, соответственно, оформлено особым образом. POST изначально задумывался как метод передачи серверу значительных объемов данных, но с точки зрения целей запроса POST и GET предназначены для одного и того же, различаются только способы извлечения параметров.