求救万能的 V 友, chrome 访问本地 127.0.0.1 的 django 服务丢包

2018-12-17 20:59:10 +08:00
 AgentK

这个问题太怪异了 我想了两天没想通 本地启动的一个 django rest framework 的 API 服务, 链接如 http://127.0.0.1:8000/api/xxx 的形式 用 chrome 和 firefox 访问, 手动刷新如上 URL, 大概 20-50 次,就会出现丢包的问题 具体表现是返回的 json 数据在中间丢失了 1461 个字符,导致 json 数据不规范,无法解析,用 ip 127.0.0.1 访问是丢失 1461 个字符, 用内网 ip 192.168.2.100 访问就是丢失 1457 个字符, 192.168.2.100 比 127.0.0.1 多 4 个字符 1461 这个数字看起来和 MTU 有点关系, 但是奇葩的是:

  1. 我用 python requests 包循环请求这个链接 10000 次 都不会丢包
  2. 我电脑连手机共享的 wifi: 丢包
  3. 我电脑连网线: 丢包
  4. 在同一局域网下,我用另一台 mac 笔记本访问这同一个服务: 不丢包
  5. 只有在我这台电脑, 用任何浏览器访问下才会出现丢包
  6. 用 flask 做了同一个 API, 也返回一个数据库 100 行数据, 10000+字符: 不丢包

真的太诡异了...我到现在没有想通...求助万能的 V 友

1561 次点击
所在节点    问与答
8 条回复
AgentK
2018-12-17 23:07:14 +08:00
noqwerty
2018-12-17 23:12:39 +08:00
chrome 开了什么插件吗?隐身模式试试
AgentK
2018-12-18 01:10:44 +08:00
没有 chrome 和 firefox 都是这样
OscarUsingChen
2018-12-18 01:16:53 +08:00
curl 呢?排除变量法
ruandao
2018-12-18 08:56:02 +08:00
抓包
xiadong1994
2018-12-18 15:30:15 +08:00
MTU 导致丢包会触发 TCP 重传的啊,不会在应用层发现少数据吧。还是抓包看下吧
AgentK
2018-12-20 20:51:50 +08:00
一开抓包软件 fiddler 就不丢包了 关闭 fiddler 马上开始丢包
AgentK
2018-12-21 20:33:13 +08:00
.....

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/518398

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX