title: What is the best way to upload files in a modern browser
body: <p>I want to upload a (single) file to a server and show the progress of the upload.</p>
  
  <p>I know I can upload a file using HTTP POST. I'm not familiar with web-sockets, but as I understand, binary data can also be sent that way and because web sockets are bi-directional I could get the progress of the upload.</p>
  
  <p>I'm not worried about older browsers so iframe's and flash solutions aren't very appealing unless there is a significant advantage in going that route.</p>
  
  <p><del>I'm also curious as to the best server-side technology. Are their advantages to using a WSGI server like Django? Or maybe non-blocking I/O technology like Node.js? I'm not asking if web framework x is better than web framework y, or server x is better than server y. But simply what the ideal technology should have in order to facility uploads in the client.</del></p>
  
  <p><strong>Update</strong>: <em>It seems like the server side does not have bearing on the technologies/API's available on the client to facilitate uploads.</em></p>