• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            socketref,再見!高德

            https://github.com/adoggie

              C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
              246 Posts :: 4 Stories :: 312 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(54)

            我參與的團隊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            curl是一個利用URL語法在命令行方式下工作的文件傳輸工具。它支持很多協議:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同樣支持HTTPS認證,HTTP POST方法, HTTP PUT方法, FTP上傳, kerberos認證, HTTP上傳, 代理服務器, cookies, 用戶名/密碼認證, 下載文件斷點續傳, 上載文件斷點續傳, http代理服務器管道( proxy tunneling), 甚至它還支持IPv6, socks5代理服務器, 通過http代理服務器上傳文件到FTP服務器等等,功能十分強大。Windows操作系統下的網絡螞蟻,網際快車(FlashGet)的功能它都可以做到。準確的說,curl支持文件的上傳和下載,所以是一個綜合傳輸工具,但是按照傳統,用戶習慣稱curl為下載工具。
            curl是瑞典curl組織開發的,您可以訪問http://curl.haxx.se/獲取它的源代碼和相關說明。鑒于curl在Linux上的廣泛使用,IBM在AIX Linux Toolbox的光盤中包含了這個軟件,并且您可以訪問IBM網站http://www-1.ibm.com/servers/aix/products/aixos/linux/altlic.html下載它。curl的最新版本是7.10.8,IBM網站上提供的版本為7.9.3。在AIX下的安裝很簡單,IBM網站上下載的rpm格式的包。
            在http://curl.haxx.se/docs/,您可以下載到UNIX格式的man幫助,里面有詳細的curl工具的使用說明。curl的用法為:curl [options] [URL...] 其中options是下載需要的參數,大約有80多個,curl的各個功能完全是依靠這些參數完成的。具體參數的使用,用戶可以參考curl的man幫助。
            下面,本文就將結合具體的例子來說明怎樣利用curl進行下載。
            1、獲得一張頁面
            使用命令:curl http://curl.haxx.se
            這是最簡單的使用方法。用這個命令獲得了http://curl.haxx.se指向的頁面,同樣,如果這里的URL指向的是一個文件或者一幅圖都可以直接下載到本地。如果下載的是HTML文檔,那么缺省的將不顯示文件頭部,即HTML文檔的header。要全部顯示,請加參數 -i,要只顯示頭部,用參數 -I。任何時候,可以使用 -v 命令看curl是怎樣工作的,它向服務器發送的所有命令都會顯示出來。為了斷點續傳,可以使用-r參數來指定傳輸范圍。
            2、表單(Form)的獲取
            在WEB頁面設計中,form是很重要的元素。Form通常用來收集并向網站提交信息。提交信息的方法有兩種,GET方法和POST方法。先討論GET方法,例如在頁面中有這樣一段:
            <form method="GET" action="junk.cgi">
            <input type=text name="birthyear">
            <input type=submit name=press value="OK">
            </form>
            那么瀏覽器上會出現一個文本框和一個標為“OK”的按鈕。按下這個按鈕,表單就用GET方法向服務器提交文本框的數據。例如原始頁面是在www.hotmail.com/when/birth.html看到的,然后您在文本框中輸入1905,然后按OK按鈕,那么瀏覽器的URL現在應該是:“www.hotmail.com/when/junk.cgi?birthyear=1905&press=OK”
            對于這種網頁,curl可以直接處理,例如想獲取上面的網頁,只要輸入:
            curl "www.hotmail.com/when/junk.cgi?birthyear=1905&press=OK"
            就可以了。
            表單用來提交信息的第二種方法叫做POST方法,POST方法和GET方法的區別在于GET方法使用的時候,瀏覽器中會產生目標URL,而POST不會。類似GET,這里有一個網頁:
            <form method="POST" action="junk.cgi">
            <input type=text name="birthyear">
            <input type=submit name=press value="OK">
            </form>
            瀏覽器上也會出現一個文本框和一個標為“OK”的按鈕。按下這個按鈕,表單用POST方法向服務器提交數據。這時的URL是看不到的,因此需要使用特殊的方法來抓取這個頁面:
            curl -d "birthyear=1905&press=OK" www.hotmail.com/when/junk.cgi
            這個命令就可以做到。
            1995年年末,RFC 1867定義了一種新的POST方法,用來上傳文件。主要用于把本地文件上傳到服務器。此時頁面是這樣寫的:
            <form method="POST" enctype='multipart/form-data' action="upload.cgi">
            <input type=file name=upload>
            <input type=submit name=press value="OK">
            </form>
            對于這種頁面,curl的用法不同:
            curl -F upload=@localfilename -F press=OK [URL]
            這個命令的實質是將本地的文件用POST上傳到服務器。有關POST還有不少用法,用戶可以自己摸索。
            3、使用PUT方法。
            HTTP協議文件上傳的標準方法是使用PUT,此時curl命令使用-T參數:
            curl -T uploadfile www.uploadhttp.com/receive.cgi
            4、有關認證。
            curl可以處理各種情況的認證頁面,例如下載用戶名/密碼認證方式的頁面(在IE中通常是出現一個輸入用戶名和密碼的輸入框):
            curl -u name:password www.secrets.com
            如果網絡是通過http代理服務器出去的,而代理服務器需要用戶名和密碼,那么輸入:
            curl -U proxyuser:proxypassword http://curl.haxx.se
            任何需要輸入用戶名和密碼的時候,只在參數中指定用戶名而空著密碼,curl可以交互式的讓用戶輸入密碼。
            5、引用。
            有些網絡資源訪問的時候必須經過另外一個網絡地址跳轉過去,這用術語來說是:referer,引用。對于這種地址的資源,curl也可以下載:
            curl -e http://curl.haxx.se daniel.haxx.se
            6、指定用戶客戶端。
            有些網絡資源首先需要判斷用戶使用的是什么瀏覽器,符合標準了才能夠下載或者瀏覽。此時curl可以把自己“偽裝”成任何其他瀏覽器:
            curl -A "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" [URL]
            這個指令表示curl偽裝成了IE5.0,用戶平臺是Windows 2000。(對方服務器是根據這個字串來判斷客戶端的類型的,所以即使使用AIX也無所謂)。使用:
            curl -A "Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)" [URL]
            此時curl變成了Netscape,運行在PIII平臺的Linux上了。
            7、COOKIES
            Cookie是服務器經常使用的一種記憶客戶信息的方法。如果cookie被記錄在了文件中,那么使用命令:
            curl -b stored_cookies_in_file www.cookiesite.com
            curl可以根據舊的cookie寫出新cookie并發送到網站:
            curl -b cookies.txt -c newcookies.txt www.cookiesite.com
            8、加密的HTTP――HTTPS。
            如果是通過OpenSSL加密的https協議傳輸的網頁,curl可以直接訪問:
            curl https://that.secure.server.com
            9、http認證。
            如果是采用證書認證的http地址,證書在本地,那么curl這樣使用:
            curl -E mycert.pem https://that.secure.server.com

            參考讀物和注意事項:curl非常博大,用戶要想使用好這個工具,除了詳細學習參數之外,還需要深刻理解http的各種協議與URL的各個語法。這里推薦幾個讀物:
            RFC 2616 HTTP協議語法的定義。
            RFC 2396 URL語法的定義。
            RFC 2109 Cookie是怎樣工作的。
            RFC 1867 HTTP如何POST,以及POST的格式。
            curl是免費軟件,IBM公司對curl不提供技術支持。


            posted on 2008-07-04 01:21 放屁阿狗 閱讀(1128) 評論(0)  編輯 收藏 引用 所屬分類: OpenSource開源工程
            免费精品久久天干天干| 久久久久久久亚洲精品| 亚洲精品无码专区久久久| 无码伊人66久久大杳蕉网站谷歌| 久久久久久亚洲AV无码专区| 很黄很污的网站久久mimi色| 久久久久免费精品国产| 99久久精品国产综合一区| 亚洲七七久久精品中文国产| 久久国产免费观看精品3| 日日狠狠久久偷偷色综合免费 | 久久亚洲中文字幕精品一区四| 久久精品人妻中文系列| 国产成人香蕉久久久久| 久久99精品久久久久婷婷| 一级做a爰片久久毛片看看| 狠狠狠色丁香婷婷综合久久五月| 性做久久久久久久久老女人| 欧美一区二区精品久久| 久久婷婷国产剧情内射白浆| 久久电影网| 狠狠色丁香婷婷综合久久来来去| 久久成人国产精品免费软件| 久久国产乱子伦精品免费强| 久久免费的精品国产V∧| 亚洲国产欧洲综合997久久| 一本久久a久久精品综合夜夜 | 午夜福利91久久福利| 人人狠狠综合久久亚洲婷婷| 国产91久久综合| 久久久久久久亚洲Av无码| 亚洲国产另类久久久精品小说| 成人精品一区二区久久| 91亚洲国产成人久久精品网址 | 久久这里只有精品首页| 亚洲国产一成久久精品国产成人综合 | 久久久久久久久久久久久久| 中文字幕无码久久精品青草 | 亚洲国产成人精品久久久国产成人一区二区三区综| 久久中文字幕人妻熟av女| 久久精品国产精品亚洲精品|