Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сетевые протоколы в инфокоммуникациях (ПЗ).docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
3.51 Mб
Скачать

6.4.2. Сравнение uri

При сравнении двух URI с целью проверки их идентичности клиент должен использовать пооктетное сравнение с учетом регистра, в котором напечатаны символы. Допускаются следующие исключения:

  • номер порта не указан, тогда для данного URI берется значение по умолчанию;

  • сравнение имен ЭВМ и схем не должно быть чувствительным к строчным/прописным буквам;

  • Пустой abs_path эквивалентен abs_path "/".

Символы, отличные от типов reserved и unsafe, устанавливаются равными их эквивалентам в кодировке ""%" HEX HEX". Например, следующие три записи URI являются эквивалентными:

http://abc.com:80/~smith/home.html http://ABC.com/%7Esmith/home.html http://ABC.com:/%7Esmith/home.html

6.5. Форматы даты/времени. Полная дата

HTTP приложения допускают три различных формата для представления метки времени и даты:

Sun, 06 Nov 1994 08:49:37 GMT ; RFC-822, актуализировано в RFC-1123 Sunday, 06Nov94 08:49:37 GMT ; RFC-850, объявлено устаревшим в RFC-1036 Sun Nov 6 08:49:37 1994 ; ANSI C's asctime()

Первый формат предпочтительнее, как стандарт Интернет и представляет собой форму фиксированной длины, определенную RFC-1123. Второй формат используется достаточно широко, но базируется на устаревшем документе RFC-850 [7.12], формат даты не имеет 4 цифр года. Клиенты и серверы HTTP/1.1, которые анализируют дату, должны уметь работать со всеми тремя форматами (для совместимости с HTTP/1.0), хотя они должны сами генерировать время/дату согласно формату RFC-1123.

Получатели значений даты должны быть готовы принять коды, которые посланы не приложениями HTTP, что случается, когда данные поступают через прокси/порты или по почте в SMTP или NNTP-форматах.

Все метки времени/даты HTTP должны соответствовать времени по Гринвичу (GMT). Это указано в первых двух форматах путем включения строки "GMT" и должно предполагаться во всех прочих случаях.

HTTPdate = RFC-1123date | rRFC-850date | asctimedate RFC-1123date = wkday "," SP date1 SP time SP "GMT" RFC-850date = weekday "," SP date2 SP time SP "GMT" asctimedate = wkday SP date3 SP time SP 4DIGIT date1 = 2DIGIT SP month SP 4DIGIT ; day month year (\напр., 02 Jun 1982) date2 = 2DIGIT "" month "" 2DIGIT ; daymonthyear (напр., 02Jun82) date3 = month SP ( 2DIGIT | ( SP 1DIGIT )) ; month day (напр., Jun 2) time = 2DIGIT ":" 2DIGIT ":" 2DIGIT ; 00:00:00 23:59:59 wkday = "Mon" | "Tue" | "Wed" | "Thu" | "Fri" | "Sat" | "Sun" weekday = "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday" | "Sunday" month = "Jan" | "Feb" | "Mar" | "Apr" | "May" | "Jun" | "Jul" | "Aug" | "Sep" | "Oct" | "Nov" | "Dec"

HTTP требования для формата метки даты/времени применимы только для использования в рамках реализации самого протокола. Клиенты и серверы не требуют применения этих форматов для пользовательских презентаций, протоколирования запросов и т.д..

6.5.1. Интервалы времени в секундах

Некоторые поля заголовка HTTP допускают спецификацию значения времени в виде целого числа секунд, представленного в десятичной форме и равного времени с момента получения сообщения.

deltaseconds = 1*DIGIT