docs: private void parseURLHost(byte[] url, int start, int end) {
          // save the host:port now, could be hostname, hostname:port, IP,
          // IP:port, or [IPv6]:port
          int length = end - start;
          if (0 >= length) {
              throw new IllegalArgumentException("Missing host/port");
          }
          int name_start = start;
          int name_end = end;
          int port_start = -1;
          int port_end = -1;
          if (LEFT_BRACKET != url[name_start]) {
              // hostname plus optional port if colon is found
              int colon_index = GenericUtils.byteIndexOf(url, BNFHeaders.COLON, name_start, length);
              if (-1 != colon_index) {
                  name_end = colon_index;
                  port_start = colon_index + 1;
                  port_end = end;
              }
          } else {
              // IPV6 IP and port
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "IPV6 host in the URL");
              }
              // find the right bracket marking the end of the IPV6 IP
              // name_start++; // skip past the bracket
              int index = GenericUtils.byteIndexOf(url, RIGHT_BRACKET, name_start, length);
              if (-1 != index) {
                  // save the ip, then check for port
                  // Note: reverse these 2 lines if we want to strip []s off
                  index++;
                  name_end = index;
                  if (index < end && BNFHeaders.COLON == url[index]) {
                      port_start = index + 1;
                      port_end = end;
                  }
              } else {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, "No end to the IPV6 IP");
                  }
                  throw new IllegalArgumentException("Invalid IPV6 IP");
              }
          }
          // save the hostname information
          length = name_end - name_start;
          if (0 >= length) {
              throw new IllegalArgumentException("Hostname not present");
          }
          this.sUrlHost = GenericUtils.getEnglishString(url, name_start, name_end);
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, "Found URL host: " + this.sUrlHost);
          }
          // save the port information
          if (-1 != port_start && port_end > port_start) {
              length = port_end - port_start;
              this.iUrlPort = GenericUtils.asIntValue(url, port_start, length);
          } else {
              // PK06407
              // if the port was not in the URL but the host was, then default the
              // virtual host to match the scheme
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "Defaulting URL port to match scheme: " + getScheme());
              }
              if (SchemeValues.HTTPS.equals(getSchemeValue())) {
                  this.iUrlPort = 443;
              } else {
                  this.iUrlPort = 80;
              }
          }
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, "Found URL port of " + this.iUrlPort);
          }
      }