# WHATPORT(8000)

## NAME

port 8000 — Python http.server, Django runserver — The default port for ad-hoc Python HTTP servers and Django's development server.

Protocol: TCP  
IANA: irdmi

## DESCRIPTION

`python -m http.server` binds 8000 with no arguments, and `django-admin runserver` defaults to 127.0.0.1:8000. It is also a generic second-choice HTTP port for app servers behind a proxy. IANA registers 8000 as irdmi, which has nothing to do with any of this.

## EXPOSURE

**Expose with care.** A real app server behind a reverse proxy is fine on 8000; a development server is not. Python's own docs say `http.server` is not for production, and Django prints a do-not-use-in-production warning at startup — an exposed 8000 is usually one of those two, with a directory listing or a debug page open to anyone.

## CHECK

```sh
curl -sI http://localhost:8000/
```

## SEE ALSO

- docs — [Python docs — http.server (default port 8000, security notes)](https://docs.python.org/3/library/http.server.html) (docs.python.org)
- docs — [Django — django-admin runserver](https://docs.djangoproject.com/en/stable/ref/django-admin/) (docs.djangoproject.com)
- iana — [IANA Service Name and Transport Protocol Port Number Registry — 8000](https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=8000) (iana.org)

---

HTML: <https://whatport.net/8000/> · JSON: <https://whatport.net/8000.json> · full dataset: <https://whatport.net/ports.json>
