在Spring Boot中如何跟踪唯一的Web请求?

4

我有一个Spring Boot(MVC)Java服务器。如何跟踪每个独特的Web请求?例如,我想知道以下内容。

  1. 如何获取Web请求的用户代理(浏览器类型、设备类型,如移动设备或桌面设备)?
  2. 如何获取Web请求的IP地址或位置?
  3. 如何计算Web请求的数量?例如,我想以同步方式计算请求计数。
1个回答

9

大部分的信息会通过HttpServletRequest中的header提供。

1. 如何获取Web请求的用户代理信息?

用户代理信息?没错!

String userAgentInfo = request.getHeader("User-Agent");

也可以使用API工具进行检查。

2. 如何获取Web请求的IP地址或位置?

虽然我不能提供位置信息,但我们可以使用不同的header来获取IP地址信息。

  • X-Forwarded-For
  • Proxy-Client-IP
  • WL-Proxy-Client-IP
  • HTTP_X_FORWARDED_FOR
  • HTTP_X_FORWARDED
  • HTTP_X_CLUSTER_CLIENT_IP
  • HTTP_CLIENT_IP
  • HTTP_FORWARDED_FOR
  • HTTP_FORWARDED
  • HTTP_VIA
  • REMOTE_ADDR

根据请求类型,这些header可以给你IP地址信息。

3. 如何统计Web请求的数量?

老式的Filter技术可以帮助您跟踪点击次数。

这里可以提供更好的帮助。

如果使用Spring-boot,则在控制器中使用@RequestHeader(value="User-Agent")可以帮助获取相应值。其他情况也一样。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接