专栏首页python3负载均衡故障排错指南 (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纯粹是一个命令行工具。对于这一点,我们并不在乎。

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

[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的具体用法,请读者参考互联网上的其它文章或其帮助文件,本文将不再赘述,对于后续文章中用到的一些参数,我们将在使用时再介绍其含义。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 3.文件查看及内容处理

    功能:crt模式看文件浏览过滤 语法:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [file ...] 用法: ...

    用户2398817
  • Python 之调用系统命令

    在python2.7以上的版本,subprocess模块提供了一个可以直接获得输出的函数

    用户2398817
  • admin3

    #################################################### 真机上实现别名的定义,修改配置文件

    用户2398817
  • 如何编译及使用TPC-DS生成测试数据

    TPC-DS采用星型、雪花型等多维数据模式。它包含7张事实表,17张纬度表平均每张表含有18列。其工作负载包含99个SQL查询,覆盖SQL99和2003的核心部...

    Fayson
  • VulnHub靶机渗透之DC:1

    今天练习的是VulnHub上DC:1这个靶机,下载地址连接如下,有兴趣可以自行下载研究。https://download.vulnhub.com/dc/DC-1...

    光明SAMA
  • 记录如何提交WordPress插件到WordPress官方插件平台流程

    前一段时间,老蒋在管理客户网站过程中由于图片太多且占用服务器的资源,所以希望将图片资源独立至阿里云OSS存储中,但是搜寻到网上已有的插件有一些问题,比如不能独立...

    老蒋
  • 深入玩转K8S之外网如何访问业务应用

    前面几篇文章学习了如何搭建K8S、如何部署应用、如何利用Label和DaemonSet来根据实际情况部署业务应用,这时候就有人问了,说都搭建完了那怎么访问我的业...

    DevinGeng
  • 如何在Ubuntu 14.04上配置Nginx以使用自定义错误页面

    Nginx是一款高性能的Web服务器,能够以灵活性和强大的功能提供内容。在设计网页时,自定义用户将看到的每条内容通常很有帮助。这包括他们请求不可用内容时的错误页...

    好烟
  • BurpSuite系列(十)----Extender模块(扩展器)

    Burp在软件中提供了支持第三方拓展插件的功能,方便使用者编写自己的自定义插件或从插件商店中安装拓展插件。Burp扩展程序可以以多种方式支持自定义Burp的行为...

    HACK学习
  • 0549-6.1-如何在SUSE12 SP3安装CDH6.1

    因节点之间通过root用户相互ssh的权限被关闭,所以不能使用控制台自动化安装agent,需要手动到所有节点安装agent,并修改相关配置。

    Fayson

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动