Насколько я могу судить, спецификация XMLHttpRequest не дает таких гарантий.
Как правило, браузеры склонны рассматривать неявное упорядочение запросов как проблему (называемую блокировкой заголовка ) и стараются ее избегать.
С HTTP / 1.1, чтобы избежать блокировки заголовка строки, браузеры открывают несколько TCP-подключений к одному источнику . Если R1 и R2 отправляются по разным TCP-соединениям, ничто не может гарантировать их порядок доставки, поскольку любой из них может быть подвержен произвольным сетевым задержкам.
При использовании HTTP / 2 браузеры могут открывать только одно TCP-соединение , то есть запросы будут поступать на сервер в том же порядке, в котором они были отправлены браузером. Таким образом, порядок может содержать де-факто с HTTP / 2. (Очевидно, что даже если это произойдет, только до того момента, когда сервер анализирует эти запросы и начинает их обслуживать. Например, если ваше соединение HTTP / 2 завершается с помощью nginx, он будет отправлять запросы от одного соединения нескольким работникам как как можно скорее. Другими словами, на практике может быть сложно «игнорировать балансировку нагрузки».)
Но, опять же, это рассматривается как проблема с HTTP / 2, и разрабатывается решение в виде QUIC , которое основано на UDP и поэтому теряет повторное упорядочение между мультиплексными соединениями.