docs: public static String redirect(final HttpServerExchange exchange, final String newRelativePath, final boolean includeParameters) {
          try {
              StringBuilder uri = new StringBuilder(exchange.getRequestScheme());
              uri.append("://");
              uri.append(exchange.getHostAndPort());
              uri.append(encodeUrlPart(exchange.getResolvedPath()));
              if (exchange.getResolvedPath().endsWith("/")) {
                  if (newRelativePath.startsWith("/")) {
                      uri.append(encodeUrlPart(newRelativePath.substring(1)));
                  } else {
                      uri.append(encodeUrlPart(newRelativePath));
                  }
              } else {
                  if (!newRelativePath.startsWith("/")) {
                      uri.append('/');
                  }
                  uri.append(encodeUrlPart(newRelativePath));
              }
              if (includeParameters) {
                  if (!exchange.getPathParameters().isEmpty()) {
                      boolean first = true;
                      uri.append(';');
                      for (Map.Entry<String, Deque<String>> param : exchange.getPathParameters().entrySet()) {
                          for (String value : param.getValue()) {
                              if (first) {
                                  first = false;
                              } else {
                                  uri.append('&');
                              }
                              uri.append(URLEncoder.encode(param.getKey(), UTF_8));
                              uri.append('=');
                              uri.append(URLEncoder.encode(value, UTF_8));
                          }
                      }
                  }
                  if (!exchange.getQueryString().isEmpty()) {
                      uri.append('?');
                      uri.append(exchange.getQueryString());
                  }
              }
              return uri.toString();
          } catch (UnsupportedEncodingException e) {
              throw new RuntimeException(e);
          }
      }