Django开发服务器400错误:HTTPS访问仅支持HTTP的服务
解决Django开发服务器400错误(Bad request version + HTTPS跳转问题)
不需要删除Docker,问题根源是浏览器强制跳转到HTTPS,但Django开发服务器仅支持HTTP,以下是具体排查和解决步骤:
1. 检查Django项目的安全配置
打开src/settings.py,查找以下配置项,开发环境下必须设为False:
SECURE_SSL_REDIRECT = False # 若之前设为True,改回False SESSION_COOKIE_SECURE = False CSRF_COOKIE_SECURE = False SECURE_HSTS_SECONDS = 0 # 若设置了HSTS时长,改为0 SECURE_HSTS_INCLUDE_SUBDOMAINS = False SECURE_HSTS_PRELOAD = False
修改后重启开发服务器:python manage.py runserver
2. 清除浏览器的HSTS缓存
即使修改了Django配置,浏览器可能已缓存HSTS(HTTP严格传输安全)规则,强制用HTTPS访问localhost或127.0.0.1:
- Chrome/Edge:地址栏输入
chrome://net-internals/#hsts(Edge为edge://net-internals/#hsts),找到「Delete domain security policies」,分别输入localhost和127.0.0.1执行删除。 - Firefox:地址栏输入
about:config,搜索network.stricttransportsecurity.preloadlist,设为false;或打开设置→隐私与安全→清除数据,勾选「站点设置」完成清除。
3. 用无痕模式快速验证
如果不想清除全局缓存,可先打开浏览器无痕/隐私窗口访问http://127.0.0.1:8000/,若能正常访问,即可确认是浏览器缓存导致的问题。
4. Docker相关说明
无需删除Docker,之前的Docker配置可能曾启用HTTPS,导致浏览器缓存HSTS规则,但只要清除缓存并调整Django开发环境配置,就能恢复正常。后续若要在Docker中部署HTTPS,属于生产环境配置,开发环境仍使用HTTP即可。
内容的提问来源于stack exchange,提问作者atabekdemurtaza
相关产品推荐
相关产品推荐

