负载均衡故障排错指南 (3)-阿里云开发者社区

开发者社区> 科技小能手> 正文

负载均衡故障排错指南 (3)

简介:
+关注继续查看
2.3 wget和curl
wget和curl是两个常用的,基于命令行的文件传输工具软件。这两个工具很类似,但又有所不同。这两个工具都可以通过FTP、HTTP或HTTPS协议来下载内容,通过这两个工具,我们可以模拟客户端向负载均衡发送各种TCP请求,以研究负载均衡对数据包的处理方式和流程。但是,这两个工具实际上也有差别:
  • curl支持更多的协议,如:FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMTP 和 RTSP,而wget仅支持FTP, HTTP, HTTPS。
  • curl默认支持HTTP1.1(也支持HTTP1.0),而wget仅支持HTTP1.0(据说最新的wget已经支持HTTP1.1,我们将在后续的测试中进行验证)。
  • 网上有很多文章说,二者最关键的区别——在于curl支持libcurl库,而wget纯粹是一个命令行工具。对于这一点,我们并不在乎。
这些命令行工具的使用方法非常简单,但是,要想完全精准的掌握这两个命令的使用方法,其实并不是那么容易。让我们从最简单的命令开始:
 

  1. [root@linux-test ~]# curl http://www.baidu.com 
  2.  
  3. <!doctype html><html><head><meta http-equiv="Content-Type" content="text/html;charset=gb2312"><title>һ֪title><style>html{overflow-y:auto}body{font:12px arial;text-align:center;background:#fff}body,p,form,ul,li{margin:0;padding:0;list- 
  4. //...此处省略XXX字符... 
  5.  
  6. [root@linux-test ~]# 
  7.  
  8. [root@linux-test ~]# wget http://www.baidu.com 
  9.  
  10. --2011-09-16 23:05:51-- http://www.baidu.com/ 
  11.  
  12. Resolving www.baidu.com... 119.75.217.56, 119.75.218.45 
  13.  
  14. Connecting to www.baidu.com|119.75.217.56|:80... connected. 
  15.  
  16. HTTP request sent, awaiting response... 200 OK 
  17.  
  18. Length: 8403 (8.2K) [text/html] 
  19.  
  20. Saving to: `index.html' 
  21.   
  22.  
  23. 100%[=================================================================================================>] 8,403       --.-K/s   in 0s      
  24.   
  25.  
  26. 2011-09-16 23:05:51 (296 MB/s) - `index.html' saved [8403/8403] 
  27.   
  28.  
  29. [root@linux-test ~]# 
从上面的两个对比例子可以看出,curl比wget更加符合传统的unix风格,我们可以通过下面的例子,使curl获得与wget相同的输出结果(baidu.html与index.html的内容完全相同):
 

  1. [root@linux-test ~]# curl http://www.baidu.com >>baidu.html 
  2.  
  3.  % Total    % Received % Xferd Average Speed   Time    Time     Time Current 
  4.  
  5.                                  Dload Upload   Total   Spent    Left Speed 
  6.  
  7. 100 8403 100 8403    0     0 49023      0 --:--:-- --:--:-- --:--:-- 141k 
  8.  
  9. [root@linux-test ~]# ll 
  10. total 68 
  11.  
  12. -rw------- 1 root root 1608 Sep 16 10:16 anaconda-ks.cfg 
  13.  
  14. -rw-r--r-- 1 root root 8403 Sep 16 23:06 baidu.html 
  15.  
  16. -rw-r--r-- 1 root root 8403 Sep 16 23:05 index.html 
  17.  
  18. -rw-r--r-- 1 root root 15780 Sep 16 10:16 install.log 
  19.  
  20. -rw-r--r-- 1 root root 3779 Sep 16 10:16 install.log.syslog 
  21.  
  22. [root@linux-test ~]# 
但是,这两个命令的请求过程对于服务器来说真的就一样吗?我们看看用wireshark对两个工具访问相同网站的解码过程。下面两张图分别是对wget和curl的HTTP请求的解码。
 

从上面Wireshark的解码截图,我们可以非常明显的发现,两个命令请求http://www.baidu.com 的HTTP请求的头部有很大的区别。

1)    wget默认采用HTTP/1.0标准发送请求,而curl则默认采用HTTP/1.1发送请求。

2)    默认的User-Agent不同。

3)    wget多了一个Connection: Keep-Alive头。

至于这其中的区别究竟意味着什么,我们将在后续的文章中详细介绍。
有关wget和curl的具体用法,请读者参考互联网上的其它文章或其帮助文件,本文将不再赘述,对于后续文章中用到的一些参数,我们将在使用时再介绍其含义。

E.S.


本文转自 virtualadc 51CTO博客,原文链接:http://blog.51cto.com/virtualadc/674744

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9539 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
9065 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13235 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
7390 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
4053 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
21952 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
6945 0
23706
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载