почему реактивные заголовки http возвращают список при запросе по ключу

#java #http

Вопрос:

Я получаю http-заголовок из org.springframework.http.server.reactive.ServerHttpRequest реактивного http-запроса, используя этот код:

 ServerHttpRequest request = exchange.getRequest();
HttpHeaders headers = request.getHeaders();
List<String> host = headers.get("Host");
 

что меня смущает, так это то, что запрос заголовка по ключу возвращает структуру данных списка. Насколько я знаю, заголовок был структурой данных со значением ключа, почему при использовании ключа для запроса результата заголовка не возвращалась строка vaue напрямую?

Комментарии:

1. Заголовки HTTP-запросов могут повторяться, поэтому клиент может отправлять несколько значений с одним и тем же именем заголовка. Я полагаю, в этом причина такого дизайна.

2. Заголовки Http действительно являются парами KV, но уникальности по ключу нет. Этот дизайн очень точно отражает выбор, сделанный в API сервлетов. Если вы просто хотите получить первое значение для заголовка, используйте getFirst

3. как a:b и a:c , тот же ключ a и значение разницы b и c?@ernest_k