Баг на миллион долларов

в 13:55, , рубрики: HTTP-запрос, IT-стандарты, SPDY, Веб-разработка, метки: ,

Голландский программист Жак Матти (Jacques Mattheij) — владелец сайта ww.com и один из первых людей, кто организовал прямые трансляции с веб-камер в интернете. Он обращает внимание на баг в HTTP, благодаря которому можно заметно ускорить работу множества веб-приложений и обычных веб-сайтов.

HTTP (RFC 1945) формально является синхронным протоколом. В стандарте чётко прописано, что HTTP-ответ может быть отправлен только после получения соответствующего HTTP-запроса. На практике же всё работает иначе.

На форуме StackOverflow ещё пару лет назад обсуждалась эта тема. Действительно, сайт может выслать HTTP-ответ раньше, чем получил запрос.

Жак Матти пишет, что благодаря эксплуатации этого бага много лет назад ему удалось в десяток раз увеличить фреймрейт при трансляциях с веб-камер. Если следовать спецификациям HTTP, то скорость передачи была в районе 1 FPS, но при использовании асинхронного режима ему удалось повысить скорость до 15 FPS. Все браузеры отлично работают в асинхронном режиме, нарушая спецификации и принимая ответ от сайта до отправки запроса.

Жак говорит, что до сих пор нервничает каждый раз при выходе новых версий браузера, но напрасно: браузеры продолжают работать в обход спецификаций. Более того, новый стандарт SPDY может узаконить такой режим работы.

Автор: alizar

Источник

Поделиться

* - обязательные к заполнению поля