RTSP 2.0 | Поле общего заголовка Date

RTSP 2.0 | Поле общего заголовка Date

Общие заголовки RTSP 2.0 — это заголовки, которые могут использоваться как в запросах, так и в ответах. Общие заголовки RTSP 2.0 перечислены в таблице 1

Поле общего заголовка «Date» представляет дату и время, когда сообщение было отправлено. Включение заголовка Date в сообщение RTSP следует этим правилам:

  • Сообщение RTSP, отправленное клиентом или сервером, содержащее тело, ДОЛЖНО включать заголовок Date, если у отправляющего хоста есть часы;
  • Клиентам и серверам РЕКОМЕНДУЕТСЯ включать заголовок Date во все другие сообщения RTSP, если отправляющий узел имеет часы;
  • Если на сервере нет часов, которые могут обеспечить разумное приближение текущего времени, его ответы НЕ ДОЛЖНЫ включать поле заголовка Date. В этом случае НЕОБХОДИМО следовать этому правилу: некоторые реализации сервера-источника могут не иметь доступных часов. Исходный сервер без часов НЕ ДОЛЖЕН присваивать ответу значения Expires или Last-Modified, если только эти значения не были связаны с ресурсом системы или пользователем с надежными часами. Он МОЖЕТ присваивать значение Expires, о котором известно, во время или до времени конфигурации сервера, что оно находится в прошлом (это позволяет «pre-expiration» (предварительное истечение) ответов без сохранения отдельных значений Expires для каждого ресурса).

Полученное сообщение, которое не имеет поля заголовка Date, ДОЛЖНО быть назначено получателем, если сообщение будет кэшировано этим получателем. Реализация RTSP без часов НЕ ДОЛЖНА кэшировать ответы без повторной проверки при каждом использовании. Кэш RTSP, особенно кеш общего пользования, ДОЛЖЕН использовать механизм, такой как сетевой протокол времени (NTP) [RFC5905 #], для синхронизации своих часов с надежным внешним стандартом.

 

Дата RTSP, полная дата, указанная в разделе 3.3 из [RFC5322 #], отправленная в заголовке даты, НЕ ДОЛЖНА представлять дату и время после генерации сообщения. Он ДОЛЖЕН представлять наилучшее имеющееся приближение даты и времени генерации сообщения, если только реализация не имеет средств для генерации достаточно точной даты и времени. Теоретически, дата должна представлять момент непосредственно перед генерацией тела сообщения. На практике, дата может быть сгенерирована в любое время во время создания сообщения, не затрагивая его семантическое значение.

Примечание. Формат даты RTSP 2.0 определен как формат полной даты в RFC 5322. Этот формат является более гибким, чем формат даты в RFC 1123 #, используемый RTSP 1.0. Таким образом, реализации должны использовать одиночные пробелы в качестве разделителей, как рекомендовано в RFC 5322, и поддерживать прием устаревшего формата.

Кроме того, обратите внимание, что синтаксис позволяет добавлять комментарии в конце даты.

Синтаксис поля общего заголовка Date в RTSP 2.0

Date = "Date" HCOLON RTSP-date
RTSP-date = date-time ;
date-time = <Определён в разделе 3.3 документа RFC 5322 #>

date-time = [ day-of-week "," ] date time [CFWS]
day-of-week = ([FWS] day-name) / obs-day-of-week
day-name = "Mon" / "Tue" / "Wed" / "Thu" / "Fri" / "Sat" / "Sun"
date = day month year
day = ([FWS] 1*2DIGIT FWS) / obs-day
month = "Jan" / "Feb" / "Mar" / "Apr" / "May" / "Jun" / "Jul" / "Aug" / "Sep" / "Oct" / "Nov" / "Dec"
year = (FWS 4*DIGIT FWS) / obs-year
time = time-of-day zone
time-of-day = hour ":" minute [ ":" second ]
hour = 2DIGIT / obs-hour
minute = 2DIGIT / obs-minute
second = 2DIGIT / obs-second
zone = (FWS ( "+" / "-" ) 4DIGIT) / obs-zone

Ссылки

Скачать оригинальный документ на английском языке RFC 7826 — Real-Time Streaming Protocol Version 2.0

Читать полную версию документа на русском языке RFC 7826 — Потоковый протокол в реальном времени (RTSP), версия 2.0

Ссылка на синтаксис