public Connector createConnector(Props props) {
    Connector connector = new Connector(HTTP_PROTOCOL);
    connector.setURIEncoding("UTF-8");
    connector.setProperty("address", props.value(WEB_HOST.getKey(), "0.0.0.0"));
    connector.setProperty("socket.soReuseAddress", "true");
    // See Tomcat configuration reference: https://tomcat.apache.org/tomcat-9.0-doc/config/http.html
    connector.setProperty("relaxedQueryChars", "\"<>[\\]^`{|}");
    connector.setProperty("maxHttpHeaderSize", String.valueOf(MAX_HTTP_HEADER_SIZE_BYTES));
    connector.setMaxPostSize(MAX_POST_SIZE);
    configurePort(connector, props);
    configurePool(props, connector);
    configureCompression(connector);
    return connector;
  }
@Test
  public void createConnector_shouldUseHardcodedPropertiesWhereNeeded() {
    Props props = getEmptyProps();
    Connector connector = tomcatHttpConnectorFactory.createConnector(props);

    // General properties
    assertThat(connector.getURIEncoding()).isEqualTo("UTF-8");
    assertThat(connector.getProperty("socket.soReuseAddress")).isEqualTo("true");
    assertThat(connector.getProperty("relaxedQueryChars")).isEqualTo("\"<>[\\]^`{|}");
    assertThat(connector.getProperty("maxHttpHeaderSize")).isEqualTo(49152);
    assertThat(connector.getMaxPostSize()).isEqualTo(-1);
    // Compression properties
    assertThat(connector.getProperty("compression")).isEqualTo("on");
    assertThat(connector.getProperty("compressionMinSize")).isEqualTo(1024);
    assertThat(connector.getProperty("compressibleMimeType")).isEqualTo("text/html,text/xml,text/plain,text/css,application/json,application/javascript,text/javascript");
  }