You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

手机访问本地Django服务器触发HTTP 400错误的问题咨询

Django本地服务器移动端HTTP访问问题解决方案

问题1:如何让手机无需HTTPS/TLS正常访问站点

  • 清除浏览器HSTS缓存
    • Safari:打开「设置」→「Safari浏览器」→「清除历史记录与网站数据」;或者精准清理:「设置」→「Safari浏览器」→「高级」→「网站数据」,找到目标局域网IP对应的条目删除。
    • DuckDuckGo:进入浏览器设置,找到「隐私与安全」板块,选择「清除浏览数据」,勾选「网站设置」后执行清除。
  • 关闭浏览器自动HTTPS跳转
    • DuckDuckGo:在设置中找到「自动HTTPS」(部分版本叫「强制HTTPS」)选项并关闭。
    • Safari:无单独开关,清除HSTS缓存后,手动输入完整的http://192.168.1.123:8000/home地址即可。
  • 确保Django服务器绑定正确地址
    启动服务器时绑定到局域网可访问的地址,执行命令:
    python manage.py runserver 0.0.0.0:8000
    
    这样手机才能通过局域网IP正常连接。
  • 规避有HSTS记录的IP/端口
    如果当前局域网IP曾被浏览器标记过HSTS(比如之前搭过HTTPS服务),可以临时换个端口(比如8001)或者用Mac的另一个网卡IP测试。

问题2:排查思路验证与遗漏点

你的排查思路是正确的:通过抓包对比确认移动端强制使用HTTPS、服务器仅支持HTTP,锁定HSTS为核心原因,这个判断没问题。

可能遗漏的排查点:

  • 代理/VPN干扰:检查手机是否开启了代理或VPN,部分工具会强制将HTTP请求转为HTTPS,导致手动输入http://也被跳转。
  • Django配置检查:确认settings.py中的ALLOWED_HOSTS包含你的局域网IP,比如:
    ALLOWED_HOSTS = ['192.168.1.123', 'localhost']
    
    虽然这不会直接导致HTTPS跳转,但配置错误可能引发其他400错误,干扰问题排查。
  • 浏览器插件/扩展:移动端浏览器的隐私类插件可能强制启用HTTPS,建议临时禁用所有插件后测试。
  • 局域网网关规则:部分路由器或网关设备内置HTTP转HTTPS的强制规则,可尝试用手机热点直接连接Mac,绕开路由器验证是否是网络环境导致。

内容的提问来源于stack exchange,提问作者ChillyGrasp999

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 07:31:28