curl,你好强大。
直接在curl命令后加上网址,就可以看到网页源码。这里就用我的博客首页来做示范,因为挺短的。
1 2 3 4 5 6 7 8 $  curl laplacence.github.io <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx</center> </body> </html> 
加上 -o 保存则是进行保存,同等与wget。
1 2 3 4 $  curl -o <filename> laplacence.github.io   %  Total    % Received % Xferd  Average Speed   Time    Time     Time  Current                                  Dload  Upload   Total   Spent    Left  Speed 100   162  100   162    0     0   2700      0 --:--:-- --:--:-- --:--:--  2700 
有的网址是自动跳转的,比如我的首页。使用 -L 参数,curl就会跳转到新的网址。
1 2 3 4 5 6 7 8 $  curl -L laplacence.github.io <!DOCTYPE html> <html> <head>   <meta charset="utf-8">   <title>Trash Can</title> MORE 
-i 可以显示response header的信息,-I 则只显示header。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 $  curl -i laplacence.github.io HTTP/1.1 301 Moved Permanently Server: GitHub.com Content-Type: text/html Location: https://laplacence.github.io/ X-GitHub-Request-Id: 8096:4436:D7CE4:117F57:5F73E5A0 Content-Length: 162 Accept-Ranges: bytes Date: Wed, 30 Sep 2020 02:08:31 GMT Via: 1.1 varnish Age: 766 Connection: keep-alive X-Served-By: cache-hkg17933-HKG X-Cache: HIT X-Cache-Hits: 1 X-Timer: S1601431711.261853,VS0,VE1 Vary: Accept-Encoding X-Fastly-Request-ID: 61661b909bca09baaec268b4e7f0a60b317e424f <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx</center> </body> </html> 
-v 可以显示完整的http通信过程。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 $  curl -v laplacence.github.io *   Trying 185.199.109.153:80... * Connected to laplacence.github.io (185.199.109.153) port 80 (#0) >  GET / HTTP/1.1 >  Host: laplacence.github.io >  User-Agent: curl/7.72.0 >  Accept: */* > * Mark bundle as not supporting multiuse < HTTP/1.1 301 Moved Permanently < Server: GitHub.com < Content-Type: text/html < Location: https://laplacence.github.io/ < X-GitHub-Request-Id: 8096:4436:D7CE4:117F57:5F73E5A0 < Content-Length: 162 < Accept-Ranges: bytes < Date: Wed, 30 Sep 2020 02:28:30 GMT < Via: 1.1 varnish < Age: 1965 < Connection: keep-alive < X-Served-By: cache-hkg17926-HKG < X-Cache: HIT < X-Cache-Hits: 1 < X-Timer: S1601432910.418005,VS0,VE1 < Vary: Accept-Encoding < X-Fastly-Request-ID: 0dfc647792c349d178a666c0476557dbcee996d0 < <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx</center> </body> </html> * Connection #0 to host laplacence.github.io left intact 
curl默认使用GET,-X 后面可以指定其他方法。
1 2 3 4 5 6 7 $  curl -X POST laplacence.github.io <html> <head><title>405 Not Allowed</title></head> <body bgcolor="white"> <center><h1>405 Not Allowed</h1></center> </body> </html> 
假设网页的上传表单如下
1 2 3 4   <form  method ="POST"  enctype ='multipart/form-data'  action ="upload.cgi" >      <input  type =file  name =upload >      <input  type =submit  name =press  value ="OK" >    </form >  
则可以使用这种方法。
1 2 $  curl --form upload=@<filename> --form press=OK [URL] ...... 
1 2 3 4 5 6 $  curl --user-agent "UA"  [URL] ...... $  curl --cookie "cookie"  [URL] ...... $  curl --header "header"  [URL] ......