Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в Веб программирование.doc
Скачиваний:
81
Добавлен:
07.11.2018
Размер:
4.42 Mб
Скачать

Клиентские методы http

В HTTP метод клиента определяет запрос, отправленный от Web-клиента, либо РНР-сценария, HTTP-серверу. Чаще всего используются три основных типа запросов:

GET-запросы. Когда вы хотите только получить информацию от источника HTTP, то можете сделать это методом GET. Получить информацию можно из файла, либо от исполняемой программы на Web-сервере с указанным URL-адресом.

POST-запросы. Когда вы хотите отправить информацию от клиента Web-серверу, то используете запрос POST. Обычно это имеет место, когда вы отправляете серверу содержимое Web-формы.

HEAD-запросы. Когда вы хотите получить информацию о запрошенном URL, но не информацию самого URL, то используете запрос HEAD.

Несмотря на то, что РНР делает определенные вещи легко, он не реализует их в полной мере. В частности, хотя средство потоков РНР Streams позволяет довольно просто получать доступ к ресурсам HTTP, как если бы они были файлами, оно не дает возможности получить доступ к метаинформации. Чтобы получить доступ к метаинформации, можно обратиться к объекту HttpClient.

Что возвращается обратно: коды ответа сервера

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

НТТР/1.1 200 ОК

НТТР/1.1 — показывает тип протокола, а 200 ОК — это код ответа сервера. Существуют пять основных типов кодов ответа:

100 — 199: общая информация, являющаяся частью HTTP 1.1 и используемая редко.

200 — 299: корректный запрос клиента. Например, 200-ОК — запрос клиента принят, ответ сервера будет содержать запрошенные данные.

300 — 399: запрос был перенаправлен по другому адресу. Браузер должен запросить содержимое с нового адреса.

400 — 409: ошибка клиентского запроса. Наиболее часто используются следующие коды из этого диапазона: 401: неавторизованный. Клиенту не хватает корректной авторизации для получения документа. Когда код состояния 401 отправляется браузеру, последний должен каким-то образом запросить у клиента удостоверение.

404: не найден. Запрошенная информация не найдена по указанному URL.

500 — 509: ошибка на стороне сервера.

Заголовки http

Как уже было сказано выше, транзакции 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.