What is the difference between assign and put_session in Plug.Conn of the Phoenix Framework? : <p>The documentation (<a href="https://hexdocs.pm/plug/Plug.Conn.html" rel="noreferrer">https://hexdocs.pm/plug/Plug.Conn.html</a>) names two functions that allow for storing a key-value pair in a <code>conn</code></p>

<pre><code>assign(conn, key, value)
</code></pre>

<blockquote>
  <p>Assigns a value to a key in the connection</p>
</blockquote>

<pre><code>put_session(conn, key, value)
</code></pre>

<blockquote>
  <p>Puts the specified value in the session for the given key</p>
</blockquote>

<p>What is the difference between these two functions?</p>
