python urlopen的开放速度更快,而internet速度较慢?

python urlopen的开放速度更快,而internet速度较慢?,python,urllib,Python,Urllib,我正在尝试做一个程序,将阅读一个网站的网页。要读取的数据只有18kb。我有一个大学wifi连接,速度非常快,2 mbps,并且有一个代理服务器在运行 当我尝试运行代码时: import urllib data=urllib.urlopen("http://www.google.com") 运行相同的链接需要8到10秒,在web浏览器中打开的速度非常快 然而,当我在其他一些互联网连接上运行相同的代码时,它的速度不如大学wifi,代码运行不到一秒钟 我不明白为什么wifi上的速度较慢。这是因为代理

我正在尝试做一个程序,将阅读一个网站的网页。要读取的数据只有18kb。我有一个大学wifi连接,速度非常快,2 mbps,并且有一个代理服务器在运行

当我尝试运行代码时:

import urllib
data=urllib.urlopen("http://www.google.com")
运行相同的链接需要8到10秒,在web浏览器中打开的速度非常快

然而,当我在其他一些互联网连接上运行相同的代码时,它的速度不如大学wifi,代码运行不到一秒钟

我不明白为什么wifi上的速度较慢。这是因为代理服务器吗?但是,如果是因为这个原因,那么为什么在浏览器中打开同一个链接花费的时间更少呢

提前谢谢

A:因为缓存的页面 作为一项常见功能,作为外围传输减少策略,在自己的+校园基础设施上的WebBrowser可能会受益于缓存页面存储,因此不会等待与远程服务器页面描述检索相关联的端到端传输延迟

与从远程服务器页面完全重新加载页面相比,缓存页面会立即加载

在以下关于删除缓存页面的评论之后:

虽然用户能够释放本地主机缓存,但答案是关于基于基础设施的校园/ISP缓存实践,它减少了访问/主干网络的总体流量,并且超出了最终用户的控制范围

修改OP后,要包括明确的URL目标:


在添加了与www.google.com的http启动会话的测试之后,您应该检查前滚事务,这恰好是在本说明的框架下开始的。DNS解析(如果未缓存)在浏览器/python中需要相同的时间,重定向握手、加密服务导入、加密密钥交换握手以及设置httpS会话所需的其他导入/处理是python作为通用语言解释器必须导入/处理的下一个隐藏步骤,而浏览器已经准备好作为一个专门的软件进行开发。如果从处理端跟踪/定时使用探查器和/或从传输端跟踪/定时使用网络嗅探器,您将看到更多详细信息。

下载18kb文件并不代表您的internet连接速度。对于较小的文件大小,我们正在寻找有效的延迟

启动urllib.urlopenhttp://www.google.com 在幕后会有很多动作。举几个例子:

它将请求DNS将www.google.com转换为IP 也许谷歌可以重定向你,比如HTTPS 您和服务器之间的任何节点都可以在请求时间代理QoS中发挥作用 然而,为了解决您的问题,我建议您使用traceroute ICMP和traceproto来查看您、Google和两者之间的每个节点之间的延迟。例如:

$ traceroute google.com
traceroute to google.com (173.194.40.135), 30 hops max, 60 byte packets
 1  par10s10-in-f7.1e100.net (173.194.40.135)  18.142 ms  18.116 ms  18.111 ms

但是想想网络通信,你必须注意所有的因素,我现在接收的速度是10.47Mbps。我必须下载18kb的数据。我花了10秒来下载。我真的需要一个缓存页面来加速下载吗???只是为了确保,我删除了所有缓存的文件和图像,但仍然需要一秒钟的时间才能加载到浏览器上。不要依赖类似的测试工具。实际工作负载不符合测试场景。实际生产将受到其他问题的影响-网络运营商协调性差的接入网NEXT/FEXT降级,ADSL/VDSL/HDB3信令/线路代码调制共存,xDSL/DSLAM集中策略,主干网设计/瓶颈,服务级别无优先级排队。先生,这对我来说太多了,一下子消化不了P无论如何,我不明白你们的工作量和产量。我想说的是,同一个网站在浏览器上快速打开,不涉及缓存页面,但不从urllib.urlopen打开。该评论与之前关于使用某种速度测试的评论相关,该评论现在被删除,并反映了原因,为什么基于网络的速度测试不能为进一步的假设提供可靠的结果。这是代码。这一行代码只需10秒作为旁注,您可能需要查看一下,而不是使用普通的urllib。我理解你的意思,但令人困惑的是,如果我通过浏览器或python打开google,这些节点或多或少都是相同的,那么为什么python需要这么长时间才能连接,而不是我的浏览器呢。