urllib里是否实现了DNS缓存?

python3.6
之前在看urllib相关内容时,有读到过一篇博客提到urllib实现了DNS缓存,但是现在找不到原帖了。
我阅读了一下urllib的request.py的源码,没有找到与DNS缓存相关的部分,刚开始学python看的有点乱,不知道是我没读懂还是不在request.py内,有没有哪位研究过这个问题?

0

3个回答

按照这个文章的说法,是没有

So I wonder it does cache stuff somewhere, right?
It doesn't.
更进一步地,你可以排查下别的环节是不是有缓存。
具体看:
https://stackoverflow.com/questions/3586295/does-urllib2-urlopen-cache-stuff

0
caozhy
贵阳挖掘机马善福,自备车辆专业挖游泳池 回复qq_28384353: dns缓存这个涉及的因素很多,网关、你的上一级dns,本机都有缓存。urllib应该没有。
大约一年之前 回复
qq_28384353
赤螭 谢谢,我去看了一下对方的问题应该是页面缓存,我是想问DNS缓存啊哈哈
大约一年之前 回复

应该是自己实现的缓存,urllib自己没有实现

0
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
DNS解析 与 DNS缓存 浅见
一、域名解析 为了方便记忆,网站都是注册了一个域名,通过域名来访问网站。访问网站内容,实际是通过访问IP地址实现的,所以在域名和IP之前存在一种对应关系,而域名解析服务器即 DNS服务器则完成将域名翻译成IP地址的任务。对于用户来说,永远不需要关心访问的IP地址是多少,只需要输入域名即可,所以当IP发生变化时对用户没有一点影响,这就是动 态域名解析。域名服务器承载着IP与域名的管理工作和
nginx的DNS缓存
nginx 配置中有1个upstream配置是指向一个域名Y的,而这个域名Y解析对应IP其实是会动态变化的。最近生产环境发现一个奇怪现象,上面的配置正常运行了至少半年以上,突然报告404.打开nginx的error日志后,发现nginx解析Y的结果竟然和ping解析的不同。于是查了nignx的资料,发现nginx本身有dns缓存机制,配置文件中 resolver 配置了dns的valid时间是10
dns高速缓存服务器
######dns###### 1.安装部署DNS yum insatll bind.x86_64 -y systemctl start named (敲键盘) sytemctl enable named systemctl stop firewalld systemctl disable firewalld 主配置文件: /etc/named.conf 子配置文件: /etc/n
主机和容器的DNS缓存分析
dns缓存项 a. dnsmasq服务缓存 缓存时间控制参数: local-ttl=3600 解析生效策略: 重启dnsmasq服务 b. nscd服务缓存: 缓存时间控制参数: 根据上游服务参数 解析生效策略: nscd -i hosts c. codedns服务缓存: 缓存时间控制参数: c...
Python爬虫——DNS解析缓存
前言:这是Python爬虫中DNS解析缓存模块中的核心代码,是去年的代码了,现在放出来 有兴趣的可以看一下。 一般一个域名的DNS解析时间在10~60毫秒之间,这看起来是微不足道,但是对于大型一点的爬虫而言这就不容忽视了。例如我们要爬新浪微博,同个域名下的请求有1千万(这已经不算多的了),那么耗时在10~60万秒之间,一天才86400秒。也就是说单DNS解析这一项就用了好几天时间,此时加上DNS解
Linux在shell终端中清空DNS缓存,刷新DNS的方法(ubuntu,debian)
前言 在Linux系统里查询DNS使用如下命令 dig baidu.com @114.114.114.114 或者使用系统默认的DNS服务器查询 nslookup baidu.com 下文中的方法不一定全管用,但你总能找到管用的一个 1.network-manager and networking 在一些Linux操作系统里,如ubuntu的特定版本,DNS是由network-manager这...
java dns缓存不刷新
问题域名 d.com 绑定的两个IP分别是IP1, IP2 因为业务调整把IP2替换成IP3,于是修改DNS配置d.com 到IP1,IP3,nslookup查看修改成功但是:通过 InetAddress.getAllByName("d.com");获取的还是老IP1,IP2,不能提前生效。解决开始刷新java dns cache ,清除但是还不管用,使用java NameService还是不管用
爬虫的DNS缓存
爬虫中的DNS缓存的实现 一、实验背景 在实现爬虫的过程中,需要对域名进行DNS解析,要向DNS服务器发起请求。当爬虫的量达到十万、千万级别时,这一部分的耗时就非常可观了,同时也给服务器增大了复旦。因此需要对其进行优化,使其能实现DNS缓存,不必发起太多请求。 二、实现方法 首先想到的就是修改hosts文件,这样能直接省下向DNS发起请求的时间。但是缺点是无法实时更新,如果域名和I
浏览器的DNS缓存 改hosts 不用再关浏览器了
firefox 插件,, HostAdmin https://addons.mozilla.org/zh-CN/firefox/addon/hostadmin/ window 下 修改注册表 [ HKEY_CURRENT_USER \Software\Microsoft\Windows\CurrentVersion\Internet Settings] ...
linux的dns高速缓存
一.DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。 二.配置实验环境 1.配置虚拟机IP,yum仓库,修改主机名为d
windows清除dns缓存,否则不是及时的
打开cmd,输入命令 ipconfig/flushdns
Android DNS之查询结果缓存
核心数据结构 resolv_cache_info 每个网卡都有一个该结构,用于保存该网卡相关的DNS配置信息,以及在该网卡上进行的DNS查询结果缓存信息,系统中所有网卡的该结构信息组织成一个单链表。 struct resolv_cache_info { //网卡的netid unsigned netid; //DNS查询缓存结果 Ca...
Linux DNS解析与NSCD缓存
搭建好DNS服务器后,配置nscd,用strace命令做了如下测试: 1、在/etc/resolv.conf文件中指定好DNS服务器 NDS可以正常解析: strace ping aaa.shan.com,得到结果如下:正确解析出结果 2、移走resolv.conf文件后 starce ping aaa.shan.com 结果如下:可以通过nscd的缓存找
清除谷歌浏览器的dns缓存
谷歌地址栏输入: chrome://net-internals/#dns出现下面界面:找到DNS选项,选择clear host cache即可效果:这样,谷歌浏览器上的dns缓存就清理掉了。应用场景:本地环境和线上环境用的是一个host,这时,如果直接将本地host注释掉,可能并不能直接访问线上环境,这可能就是浏览器的cdn缓存造成的,这时,就需要清理一下浏览器的cdn缓存来试一下。...
如何清除chrome,firefox浏览器dns缓存
我们在开发的时候,有时候会给某个域名绑hosts,用于本地开发测试,但是绑了之后,用谷歌浏览器访问会发现并没有生效,按F12会发现访问的还是线上的ip,说明浏览器是有该域名的dns缓存的,那么如何清除浏览器的dns缓存呢?谷歌浏览器清除方法如下:打开浏览器,访问如下地址chrome://net-internals/#dns如下图:点击 clear host cache,就清楚了浏览器的dns缓存,...
Ubuntu安装DNS缓存服务提高上网速度
这是在一些Linux里没有自带dns缓存功能的情况下折腾的操作,一般Ubuntu1604或者1804都已经自备好不用手动配置。这里是某天在Linux Mint上的操作。 sudo apt install dnsmasq,首先安装dnsmsq sudo vim /etc/dnsmasq.conf,编辑dnsmasq的配置文件,找到resolv-file= ,加#注释注释掉,然后在其下添加一行: ...
远程DNS缓存攻击__网络攻防实验三
一、实验描述 DNS(Domain Name System)是一个多层次的分布式数据库系统,其基本功能是完成域名解析,即提供域名和IP 地址之间的映射关系,为Internet 用户提供便利。DNS 服务器只记录本地资源的所有授权主机,若想查询非本地的主机信息, 则要向信息持有者(权威DNS 服务器)发送查询请求。为了避免每次查询都发送请求,DNS 服务器会把权威DNS 服务器返回的查询结果保存...
用dnsmasq建立dns缓存服务器
近几天很烦,经常开个网页突然转到http://autosearch.gd.vnet.cn/,我恨死电信拉。 google一下,找到了这个。最后发现还是je上面的文章,看来je人才何其多也。题外话,我这边google经常打不开,要用ip就可以访问,但百度一直很正常,莫非........电信.......百度....... 查看原文:http://ubuntu.group.iteye.co...
Linux之高级缓存DNS
一、DNS的高速缓存 1、安装DNS 命令 yum install bind(bind是最广泛使用的开源缓存dns服务器) 2、启动DNS服务 3、将DNS加入火墙允许列表 4、更改dns主配置文件/etc/named.conf令其可以为所有的主机进行网络解析服务,完成后重启服务 listen-on port 53 { any; }; allow-query { any; };
浅谈前端性能优化(九)——DNS解析优化
1、DNS缓存 DNS查询过程大约消耗20毫秒,在DNS查询过程中,浏览器什么都不会做,保持空白。如果DNS查询很多,网页性能会受到很大影响,因此需要用到DNS缓存。  不同浏览器的缓存机制不同: IE对DNS记录默认的缓存时间为30分钟,Firefox对DNS记录默认的缓存时间为1分钟,Chrome对DNS记录默认的缓存时间为1分钟。 缓存时间长:减少DNS的重复查找,节省时间。 缓存时
OKHTTP之缓存配置详解
前言在Android开发中我们经常要进行各种网络访问,比如查看各类新闻、查看各种图片。但有一种情形就是我们每次重复发送的网络请求其实返回的内容都是一样的。比如一个电影类APP,每一次向服务器申请某个电影的相关信息,如封面、简介、演员表等等,它们的信息都是一样的。显然,这样有点浪费资源,最主要的是这些重复的请求产生了没有必要的流量。流量、流量、流量!!!重要的事情说三遍!刚开始工作的我也不懂,后来才发
查询windows系统中的dns缓存情况
在cmd中输入命令ipconfig  /displaydns    info.pinyin.sogou.com    ----------------------------------------    记录名称. . . . . . . : info.pinyin.sogou.com    记录类型. . . . . . . : 5    生存时间. . . . . . . : 24    数...
路由器的DNS解析
路由器的DNS解析 DNS DNS(Domain name service)解析是指从人们熟知的域名(比如www.baidu.com)到实际该域名对应的服务器IP(180.97.33.108)的过程。   NAT 众所周知, 路由器采用了NAT(Network AddressTranslation,网络地址转换)机制, 使得LAN内的主机可以共享同一个外网IP(公网IP)上网
查看chrome浏览器的DNS
chrome://net-internals/#dns
域名解析缓存
DNS 是域名系统 (Domain Name System) 的缩写,在Internet上域名与IP地址之间是一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。设置 java.security 文件 目录: %JRE%\lib\security\java.security n
web基础·杂(浏览器缓存,DNS,CDN)
一、浏览器缓存在查看页面时发现异常,一般会刷新缓存,快速的做法是Ctrl+F5,重新发起请求。问了确保Ctrl+F5重新发起的请求得到的结果既不是浏览器缓存也不是服务器缓存,Ctrl+F5时在HTTP头会添加一些参数,如下:Cache-Control:no-cache:针对浏览器,内容不被缓存Pragma:no-cache:针对服务器,内容不被缓存二、DNS域名解析(DNS),简单来说就是把类似w...
Ubuntu设置DNS解析缓存提高上网速度
在Ubuntu上用Chrome浏览网页会发现解析域名特别慢,同样的网络环境下,比Win10慢太多了。 原因是默认没设置DNS缓存,解决步骤: ①打开终端,安装相关软件包: sudo apt-get install dnsmasq ②编辑dnsmasq的配置文件: sudo gedit /etc/dnsmasq.conf 按Ctrl+F搜索#resolv-file=(其中#是注释...
一文搞懂DNS缓存
DNS缓存不仅仅产生于操作系统,在浏览器和应用程序以及IPS网络运营商都会对DNS进行缓存,下面详细讲解这些DNS缓存的位置及清空的方法。 1、浏览器DNS缓存的时间跟DNS服务器返回的TTL值无关。 2、Application的DNS缓存是由应用程序控制的,以java为例,Java的网络应用程序的DNS缓存是由JVM的缓存策略控制的 3、OS缓存会参考DNS服务器响应的TTL值,但是不完全...
Linux——dns高速缓存
安装部署dnsyum install bind -y systemctl start named ##开启要在shell中输入文字 systemctl enable named.service systemctl stop firewalld.service systemctl disable firewalld.service 主配置文件: /etc/named.conf
安卓系统dns缓存策略
背景 安卓客户端上报出不少UnknownHostException,引起了大家的重视,于是决定深入研究一番。 UnknownHostException是个什么异常?让我们来谷歌的源代码是怎么说的: /** * Thrown when a hostname can not be resolved. */ 原来就是说域名无法被解析的时候会抛这个异常啊。那我就先来大致了解一下域名解析在客户端是怎么...
window清理dns缓存
查看DNS缓存 在cmd命令窗口 ipconfig/displaydns 清理DNS缓存 ipconfig/flushdns
刷新DNS解析缓存__2018.08.05
命令:ipconfig /flushdns 追踪IP: 命令:tracert www.baidu.com 域名解析:nslookup www.baidu.com
各种系统更新dns缓存方法
Windows: ipconfig /flushdnsDebian/Ubuntu: sudo /etc/rc.d/init.d/nscd restartLinux with systemd: sudo systemctl restart network.serviceFedora Linux: sudo systemctl restart NetworkManager.serviceA
闲谈寻址-DNS的多级缓存系统
提到DNS,基本上没有不知道的,这个DNS协议非常非常之复杂,令人望而却步。我敢说DNS的复杂程度堪比HTTP,但是为什么却没有HTTP受关注度更高?世界从来不以复杂分高下,DNS虽然使用范围胜过HTTP,然而却不如HTTP浮于人们视野之内,DNS除了在目之所及的劫持与反劫持之外,未免帮了忙却又被人遗忘,实不幸也!  Why?  DNS实则仅仅是做网络通信第一步而已,并不参与通信本身,DNS所做的,
C#的DNS协议完整实现代码【有默认DNS服务器实现哦~】
有简单的服务器和客户端的默认实现 还有一个简单的DNS代理服务器(有回调函数可以自己加缓存) 支持所有DNS协议报文格式
Linux下清除DNS缓存
通常有的时候我们通过域名打不开网页,有可能使DNS缓存的原因(DNS解析的ip地址变了),解决办法如下:      方法一:$nslookup ecafe.pub(这里是你要打开的域名)      方法二:$sudo /etc/init.d/nscd restart          或者:$service nscd restart          或者:$service nsc
Windows 技术篇-设置dns提升网速,刷新dns缓存
dns就是域名解析器,当我们方问域名首先要获取对应的ip,比如`www.baidu.com`,域名解析器要解析出对应的ip,然后我们才能访问到,如果域名解析器解析错了,或解析慢,当我们访问某些域名的时候就会很慢才能访问到。 刷新dns缓存。
强制清空系统本地DNS缓存
本地DNS缓存被GFW污染时,需要手动强制清理本地的DNS缓存。通常只需要修复一下网络连接即可。使用命令方式处理也很简单,下面是Windows/Mac OS/Linux/Unix环境下使用命令强制清空系统本地DNS缓存的方法。1.Windows环境下,可以使用以下命令: ipconfig /flushdns 2.Mac OS X 环境下,通常可以使用以下命令:sudo dscacheutil -f
刷新DNS缓存
小知识: 当dns堆积过多,或者指向出现错误时,会影响网页速度,甚至上不了网(感觉上),所以刷一下还是可以的 win+R键 cmd+回车 输入 ipconfig/flushdns  (不用担心该作用仅刷新缓存) 好了 备注:dns缓存是干啥的,就是用来记录网址对应的ip地址的缓存,比如 www.baidu.com 会帮你转换成 202.108.22.5 就这么简单...
linux下清除DNS缓存
sudo /etc/init.d/dns-clean start