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

Ответ сервера

Если информация на сервере существует, сервер отправляет клиенту (браузеру) ответ (response) в виде:

HTTP/1.1 200 OK

Date: Sun, 14 Mar 2010 21:36:39 GMT

Server: Apache/2

Last-Modified: Sat, 28 Nov 2009 03:59:01 GMT

ETag: "1387e3-5f88-479666db44b40"

Accept-Ranges: bytes

Content-Length: 24456

Vary: Accept-Encoding, User-Agent

Connection: close

Content-Type: text/html; charset=utf-8

<html lang="en-US" xml:lang = "en-US"> <nlns="http://www.w3.org/1999/xhtml">

<head>

<script>

HTTP-ответ состоит из двух частей. В начале идет заголовок ответа (response header). Затем идет пустая строка и далее – сама запрошенная информация. Эта вторая часть называется телом (body). Вот что означают части заголовка:

HTTP/1.1 – первая строка сообщает клиенту, что информация будет отправлена по протоколу HTTP версии 1.1. Код 200 состояния HTTP означает: "Все хорошо, документ найден и сейчас будет отправлен".

Date – сообщает клиенту дату, установленную на сервере, с которого поступает информация. Стандартный часовой пояс – GMT, то есть время по Гринвичу.

Server – каков тип сервера, предоставляющего информацию.

Connection – сообщает клиенту, что соединение будет закрыто после того, как сервер завершит отправку информации.

Content-Type – сообщает клиенту, какой тип содержимого будет отправлен. В дополнение также указывается набор символов.

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

НТТР/1.1 200 ОК

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

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

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

404: не найден. 500 – 509: ошибка на стороне сервера.

Развитие прикладных протоколов: soap, rest, rpc

Развитие Internet определяет необходимость создания новых прикладных протоколов, не обязательно основанных на TCP и UDP.

В первую очередь, эти протоколы нужны для реализации поддержки веб-сервисов, и интерфейсов обмена данными между различными приложениями. Веб-сервисы могут быть написаны на разных языках и распределены на разных узлах сети. Наибольшее распространение получили следующие протоколы реализации веб-сервисов: Access Protocol (SOAP/WSDL/UDDI), XML-RPC (XML Remote Procedure Call), REST (Representational State Transfer). Рассмотрим подробнее эти протоколы.

XML-RPC

Это прародитель «веб-сервисов» и « api». Основан на удаленном вызове процедур. Преимуществом протокола является его простота, краткость сообщений, минимальная проверка формата данных. Минус — : недостаточная строгость, требуется отдельное описание сервиса.

REST

REST(Representational State Transfer) – это спецификация, построенная на стандартах HTTP, URL, XML и RDF (Resource Description Format).

Это не протокол, а технология, основанная на использовании набора операций: GET, PUT, POST и DELETE. Этих четырех операций оказывается достаточно для манипуляций с сетевыми ресурсами. Они позволяют отделить размещение ресурсов на сервере от восприятия этой информации клиентом и потоковую передачу информации. Горизонтальный подход REST к протоколам означает сохранение существующего уровня HTTP, без выстраивания уровней поверх него. При этом предполагается отказаться от разработки новых протоколов и использовать несколько старых, считая, что для работы с объектами достаточно уметь выполнять четыре типа действий. Так, протокол HTTP определяет методы GET/PUT/POST/DELETE.

В соответствии с базовыми принципами REST надо обращаться к объекту а не вызывать процедуру и передавать ей объект, как в RPC. В протоколе HTTP уже есть ряд методов работы с объектами. При этом, если XML-RPC использует из HTTP-протокола только транспортную часть для передачи XML запроса/ответа, то REST задействует HTTP полностью: и авторизационные заголовки, предпочтения по формату, языку, кодировке, по виду ответа, различные заголовки. Само тело сообщения может передаваться в разных форматах: XML либо JSON. Близость к HTTP упрощает и ускоряет его обработку веб-серверами. REST остается HTTP – запросом и может оказаться более производительным по сравнению с SOAP. SOAP, в свою очередь, более надежен и безопасен.

SOAP (Simple Object Access Protocol) был разработан в 1998 году в проекте Microsoft, как протокол доступа к объектам. SOAP применим в сложных архитектурах. SOAP используется поверх HTTP или другого протокола прикладного уровня. Сообщение SOAP выглядит так:

SOAP-конверт

SOAP-заголовок

Элемент заголовка 1

...

Элемент заголовка N

Тело SOAP

Элемент тела N

Элемент тела 1

SOAP опирается на XML для формата сообщения, и на протоколы HTTP и SMTP для передачи. Протокол SOAP состоит из трех частей: конверт, который определяет, состав сообщений, и способ его обработки, набор правил кодирования, а также конвенции для представления вызовов процедур и ответов. SOAP сообщение отправляется на сайт, который имеет включенные веб-сервисы, например, курсы валют. Обратно будет возвращён XML-документ с полученными данными цены. Он может быть интегрирован непосредственно в сторонние веб-сайты или приложения.

SOAP архитектура состоит из нескольких слоев: для формата сообщения, модели обработки сообщений, а также протокола расширения.

Несмотря на заявленную простоту (Simple Object Access Protocol), SOAP является довольно тяжелой технологией и подвергается критике со стороны прикладных разработчиков. Последние заявляют, что работа с API сайта и веб-сервисами не должна быть сложнее работы с библиотекой функций, которую надо встроить в прикладную программу.