前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >负载均衡故障排错指南 (3)

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

作者头像
py3study
发布2020-01-06 16:38:20
5600
发布2020-01-06 16:38:20
举报
文章被收录于专栏:python3python3

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纯粹是一个命令行工具。对于这一点,我们并不在乎。

这些命令行工具的使用方法非常简单,但是,要想完全精准的掌握这两个命令的使用方法,其实并不是那么容易。让我们从最简单的命令开始:

[root@linux-test ~]# curl http://www.baidu.com  <!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- //...此处省略XXX字符...  [root@linux-test ~]#  [root@linux-test ~]# wget http://www.baidu.com  --2011-09-16 23:05:51-- http://www.baidu.com/  Resolving www.baidu.com... 119.75.217.56, 119.75.218.45  Connecting to www.baidu.com|119.75.217.56|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 8403 (8.2K) [text/html]  Saving to: `index.html'    100%[=================================================================================================>] 8,403       --.-K/s   in 0s         2011-09-16 23:05:51 (296 MB/s) - `index.html' saved [8403/8403]    [root@linux-test ~]# 

从上面的两个对比例子可以看出,curl比wget更加符合传统的unix风格,我们可以通过下面的例子,使curl获得与wget相同的输出结果(baidu.html与index.html的内容完全相同):

[root@linux-test ~]# curl http://www.baidu.com >>baidu.html   % Total    % Received % Xferd Average Speed   Time    Time     Time Current                                   Dload Upload   Total   Spent    Left Speed  100 8403 100 8403    0     0 49023      0 --:--:-- --:--:-- --:--:-- 141k  [root@linux-test ~]# ll total 68  -rw------- 1 root root 1608 Sep 16 10:16 anaconda-ks.cfg  -rw-r--r-- 1 root root 8403 Sep 16 23:06 baidu.html  -rw-r--r-- 1 root root 8403 Sep 16 23:05 index.html  -rw-r--r-- 1 root root 15780 Sep 16 10:16 install.log  -rw-r--r-- 1 root root 3779 Sep 16 10:16 install.log.syslog  [root@linux-test ~]# 

但是,这两个命令的请求过程对于服务器来说真的就一样吗?我们看看用wireshark对两个工具访问相同网站的解码过程。下面两张图分别是对wget和curl的HTTP请求的解码。

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

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

2) 默认的User-Agent不同。

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

至于这其中的区别究竟意味着什么,我们将在后续的文章中详细介绍。

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档