Синтаксис строки запроса RTSP имеет следующий вид:
<Method> SP <Request-URI> SP <RTSP-Version> CRLF
Заголовки RTSP в таблице могут быть включены в запрос как request-headers (заголовки запроса), чтобы изменить специфику запроса.
Заголовок запроса «If-None-Match» может использоваться с одним или несколькими тегами тела сообщения, чтобы сделать запросы метода DESCRIBE условными. Клиент, имеющий одно или несколько тел сообщений, ранее полученных из ресурса, может проверить, что ни один из этих объектов не является текущим, включив список связанных с ним тегов тела сообщения в поле заголовка If-None-Match. Цель этой функции — обеспечить эффективное обновление кэшированной информации с минимальным объемом транзакций. В особом случае значение звёздочки «*» соответствует любой текущей сущности ресурса.
Если какой-либо из тегов тела сообщения совпадает с тегом тела сообщения тела сообщения, которое было бы возвращено в ответе на аналогичный запрос DESCRIBE (без заголовка If-None-Match) для этого ресурса, или если задано «*» и любой текущий объект существует для этого ресурса, тогда сервер НЕ ДОЛЖЕН выполнять запрошенный метод, если только это не требуется, поскольку дата модификации ресурса не совпадает с той, которая указана в поле заголовка If-Modified-Since в запросе. Вместо этого, если метод запроса был DESCRIBE, сервер ДОЛЖЕН ответить 304 (не измененным) ответом, включая поля заголовка, связанные с кэшем (в частности, MTag) одного из сопоставленных тел сообщения. Для всех других методов запроса сервер ДОЛЖЕН ответить со статусом 412 (предварительное условие не выполнено).
См. Раздел 16.1.3 из RFC 7826, чтобы узнать, как определить, совпадают ли два тега тела сообщения.
Если ни один из тегов тела сообщения не совпадает, то сервер МОЖЕТ выполнить запрошенный метод, как если бы поле заголовка If-None-Match не существовало, но ДОЛЖНО также игнорировать любые поля заголовка If-Modified-Since в запросе. То есть, если никакие теги тела сообщения не совпадают, сервер НЕ ДОЛЖЕН возвращать ответ 304 (не изменен).
Если запрос без поля заголовка If-None-Match приведет к чему-либо, кроме статуса 2xx или 304, то заголовок If-None-Match ДОЛЖЕН игнорироваться. (См. Раздел 16.1.4 из RFC 7826 для обсуждения поведения сервера, когда оба If-Modified-Since и If-None-Match появляются в одном запросе.)
Результат запроса с полем заголовка If-None-Match и полем заголовка If-Match не указан и ДОЛЖЕН рассматриваться как недопустимый запрос.
Синтаксис поля заголовка запроса If-None-Match в RTSP 2.0
If-None-Match = "If-None-Match" HCOLON ("*" / message-tag-list)
Ссылки
Скачать оригинальный документ на английском языке RFC 7826 — Real-Time Streaming Protocol Version 2.0
Читать полную версию документа на русском языке RFC 7826 — Потоковый протокол в реальном времени (RTSP), версия 2.0
Ссылка на синтаксис