State management: SessionState vs State?

I’ve seen both the state and SessionState being recommended as ways to manage state across re-runs (triggered by user actions).

  • can someone summarize the main differences?
  • is one recommended over the other?

thanks