httpWriteRequestHeaders(request, response, message) {
    response.writeStatus(Buffer.from(request.response.status.toString()));

    response.writeHeader(HTTP_HEADER_CONNECTION, CLOSE);
    response.writeHeader(X_KUZZLE_REQUEST_ID, message.requestId);

    for (const header of this.httpConfig.headers) {
      // If header is missing, add the default one
      if (request.response.headers[header[2]] === undefined) {
        response.writeHeader(header[0], header[1]);
      }
    }

    // Access-Control-Allow-Origin Logic
    if (
      request.response.headers["Access-Control-Allow-Origin"] === undefined &&
      message.headers &&
      message.headers.origin
    ) {
      response.writeHeader(
        HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN,
        Buffer.from(message.headers.origin),
      );

      response.writeHeader(HTTP_HEADER_VARY, ORIGIN);
    }

    if (request.response.headers["set-cookie"]) {
      for (const cookie of request.response.headers["set-cookie"]) {
        response.writeHeader(HTTP_HEADER_SET_COOKIE, Buffer.from(cookie));
      }
    }

    for (const [key, value] of Object.entries(request.response.headers)) {
      // Skip some headers that are not allowed to be sent or modified
      if (HTTP_SKIPPED_HEADERS.includes(key.toLowerCase())) {
        continue;
      }

      response.writeHeader(Buffer.from(key), Buffer.from(value.toString()));
    }
  }
@param {uWS.HttpRequest} request
@param {uWS.HttpResponse} response
@param {HttpMessage} message