Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32k
Open
Description
Bug report
Bug description:
When HTTPS is enabled, the command-line interface ofhttp.server
can't bind IPv6 addresses correctly and the--directory
flag doesn't work.
bind IPv6
HTTPS server throw an exception when I was trying to bind a IPv6 address, but HTTP server can bind IPv6 address.
# HTTPS$ ./python -m http.server --tls-cert~/Projects/ssl/localhost.crt --tls-key~/Projects/ssl/localhost.key -b ::1# ...TypeError: AF_INET address must be a pair (host, port)# HTTP$ ./python -m http.server -b ::1Serving HTTP on ::1 port 8000 (http://[::1]:8000/) ...
--directory
issue
The HTTPS server always uses the work path of current terminal as its root directory and ignores the--directory
flag:
#HTTPS$./python -m http.server --tls-cert~/Projects/ssl/localhost.crt --tls-key~/Projects/ssl/localhost.key -d~/testServing HTTPS on 0.0.0.0 port 8000 (https://0.0.0.0:8000/) ...127.0.0.1 - - [18/May/2025 13:28:16] "GET / HTTP/1.1" 200 -$curl -k https://0.0.0.0:8000/<!DOCTYPE HTML><html lang="en"><head>#...</head><body><h1>Directory listing for /</h1><hr><ul><li><a href=".azure-pipelines/">.azure-pipelines/</a></li><li><a href=".coveragerc">.coveragerc</a></li><li><a href=".devcontainer/">.devcontainer/</a></li><li><a href=".editorconfig">.editorconfig</a></li><li><a href=".git/">.git/</a></li><li><a href=".gitattributes">.gitattributes</a></li><li><a href=".github/">.github/</a></li>#...#Filesin my cpython repo's root path</ul><hr></body></html>#HTTP$./python -m http.server -d~/testServing HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...127.0.0.1 - - [18/May/2025 13:24:30] "GET / HTTP/1.1" 200 -$curl http://0.0.0.0:8000/<!DOCTYPE HTML><html lang="en"><head>#...</head><body><h1>Directory listing for /</h1><hr><ul><li><a href="1">1</a></li><li><a href="2">2</a></li><li><a href="3">3</a></li></ul><hr></body></html>
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux