Интересный вопрос.
Обсуждение того, как появилась эта функция, вероятно, похоронено где-то в архивах списков рассылки, для которых я не смог найти действительную ссылку. Ваш пример не единственный проблемный. Для чего нужен сервер с "fr; q = 1.0, en; q = 1.0", если он поддерживает оба языка. Служите французскому, потому что он первый? А как насчет "fr, en; q = 1.0"?
Мне кажется, что упорядоченный список языковых предпочтений будет лучше соответствовать проблеме, чем текущий взвешенный (и, возможно, отсортированный) список. Есть слишком много крайних случаев, когда спецификация об ожидаемом поведении от реализации.
По крайней мере (некоторые из) авторов спецификации согласны с тем, что эта функция далека от совершенства ( Основные различия между HTTP / 1.0 и HTTP / 1.1 - документ, представленный на восьмой Международной конференции World Wide Web ) :
" Поскольку механизм согласования контента допускает qvalues и подстановочные знаки и выражает вариации во многих измерениях (язык, набор символов, тип контента и кодирование контента), автоматический выбор" наилучшего из доступных " «Вариант может быть сложным и может привести к неожиданным результатам. Эти варианты могут тонко взаимодействовать с кэшированием; см. обсуждение в разделе 3.4.
Согласование содержимого обещает стать плодотворной областью для развития дополнительных протоколов. Например, рабочая группа HTTP распознала полезность автоматического согласования относительно функций реализации клиента, таких как размер экрана, разрешение и глубина цвета. IETF создала рабочую группу по согласованию контента для продолжения работы в этой области."
Короче говоря, у меня нет реального ответа, но, надеюсь, участник процесса спецификаций расскажет о нем.