code: private void handleNewRequest() {
  
          // if this is an http/2 request, skip to discrimination
          if (!isAlpnHttp2Link(this.vc)) {
              final HttpInboundServiceContextImpl sc = getHTTPContext();
              // save the request info that was parsed in case somebody changes it
              sc.setRequestVersion(sc.getRequest().getVersionValue());
              sc.setRequestMethod(sc.getRequest().getMethodValue());
  
              // get the response message initialized. Note: in the proxy env, this
              // response message will be overwritten; however, this is the only
              // spot to init() it correctly for all other cases.
              sc.getResponseImpl().init(sc);
  
              this.numRequestsProcessed++;
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "Received request number " + this.numRequestsProcessed + " on link " + this);
              }
  
              // check for the 100-continue scenario
              if (!sc.check100Continue()) {
                  return;
              }
          }
          handleDiscrimination();
      }
docs: Process a new request message, updating internal stats and calling the
  discrimination to pass it along the channel chain.