Впервые за 15 лет обновлена спецификация протокола HTTP/1.1
- RFC 7230: Message Syntax and Routing
- RFC 7231: Semantics and Content
- RFC 7232: Conditional Requests
- RFC 7233: Range Request
- RFC 7234: Caching
- RFC 7235: Authentication
- RFC 7236: Authentication Scheme Registrations
- RFC 7237: Method Registrations
- RFC 7238: the 308 status code
- RFC 7239: Forwarded HTTP extension
На подготовку обновления спецификации HTTP/1.1 ушло семь лет, было выпущено 26 предварительных черновиков, внесено более 2600 изменений, устранено 550 недоработок. Обновления были разработаны участниками группы HTTPBis, также ответственной за создание стандарта HTTP/2.0. Разделение спецификации на группу отдельных RFC произведено с целью оптимизации будущей спецификации HTTP/2.0, в которой теперь можно сослаться на типовые не изменившиеся технологии, вместо их переопределения. При этом, по отдельности документы более компактны, в то время как старый RFС состоял из 176 страниц. Описание элементов HTTP/1.1 значительно упрощено для восприятия и детализировано. Из текста исключены двусмысленные формулировки.
Из нововведений можно выделить:
- Стандартизован 308 код статуса выполнения запроса, определяющий механизм постоянного перенаправления (permanent redirect). В отличие от кода 301 (Moved Permanently), при получении кода 308 клиенту запрещается менять текущий метод запроса (при 301 метод обычно менялся на GET);
- Приведена к устоявшейся практике логика реакции на коды статуса 301 и 302, которая теперь подразумевает смену метода с POST на GET;
- Стандартизован заголовок Forwarded для сохранения IP-адреса оригинального запроса после проброса соединения через прокси или балансировщик нагрузки. Forwarded пришёл на замену таким заголовкам, как X-Forwarded-For и X-Forwarded-Proto;
- Явно определено поведение при наличии непредусмотренных символов пробела и запрещено разбиение содержимого заголовков на несколько строк, что должно исключить появление уязвимостей, манипулирующих разделением запроса;
- Снято ограничение на два одновременных соединения к серверу;
- Прекращена поддержка HTTP/0.9;
- Удалено требование к использованию ISO-8859-1 как кодировки по умолчанию;
- Снято требование по обязательной обработке всех полей заголовков Content-*;
- Запрещено использование Content-Range в PUT-запросах;
- В качестве значения Referer при открытии страницы с нуля рекомендовано использовать "about:blank", что позволит отделить запросы без перехода от запросов с запрещённым Referer;
- Определена допустимость кэширования для кодов 204, 404, 405, 414 и 501;
- Содержимое заголовка Location теперь может задаваться относительно текущего URI;
- Удалена поддержка заголовка Content-MD5.
Источник: http://www.opennet.ru/opennews/art.shtml?num=39956
|
0 | Tweet | Нравится |
|