5.13.1 Требования поддержки RFC 2616
Совместимая реализация CDMI должна также включать реализацию RFC2616 (см. [RFC 2616]) (т.е., HTTP 1.1). Перечисленные ниже примеры описывают некоторые части RFC 2616, которые должны поддерживаться, но этот список не является исчерпывающим.
5.13.2 Согласование типа содержимого
Для операций CDMI используются типы медиа CDMI объектов, определенные в [RFC 6208].
Клиент может опционально предоставлять заголовок HTTP Accept согласно 14.1 RFC 2616. Если клиент требует, чтобы в ответе содержался определенный тип медиа CDMI, соответствующий тип должен быть указан в заголовке Accept. Иначе, заголовок может содержать "*/*" или список типов, или быть опущен.
Если в сообщении-запросе присутствует тело, клиент должен включать заголовок Content-Type согласно пункту 14.17 RFC 2616. Если в таком случае клиент не предоставляет заголовок Content-Type содержимого или тип медиа в заголовке Content-Type не соответствует существующему типу ресурса, сервер должен вернуть код состояния HTTP 400 Bad Request.
Если в сообщении-ответе присутствует тело, сервер должен предоставить заголовок Content-Type.
Настоящий стандарт допускает дальнейшие согласования типа содержимого (например, в 9.3 отсутствие заголовка Content-Type несет особую информацию).
5.13.3 Поддержка диапазона
Сервер должен поддерживать заголовки HTTP Range и ответы с частичным содержимым (см. 14.16 RFC 2616).
5.13.4 Экранирование в URI
Ко всем строкам, использованным в URI, должно применяться экранирование зарезервированных символов знаком процента (%), определенное в RFC 3986. Это касается имен полей, предоставленных пользователем, имен метаданных, имен объектов, имен контейнеров и имен доменов, использованных в URI.
Имена и значения полей не должны экранироваться в телах сообщений запросов и ответов.
Пример - Клиент, получающий метаданные объекта "@user" из контейнера "@MyContainer", должен выполнить следующий запрос:
GET /%40MyContainer/?objectName;metadata:%40user HTTP/1.1
Host: cloud.example.com
Accept: application/cdmi-container
X-CDMI-Specification-Version: 1.0.2
В ответ должно быть получено:
НТТР/1.1 200 ОK
Content-Type: application/cdmi-container
X-CDMI-Specification-Version: 1.0.2
{
"objectName": "@MyContainer>,
"metadata": {
"@user": "test"
}
}
5.13.5 Использование URI
Формат и синтаксис URI определяются RFC 3986.
Каждый клиент CDMI должен поддерживать один или несколько корневых URI, чтобы каждый из них соответствовал корневому контейнеру сервера CDMI. Так как все URI контейнеров CDMI завершаются наклонной чертой, все корневые URI также завершаются наклонной чертой.
Все URI в данном международном* являются относительными (relative) URI, заданными относительно корневых URI, если не сказано иное. Таким образом, в качестве алгоритма разрешения URI используется алгоритм из пункта 5.2 RFC 3986.
___________________