#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