¿Cuál es la diferencia entre redirigir y navegar / avanzar y cuándo usar qué?

¿Cuál es la diferencia entre una navegación en JSF?

FacesContext context = FacesContext.getCurrentInstance();
context.getApplication().getNavigationHandler().handleNavigation(context, null, url);

y una redirección

HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
response.sendRedirect(url);

¿Y cómo decidir cuándo usar qué?

El problema con la navegación es que la URL de la página no cambia a menos quefaces-redirect=true se agrega a la cadena de consulta de la URL de navegación. Sin embargo, en mi caso anexandofaces-redirect=true genera un error si quiero redirigir a una página que no sea JSF como una página HTML simple.

Y otra opción es como sugirió BalusC enError de redireccionamiento JSF 2.0

Respuestas a la pregunta(1)

Su respuesta a la pregunta