路径参数 PathVariable 由于并没有被 Undertow 的 Listener 或者 Handler 解析处理,所以拦截不到,无法确认是否是一个 PathVariable 还是就是 url 路径。所以,PathVariable 的占位符是不会起作用的。
请求地址相关 描述 缩写占位符 全名占位符 参数占位符 源码host 和 port,一般就是 HTTP 请求 Header 中的 Host 值,如果 Host 为空则获取本地地址和端口,如果没获取到端口则根据协议用默认端口(http:80,,https:443) 无 %{HOST_AND_PORT} 无 HostAndPortAttribute
请求本地地址 IP %A %{LOCAL_IP} 无 LocalIPAttribute
请求本地端口 Port %p %{LOCAL_PORT} 无 LocalPortAttribute
请求本地主机名,一般就是 HTTP 请求 Header 中的 Host 值,如果 Host 为空则获取本地地址 %v %{LOCAL_SERVER_NAME} 无 LocalServerNameAttribute
请求远程主机名,通过连接获取远端的主机地址 %h %{REMOTE_HOST} 无 RemoteHostAttribute
请求远程 IP,通过连接获取远端的 IP %a %{REMOTE_IP} 无 RemoteIPAttribute
注意:
请求的远程地址我们一般不从请求连接获取,而是通过 Http Header 里面的 X-forwarded-for 或者 X-real-ip 等获取,因为现在请求都是通过各种 VPN,负载均衡器发上来的。
响应相关属性 描述 缩写占位符 全名占位符 参数占位符 源码发送的字节数大小,除了 Http Header 以外 %b (如果为空就是 -) 或者 %B (如果为空就是 0) %{BYTES_SENT} (如果为空就是 0) 无 BytesSentAttribute
accesslog 时间,这个不是收到请求的时间,而是响应的时间 %t %{DATE_TIME} %{time, 你自定义的 java 中 SimpleDateFormat 的格式} DateTimeAttribute
HTTP 响应状态码 %s %{RESPONSE_CODE} 无 ResponseCodeAttribute
HTTP 响应原因 无 %{RESPONSE_REASON_PHRASE} 无 ResponseReasonPhraseAttribute
响应 Header 的某一个值 无 无 %{o,你要看的header值} ResponseHeaderAttribute
响应 Cookie 的某一个值 无 无 %{resp-cookie,你要看的cookie值} ResponseCookieAttribute
响应时间,默认 undertow 没有开启请求时间内统计,需要打开才能统计响应时间 %D(毫秒,例如 56 代表 56ms) %T(秒,例如 5.067 代表 5.067 秒) %{RESPONSE_TIME}(等价于 %D) %{RESPONSE_TIME_MICROS} (微秒) %{RESPONSE_TIME_NANOS}(纳秒) 无 ResponseTimeAttribute