JSF - @Scoped

Pessoal sou novo em JSF!
Alguém pode me explicar qual a diferença entre @ViewScoped, @ApplicationScoped, @SessionScoped e @RequestScoped e quando é aconselhado usar?

@ViewScoped
Instancia do bean é criada e mantida enquanto o usuário estiver na página (por exemplo, com os manipuladores de eventos ou Ajax). Deve implementar Serializable

@SessionScoped
Criado um por sessão de cada usuário.

@ApplicationScoped
Criado um para toda a aplicação.

@RequestScoped
Escopo padrão. É criado a cada requisição.