post 表單數據
curl -d "user=neo&password=chen" http://www.example.com/login.php curl --data "user=neo&password=chen" http://www.example.com/login.php curl -F "upload=@card.txt;type=text/plain" "http://www.example.com/upload.php"
curl -o /dev/null --connect-timeout 30 -m 30 -s -w %{http_code} http://www.google.com/
-m, --max-time SECONDS Maximum time allowed for the transfer
curl -o /dev/null --max-time 10 http://www.netkiller.cn/
curl --compressed http://www.example.com
有時候你需要設覺察/etc/hosts檔案才能訪問vhost,下面例子可以不設置/etc/hosts
curl -x 127.0.0.1:80 your.exmaple.com/index.php
計時器 描述 time_connect 建立到伺服器的 TCP 連接所用的時間 time_starttransfer 在發出請求之後,Web 伺服器返回數據的第一個位元組所用的時間 time_total 完成請求所用的時間 time_namelookup DNS解析時間,從請求開始到DNS解析完畢所用時間(記得關掉 Linux 的 nscd 的服務測試) speed_download 下載速度,單位-位元組每秒。
curl -o /dev/null -s -w %{time_connect}:%{time_starttransfer}:%{time_total} http://www.example.net
測試頁面所花費的時間
date ; curl -s -w 'Connect: %{time_connect} TTFB: %{time_starttransfer} Total time: %{time_total} \n' -H "Host: www.example.com" http://172.16.0.1/webapp/test.jsp ; date ;
curl -o /dev/null -s -w %{time_connect}, %{time_starttransfer}, %{time_total}, %{time_namelookup}, %{speed_download} http://www.netkiller.cn
返回HTTP狀態碼
curl -s -I http://netkiller.sourceforge.net/ | grep HTTP | awk '{print $2" "$3}' curl -o /dev/null -s -w %{http_code} http://netkiller.sourceforge.net/ curl --connect-timeout 5 --max-time 60 --output /dev/null -s -w %{response_code} http://www.netkiller.cn/
設置用戶代理,這樣web伺服器會認為是其他瀏覽器訪問
curl -A "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" http://www.example.com
curl -v -o /dev/null -e "http://www.example.com" http://www.your.com/ * About to connect() to www.your.com port 80 * Trying 172.16.1.10... connected * Connected to www.your.com (172.16.1.10) port 80 > GET / HTTP/1.1 > User-Agent: curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5 > Host: www.your.com > Accept: */* > Referer: http://www.example.com > < HTTP/1.1 200 OK < Date: Thu, 30 Sep 2010 07:59:47 GMT < Server: Apache/2.2.16 (Unix) mod_ssl/2.2.16 OpenSSL/0.9.8e-fips-rhel5 PHP/5.2.14 < Accept-Ranges: bytes < Transfer-Encoding: chunked < Content-Type: text/html; charset=UTF-8 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 172k 0 172k 0 0 10.2M 0 --:--:-- --:--:-- --:--:-- 11.9M* Connection #0 to host www.your.com left intact * Closing connection #0
curl -o /dev/null http://www.example.com curl -o index.html http://www.example.com
If-Modified-Since
neo@neo-OptiPlex-780:/tmp$ curl -I http://images.example.com/test/test.html HTTP/1.0 200 OK Cache-Control: s-maxage=7200, max-age=900 Expires: Mon, 16 May 2011 08:10:37 GMT Content-Type: text/html Accept-Ranges: bytes ETag: "1205579110" Last-Modified: Mon, 16 May 2011 06:57:39 GMT Content-Length: 11 Date: Mon, 16 May 2011 07:55:37 GMT Server: lighttpd/1.4.26 Age: 604 X-Via: 1.0 ls71:80 (Cdn Cache Server V2.0), 1.0 lydx136:8105 (Cdn Cache Server V2.0) Connection: keep-alive neo@neo-OptiPlex-780:/tmp$ curl -H "If-Modified-Since: Fri, 12 May 2011 18:53:33 GMT" -I http://images.example.com/test/test.html HTTP/1.0 304 Not Modified Date: Mon, 16 May 2011 07:56:19 GMT Content-Type: text/html Expires: Mon, 16 May 2011 08:11:19 GMT Last-Modified: Mon, 16 May 2011 06:57:39 GMT ETag: "1205579110" Cache-Control: s-maxage=7200, max-age=900 Age: 790 X-Via: 1.0 wzdx168:8080 (Cdn Cache Server V2.0) Connection: keep-alive
neo@neo-OptiPlex-780:/tmp$ curl -I http://images.example.com/test/test.html HTTP/1.1 200 OK Cache-Control: s-maxage=7200, max-age=900 Expires: Mon, 16 May 2011 09:48:45 GMT Content-Type: text/html Accept-Ranges: bytes ETag: "1984705864" Last-Modified: Mon, 16 May 2011 09:01:07 GMT Content-Length: 22 Date: Mon, 16 May 2011 09:33:45 GMT Server: lighttpd/1.4.26
neo@neo-OptiPlex-780:/tmp$ curl -H 'If-None-Match: "1984705864"' -I http://images.example.com/test/test.html HTTP/1.1 304 Not Modified Cache-Control: s-maxage=7200, max-age=900 Expires: Mon, 16 May 2011 09:48:32 GMT Content-Type: text/html Accept-Ranges: bytes ETag: "1984705864" Last-Modified: Mon, 16 May 2011 09:01:07 GMT Date: Mon, 16 May 2011 09:33:32 GMT Server: lighttpd/1.4.26
$ curl -H Accept-Encoding:gzip,defalte -I http://www.example.com/product/374218.html HTTP/1.1 200 OK Date: Mon, 16 May 2011 09:13:18 GMT Server: Apache Accept-Ranges: bytes Content-Encoding: gzip Content-Length: 16660 Content-Type: text/html; charset=UTF-8 X-Pad: avoid browser bug Age: 97 X-Via: 1.1 dg44:8888 (Cdn Cache Server V2.0) Connection: keep-alive
$ curl -H Accept-Encoding:gzip,defalte http://www.example.com/product/374218.html | gunzip
未認證返回401
# curl --compressed http://webservice.example.com/members <html> <head><title>401 Authorization Required</title></head> <body bgcolor="white"> <center><h1>401 Authorization Required</h1></center> <hr><center>nginx</center> </body> </html>
-u/--user <user[:password]> Set server user and password
使用 -u或者 --user 指定用戶與密碼
# curl --compressed -uneo:chen http://webservice.example.com/members