curl 302重定向_Curl命令

在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,支持文件的上传和下载,是综合传输工具,用于服务器之间传输数据,支持的协议包括 (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP),curl设计为无用户交互下完成工作,是一款很强大的http命令行工具。

命令语法:# curl [option] [url]

常见参数:

-A/--user-agent    设置用户代理发送给服务器

-b/--cookie    cookie字符串或文件读取位置

-c/--cookie-jar    操作结束后把cookie写入到这个文件中

-C/--continue-at    断点续转

-D/--dump-header    把header信息写入到该文件中

-e/--referer   来源网址

-f/--fail   连接失败时不显示http错误

-o/--output   把输出写到该文件中

-O/--remote-name   把输出写到该文件,保留远程文件文件名

-r/--range    检索HTTP/1.1或FTP服务器字节范围

-s/--silent   静音模式。不输出任何东西

-T/--upload-file    上传文件

-u/--user    设置服务器的用户和密码

-w/--write-out [format]   输出指定格式的内容到标准输出

-x/--proxy    在给定的端口上使用HTTP代理

-#/--progress-bar   进度条显示当前的传送状态

01

基本用法

# curl http://www.baidu.com

执行后,www. baidu.com 的html就会显示在屏幕上了,此这个方法也常用于测试一台服务器是否可以到达一个网站。

02

获取网页返回值

# curl -o /dev/null -s -w %{http_code} www. baidu.com

这行命令一般用来测试网站是否正常。

对于测试网页,平常在服务器上使用curl -w通过返回的状态码来判断当前网页的状态,用curl命令探测一个网址一般使用以下的命令。

# curl -I  -m  10  -o  /dev/null  -s  -w  %{http_code}   https://www.baidu.com

796180eaa398fc8b010c5b076c6f991b.png

-I只显示请求头信息

-m 10 最多查询10s

-o /dev/null 屏蔽原有输出信息

-s silent 模式,不输出任何东西

-w %{http_code} 控制额外输出

-w %{http_code} 中http_code即是网页返回的状态码,根据返回的状态码可以判断该网页的当前状态,一般正常网页会返回200表示OK的状态码。以下是http_code代表的各个状态码意义:

$http_code["0"]="Unable to access";
$http_code["100"]="Continue";
$http_code["101"]="Switching Protocols";
$http_code["200"]=”OK”;
$http_code["201"]=”Created”;
$http_code["202"]=”Accepted”;
$http_code["203"]=”Non-Authoritative Information”;
$http_code["204"]=”No Content”;
$http_code["205"]=”Reset Content”;
$http_code["206"]=”Partial Content”;
$http_code["300"]=”Multiple Choices”;
$http_code["301"]=”Moved Permanently”;
$http_code["302"]=”Found”;
$http_code["303"]=”See Other”;
$http_code["304"]=”Not Modified”;
$http_code["305"]=”Use Proxy”;
$http_code["306"]=”(Unused)”;
$http_code["307"]=”Temporary Redirect”;
$http_code["400"]=”Bad Request”;
$http_code["401"]=”Unauthorized”;
$http_code["402"]=”Payment Required”;
$http_code["403"]=”Forbidden”;
$http_code["404"]=”Not Found”;
$http_code["405"]=”Method Not Allowed”;
$http_code["406"]=”Not Acceptable”;
$http_code["407"]=”Proxy Authentication Required”;
$http_code["408"]=”Request Timeout”;
$http_code["409"]=”Conflict”;
$http_code["410"]=”Gone”;
$http_code["411"]=”Length Required”;
$http_code["412"]=”Precondition Failed”;
$http_code["413"]=”Request Entity Too Large”;
$http_code["414"]=”Request-URI Too Long”;
$http_code["415"]=”Unsupported Media Type”;
$http_code["416"]=”Requested Range Not Satisfiable”;
$http_code["417"]=”Expectation Failed”;
$http_code["500"]=”Internal Server Error”;
$http_code["501"]=”Not Implemented”;
$http_code["502"]=”Bad Gateway”;
$http_code["503"]=”Service Unavailable”;
$http_code["504"]=”Gateway Timeout”;
$http_code["505"]=”HTTP Version Not Supported”;

03

curl –w

curl的-w参数是一个非常重要的参数,对应非常多的参数变量,测试网页时可以得到对应的需求内容。

-w参数用于在一次完整且成功的操作后输出指定格式的内容到标准输出。

输出格式由普通字符串和任意数量的变量组成,输出变量需要按照%{variable_name}的格式,如果需要输出%,需要再输入一个%,即%%。curl会用合适的值来替代输出格式中的变量,除http_cod状态码外部分常用的可用变量如下:

url_effective 最终获取的url地址。

time_total 总时间,单位是秒,精确到小数点后三位。

time_namelookup DNS解析时间,从请求开始到DNS解析完毕所用时间。

time_connect 连接时间,从开始到建立TCP连接完成所用时间,包括前边DNS解析时间,如果需要单纯的得到连接时间,用这个time_connect时间减去time_namelookup时间。

time_appconnect 连接建立完成时间,如SSL/SSH等建立连接或者完成三次握手时间。

time_pretransfer 从开始到准备传输的时间。

time_redirect 重定向时间,包括到最后一次传输前的几次重定向的DNS解析,连接,预传输,传输时间。

time_starttransfer 开始传输时间。在发出请求之后,Web 服务器返回数据的第一个字节所用的时间。

以上的time相关变量可以用来判断服务器访问网页的各种连接时长,通过计算得到需求的各个连接时长情况,从而判断网页网络等状况。

例如:

b2eb4ce7760e657ed236cf14b9c4d672.png

结果如下:

time_connect: 0.234

time_starttransfer: 0.336

time_nslookup:0.220

time_total: 0.336

连接时间为0. 234,其中DNS解析时间用了0.220,可以判断DNS解析可能存在问题。

size_download 下载大小

size_upload 上传大小

size_header  下载的header的大小

size_request 请求的大小

speed_download 下载速度,单位-字节每秒

speed_upload 上传速度,单位-字节每秒

ssl_verify_result  ssl认证结果,返回0表示认证成功

谢谢

阅读~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值