private void removeAmbryHeaders(RestResponseChannel restResponseChannel) {
    restResponseChannel.getHeaders()
        .stream()
        .filter(header -> header.startsWith(AMBRY_HEADER_PREFIX))
        .forEach(restResponseChannel::removeHeader);
  }
Process the request and construct the response, internally the invocation is delegated
to method {@link #doHandle(RestRequest, RestResponseChannel, Callback)}, which is
implemented by subclasses.

@param restRequest the {@link RestRequest} that contains the request headers and body.
@param restResponseChannel the {@link RestResponseChannel} that contains the response headers and body.
@param callback the {@link Callback} to invoke when the response is ready (or if there is an exception).
@throws RestServiceException exception when the processing fails
ambry-frontend/src/main/java/com/github/ambry/frontend/s3/S3BaseHandler.java