จากที่เคยแนะนำ วิธีการใช้คำสั่ง wget รันเป็นคำสั่งบน comand line เพื่อโหลดเว็บเพจได้ มาครั้งนี้ ขอแนะนำอีกคำสั่งคือ cURL โปรแกรมทำหน้าที่คล้ายกันแต่มีคุณสมบัติมากกว่า แถม curl ยังมี library (libcurl) ที่ภาษาต่างๆ เช่น PHP นำไปพัฒนาสร้างเป็นฟังก์ชั่นให้เรียกใช้ในการเขียนโปรแกรมได้
เริ่มต้นการใช้ด้วยการรันคำสั่ง curl ตามด้วย URL ของเว็บไซต์ เช่นต้องการโหลดเว็บหน้าแรกของ www.apple.com
[user1@dev ~]$ curl http://www.apple.com <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta name="Author" content="Apple Inc." /> <meta name="viewport" content="width=1024" /> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7, IE=9" /> <link id="globalheader-stylesheet" rel="stylesheet" href="http://images.apple.com/global/nav/styles/navigation.css" type="text/css" /> <title>Apple</title> ...
ดีฟอลต์ผลลัพธ์ที่ได้จะแสดงผลออกทางหน้าจอ (stdout)
ออปชั่น -o (output)
ระบุออปชั่น “-o’ ถ้าต้องการบันทึกผลลัพธ์เป็นไฟล์
[user1@dev dev]$ curl -o apple-index.html http://www.apple.com % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 9346 100 9346 0 0 31031 0 --:--:-- --:--:-- --:--:-- 59151
ไฟล์ผลลัพธ์ที่ได้
[user1@dev dev]$ ls -l total 12 -rw-r--r--. 1 user1 users 9346 Dec 16 22:56 apple-index.html [user1@dev dev]$ head apple-index.html <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta name="Author" content="Apple Inc." /> <meta name="viewport" content="width=1024" /> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7, IE=9" /> <link id="globalheader-stylesheet" rel="stylesheet" href="http://images.apple.com/global/nav/styles/navigation.css" type="text/css" /> <title>Apple</title>
ออปชั่น -v (verbose)
หากต้องการดูรายละเอียด ขั้นตอนการโหลดเว็บเพจ สามารถทำได้โดยการระบุออปชั่น “-v”
[user1@dev dev]$ curl -v http://www.apple.com * About to connect() to www.apple.com port 80 (#0) * Trying 118.214.125.15... connected * Connected to www.apple.com (118.214.125.15) port 80 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.21.7 (x86_64-redhat-linux-gnu) libcurl/7.21.7 NSS/3.12.10.0 zlib/1.2.5 libidn/1.22 libssh2/1.2.7 > Host: www.apple.com > Accept: */* > < HTTP/1.1 200 OK < Content-Type: text/html; charset=UTF-8 < Server: Apache/2.2.3 (Oracle) < Cache-Control: max-age=531 < Expires: Fri, 16 Dec 2011 16:06:55 GMT < Date: Fri, 16 Dec 2011 15:58:04 GMT < Content-Length: 9346 < Connection: keep-alive < <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta name="Author" content="Apple Inc." /> <meta name="viewport" content="width=1024" /> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7, IE=9" /> <link id="globalheader-stylesheet" rel="stylesheet" href="http://images.apple.com/global/nav/styles/navigation.css" type="text/css" /> <title>Apple</title> ...
ออปชั่น -h (help)
ระบุออปชั่น “-h” เพื่อดูออปชั่นอื่นๆ พร้อมคำอธิบายคร่าวๆ
[user1@dev ~]$ curl --help Usage: curl [options...] <url> Options: (H) means HTTP/HTTPS only, (F) means FTP only --anyauth Pick "any" authentication method (H) -a, --append Append to target file when uploading (F/SFTP) --basic Use HTTP Basic Authentication (H) --cacert FILE CA certificate to verify peer against (SSL) --capath DIR CA directory to verify peer against (SSL) -E, --cert CERT[:PASSWD] Client certificate file and password (SSL) --cert-type TYPE Certificate file type (DER/PEM/ENG) (SSL) ...