Перечисление использовалось в сочетании с Hashtable и Vector. У метода HttpServletRequest был метод getHeaderNames с jdk 1.2 и с тех пор он не был изменен.
Однако у HttpServletResponse не был метод getHeaderNames до jdk 6, и к тому времени коллекция явно была предпочтительнее, чем предыдущая Enumeration.
Ответ 2
Метод запроса реализован в версии 1.2 Java.
и в то время как собранные были получены из jdk 6.
поэтому по мере улучшения java они использовали две различные коллекции и перечисление вещей.
если вы видите значения заголовка ответа, в них не будет изменений, если мы изменили коллекцию.
Ответ 3
Это может быть просто потому, что метод запроса был реализован до того, как API коллекций был добавлен в java (я думаю, в java 1.2). Это было существенное улучшение java, и на нем построено большое количество java-API. Однако некоторые предыдущие части API-интерфейса Java были построены ранее на Enumerations, Vectors (до того, как Vector был реализован java.util.List) и т.д.... Для совместимости он остался таким.
Ответ 4
В первом случае вы просто получите значения. Во втором вы получите ссылку на коллекцию, которую вы можете изменить.
В документации они указывают:
Любые изменения в возвращаемом Collection не должны влиять на этот HttpServletResponse.
Поэтому он должен быть изменен, но модификация не должна влиять на ответ.