xaker

Обновление для HTTP 1.1

  • вторник, 10 июня 2014 г. в 03:10:46
http://www.xakep.ru/post/62611/

Инженерный совет Интернета (IETF) принял несколько новых стандартов, которые серьёзно обновляют протокол передачи данных HTTP 1.1.

По какой-то причине версия протокола не повысилась до HTTP 1.2, хотя прежние спецификации HTTP 1.1 теперь считаются устаревшими.

RFC 2616 для HTTP 1.1 написан более 15 лет назад. Рабочая группа HTTPBis как минимум семь лет трудилась над их дополнением и уточнением. Когда речь идёт о настолько популярном и общепринятом стандарте, как HTTP, то каждая мелочь проходит через согласование и обсуждение на всех уровнях.

Новый стандарт HTTP 2.0, который скоро будет принят, тоже включит в себя десять вышеупомянутых RFC.

Самое главное отличие нового HTTP 1.1, по сравнению со старым, — гораздо большее количество текста. Соответственно, многие вещи разъясняются гораздо подробнее, так что всё стало проще и понятнее, и малейшие двусмысленности и неясности теперь исключены.

Во-вторых, основные спецификации теперь разделены на шесть частей, тогда как раньше было лишь две части: RFC 2616 для HTTP и RFC 2617 для аутентификации.

В-третьих, утверждён код состояния 308, который соответствует четвёртому варианту переадресации: «постоянная переадресация» (permanent redirect). Получив такой код, клиентская программа должна следовать указанию и выполнить в точности такой же запрос по новому адресу. Для сравнения, после кода 301 клиентская программа обычно меняет метод на GET.

RFC 7239 утверждает стандарт на заголовок Forwarded, который призван заменить несколько заголовков, в том числе X-Forwarded-For и X-Forwarded-Proto.

Из других изменений:

  • прекращение поддержки HTTP 0.9;
  • снятие ограничения в два соединения на сервер;
  • снятие требования кодировки по умолчанию ISO-8859-1;
  • удаление заголовка Content-MD5;
  • запрет использования Content-Range на POST-запросах;
  • кэширование кодов 204, 404, 405, 414 и 501;
  • использование about:blank для указания referer’а в том случае, если не стоит прямой запрет на указание referer’а (чтобы отличать клиентов без referer’а от клиентов с запретом на его указание);
  • заголовок Location теперь может указывать на ссылку с хештегом;
  • и многое другое.