core/src/main/java/org/nanohttpd/protocols/http/NanoHTTPD.java
public Response handle(IHTTPSession session) {
        for (IHandler<IHTTPSession, Response> interceptor : interceptors) {
            Response response = interceptor.handle(session);
            if (response != null)
                return response;
        }
        return httpHandler.handle(session);
    }
public Response handle(IHTTPSession session) {
        for (IHandler<IHTTPSession, Response> interceptor : interceptors) {
            Response response = interceptor.handle(session);
            if (response != null)
                return response;
        }
        return httpHandler.handle(session);
    }
This is the "master" method that delegates requests to handlers and makes
sure there is a response to every request. You are not supposed to call
or override this method in any circumstances. But no one will stop you if
you do. I'm a Javadoc, not Code Police.

@param session
the incoming session
@return a response to the incoming session