code: @Override
      protected void headerComplianceCheck() throws MessageSentException {
          final boolean bTrace = TraceComponent.isAnyTracingEnabled();
          if (bTrace && tc.isEntryEnabled()) {
              Tr.entry(tc, "headerComplianceCheck");
          }
  
          super.headerComplianceCheck();
  
          // 339972 - requests should include Date header only if a body is part
          // of the message
          if (getServiceContext().isOutgoingBodyValid() && !containsHeader(HttpHeaderKeys.HDR_DATE)) {
              if (bTrace && tc.isDebugEnabled()) {
                  Tr.debug(tc, "Creating a missing Date header");
              }
              setCurrentDate();
          }
  
          // HTTP/1.1 Requests must have Host header
          if (getVersionValue().equals(VersionValues.V11)) {
              if (!containsHeader(HttpHeaderKeys.HDR_HOST)) {
                  // 335003 - use the interface to allow localhttp to call here
                  HttpOutboundServiceContext osc = (HttpOutboundServiceContext) getServiceContext();
                  String data = osc.getTargetAddress().getHostname();
                  // if we're targeting a non-standard port, then append that
                  if (80 != osc.getRemotePort()) {
                      data += ":" + osc.getRemotePort();
                  }
                  if (bTrace && tc.isDebugEnabled()) {
                      Tr.debug(tc, "Creating a missing Host header: " + data);
                  }
                  setSpecialHeader(HttpHeaderKeys.HDR_HOST, data);
              }
          }
  
          if (bTrace && tc.isEntryEnabled()) {
              Tr.exit(tc, "headerComplianceCheck");
          }
      }
docs: /*
  @see
  com.ibm.ws.http.channel.internal.HttpBaseMessageImpl#headerComplianceCheck
  ()