How is Django able to grant reserved port numbers?
<p>Using this command </p>

<blockquote>
  <p><code>python manage.py runserver 0.0.0.0:8000</code></p>
</blockquote>

<p>we can host a Django server locally on any port.So a developer can use reserved and privileged port numbers say</p>

<blockquote>
  <p><code>python manage.py runserver 127.0.0.1:80</code></p>
</blockquote>

<p>So, now I am using port 80 defined for the HTTP protocol.</p>

<p>So, why does this not raise any issues and how is this request granted ?  </p>

<p>Port 80 has no magical meaning, it is not "reserved" or "privileged" on your server (besides most likely requiring root privileges to access, as others have mentioned). It is just a regular port that was chosen to be a default for http, so you don't have to write <code>google.com:80</code> every time in your browser, that's it. </p>

<p>If you have no web server running such as apache or nginx which usually listen to that port, then port 80 is up for grabs. You can run django runserver on it, you can run a plain python script listening to it, whatever you like.</p>

python django port