title: What is the difference between assign and put_session in Plug.Conn of the Phoenix Framework?
body: <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>