欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

由wget引起的血案 博客分类: Linux命令 wget缺陷 

程序员文章站 2024-03-24 16:49:40
...

由于刚刚配置好yum源,

所以试着装了JDK,之后又发现rpm装的有些不方便,没有javac命令,

所以准备自己手动装一个。

 

1、来到Oracle的官网准备下载jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1637583.html

 

2、通过“查看链接地址”得到“jdk-7u5-linux-i586.tar.gz”的下载地址为

http://download.oracle.com/otn-pub/java/jdk/7u5-b06/jdk-7u5-linux-i586.tar.gz

 

3、于是我来到RHEL的commandline,输入

wget http://download.oracle.com/otn-pub/java/jdk/7u5-b06/jdk-7u5-linux-i586.tar.gz

奇迹发生了,下载一秒钟就完成了,但是得到的文件不是我们想要的tgz包,

而是“download-fail-1505220.html”文件……

 

命令输出如下:
[root@rhelhost src]# wget http://download.oracle.com/otn-pub/java/jdk/7u5-b06/jdk-7u5-linux-i586.tar.gz
--2012-07-30 15:49:37-- http://download.oracle.com/otn-pub/java/jdk/7u5-b06/jdk-7u5-linux-i586.tar.gz
Resolving download.oracle.com... 63.151.118.190, 63.151.118.201
Connecting to download.oracle.com|63.151.118.190|:80... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://edelivery.oracle.com/otn-pub/java/jdk/7u5-b06/jdk-7u5-linux-i586.tar.gz [following]
--2012-07-30 15:49:38-- https://edelivery.oracle.com/otn-pub/java/jdk/7u5-b06/jdk-7u5-linux-i586.tar.gz
Resolving edelivery.oracle.com... 23.58.154.174
Connecting to edelivery.oracle.com|23.58.154.174|:443... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: http://download.oracle.com/errors/download-fail-1505220.html [following]
--2012-07-30 15:49:39-- http://download.oracle.com/errors/download-fail-1505220.html
Connecting to download.oracle.com|63.151.118.190|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5307 (5.2K) [text/html]
Saving to: `download-fail-1505220.html'

100%[=========================================================================>] 5,307 --.-K/s in 0s

2012-07-30 15:49:40 (3 MB/s) - `download-fail-1505220.html' saved [5307/5307]

 

4、我换了其他的rpm包和tgz的地址测试,都只获得了这个fail文件。

于是我就纳闷了,搞什么飞机呢?

果断F12调出chrome的抓包器。捕获了这些信息:


由wget引起的血案
            
    
    博客分类: Linux命令 wget缺陷 

5、可以明显看到这里做了两次302跳转,浏览器每次请求这个地址的时候都会从头访问,而不是对重定向后的地址做缓存,这是302状态码规定的。

 

6、所以我们可以知道wget命令是不支持重定向的,它只能根据文件所在的最终url来get文件。

复制最后的那个

http://download.oracle.com/otn-pub/java/jdk/7u5-b06/jdk-7u5-linux-i586.tar.gz?AuthParam=1343633641_62dfd9cd61df1979be4b945a4be95b3f

地址,作为wget参数,顺利把jdk弄到手!(注意:这个AuthParam应该是在你选择同意oracle的协议之后生成的,致尧你不关闭该页面,生成的AuthParam就一直有效,否则所有带着这个AuthParam的链接就失效了。)

 

所以不支持重定向这个功能应该是wget的一个缺陷。

 

另外,还有一个更加隐秘的东西,那就是oracle的页面居然要求我们提交属于个人隐私的东西:


由wget引起的血案
            
    
    博客分类: Linux命令 wget缺陷 

我没弄错的话,这些应该是我chrome浏览器里装的插件信息!!!!!

它居然非法获取!!!!!

不知道oracle用意何在!!!

  • 由wget引起的血案
            
    
    博客分类: Linux命令 wget缺陷 
  • 大小: 98.2 KB
  • 由wget引起的血案
            
    
    博客分类: Linux命令 wget缺陷 
  • 大小: 126.7 KB
相关标签: wget 缺陷