我已经开始对浏览器指纹感兴趣了。据我所知:“每个浏览器的标题顺序都是固定的,不能在浏览器设置中更改。”因此,...首先,我希望按照浏览器发送标题的顺序来读取浏览器标题。我已经尝试过使用普通Java的“request.getHeadernames()",但是它没有提供正确的顺序。(请参阅我的更严格的问题here)所以我的问题是:如何从Tomcat Web服务器读取浏览器标题序列?
643ylb081#
servlet API独立于http头的顺序,正如您所发现的,tomcat解析头并将它们存储在一个Map中,没有特定的顺序。如果您对请求的原始内容感兴趣,您必须替换tomcat的解析代码--例如,找到解析头的位置并更改该行为。一旦tomcat完成了解析,我怀疑您无法倒带输入流并再次读取原始头。然后您需要将它们存储在一个保持头顺序的map中,或者将特定的请求属性与原始数据一起保存,以便应用程序以后使用。在任何情况下:如果您使用Tomcat来完成此任务,则必须深入研究它的实现。
1条答案
按热度按时间643ylb081#
servlet API独立于http头的顺序,正如您所发现的,tomcat解析头并将它们存储在一个Map中,没有特定的顺序。
如果您对请求的原始内容感兴趣,您必须替换tomcat的解析代码--例如,找到解析头的位置并更改该行为。一旦tomcat完成了解析,我怀疑您无法倒带输入流并再次读取原始头。然后您需要将它们存储在一个保持头顺序的map中,或者将特定的请求属性与原始数据一起保存,以便应用程序以后使用。
在任何情况下:如果您使用Tomcat来完成此任务,则必须深入研究它的实现。