注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)cURL必知必會(huì)

cURL必知必會(huì)

cURL必知必會(huì)

定 價(jià):¥59.00

作 者: [瑞典] 丹尼爾·斯坦伯格 著,薛命燈 譯
出版社: 人民郵電出版社
叢編項(xiàng): 圖靈程序設(shè)計(jì)叢書(shū)
標(biāo) 簽: 暫缺

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787115523860 出版時(shí)間: 2020-01-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 147 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  curl是一個(gè)利用URL語(yǔ)法在命令行下工作的文件傳輸工具,支持文件上傳和下載。作為cURL項(xiàng)目的創(chuàng)造人和負(fù)責(zé)人,作者結(jié)合自己的開(kāi)發(fā)和使用經(jīng)驗(yàn),為我們提供了curl的詳盡指南。書(shū)中內(nèi)容涵蓋cURL項(xiàng)目介紹、作為命令行工具的用法、作為函數(shù)庫(kù)的用法,等等。

作者簡(jiǎn)介

  cURL項(xiàng)目首席開(kāi)發(fā)者,2017年瑞典Polhem獎(jiǎng)?wù)芦@得者,主要從事開(kāi)源和自由軟件開(kāi)發(fā)。作為一名互聯(lián)網(wǎng)協(xié)議極客,他從1985年就開(kāi)始編程,并以此為生。他為wolfSSL提供curl商業(yè)支持,還在IETF(國(guó)際互聯(lián)網(wǎng)工程任務(wù)組)任職,專注HTTPbis和QUIC。他也會(huì)時(shí)不時(shí)地發(fā)表公開(kāi)演講,并在twitch上教人怎么開(kāi)發(fā)curl?!咀g者簡(jiǎn)介】畢業(yè)于廈門(mén)大學(xué)軟件學(xué)院,十余年軟件開(kāi)發(fā)和架構(gòu)經(jīng)驗(yàn),InfoQ高級(jí)社區(qū)編輯,譯有《硅谷革命》《生產(chǎn)微服務(wù)》《Kafka**指南》等書(shū)。微信公眾號(hào)CodeDeep。

圖書(shū)目錄

第 1 章 cURL項(xiàng)目 1
1.1 它是如何開(kāi)始的 2
1.2.1 發(fā)音問(wèn)題 2
1.2.2 混淆 2
1.2.3 作為動(dòng)詞 2
1.3 curl可以做什么 3
1.3.1 命令行工具curl 3
1.3.2 libcurl庫(kù) 3
1.4 開(kāi)發(fā)團(tuán)隊(duì) 4
1.5 curl的用戶 5
1.5.1 開(kāi)源 5
1.5.2 下載量 5
1.5.3 找出用戶 6
1.5.4 命令行工具用戶 6
1.5.5 嵌入式庫(kù) 6
1.5.6 網(wǎng)站后端 6
1.5.7 著名的用戶 6
第 2 章 命令行基礎(chǔ) 8
2.1 命令行選項(xiàng) 9
2.1.1 短選項(xiàng) 9
2.1.2 長(zhǎng)選項(xiàng) 10
2.1.3 選項(xiàng)的參數(shù) 10
2.1.4 帶空格的參數(shù) 10
2.1.5 負(fù)選項(xiàng) 11
2.2 不同版本的選項(xiàng) 11
2.3 URL 11
2.3.1 scheme 12
2.3.2 scheme分隔符 12
2.3.3 不使用scheme 13
2.3.4 用戶名和密碼 13
2.3.5 主機(jī)名或地址 13
2.3.6 端口號(hào) 13
2.3.7 路徑 14
2.3.8 FTP類型 14
2.3.9 片段 15
2.3.10 瀏覽器的“地址欄” 15
2.3.11 多個(gè)選項(xiàng)和多個(gè)URL 15
2.3.12 URL的單獨(dú)選項(xiàng) 15
2.3.13 連接重用 16
2.4 URL通配 16
2.4.1 數(shù)值范圍 16
2.4.2 字母范圍 17
2.4.3 列表 17
2.4.4 組合 17
2.4.5 輸出變量 17
2.5 列出所有的命令行選項(xiàng) 18
2.6 配置文件 18
2.7 密碼和窺探 20
2.7.1 命令行泄露 20
2.7.2 網(wǎng)絡(luò)泄露 20
2.8 進(jìn)度指示器 20
2.8.1 單位 21
2.8.2 進(jìn)度指示器圖例 21
第 3 章 使用curl 23
3.1 詳細(xì)模式 23
3.1.1 --trace和--trace-ascii 25
3.1.2 --trace-time 26
3.1.3 HTTP 2 27
3.1.4 --write-out 27
3.1.5 可用的--write-out 變量 27
3.1.6 靜默模式 29
3.2 持久連接 29
3.3 下載 29
3.3.1 究竟下載了哪些內(nèi)容 29
3.3.2 保存下載的內(nèi)容 30
3.3.3 用URL指定的文件名保存內(nèi)容 30
3.3.4 從服務(wù)器獲取目標(biāo)文件名 31
3.3.5 HTML和字符集 31
3.3.6 壓縮 31
3.3.7 shell重定向 32
3.3.8 多個(gè)下載 32
3.3.9 讓所有URL使用自己的文件名 33
3.3.10 “我的瀏覽器顯示的是其他內(nèi)容” 33
3.3.11 客戶端差異 33
3.3.12 服務(wù)器端差異 34
3.3.13 中介的欺騙 34
3.3.14 速率限定 34
3.3.15 最大的文件 35
3.3.16 Metalink 35
3.3.17 在文件系統(tǒng)中保存元數(shù)據(jù) 36
3.3.18 --raw 36
3.3.19 失敗重試 36
3.3.20 恢復(fù)下載和下載范圍 36
3.4 上傳 37
3.4.1 支持上傳的協(xié)議 37
3.4.2 HTTP 提供了幾種“上傳”方式 37
3.4.3 POST 37
3.4.4 multipart formpost 38
3.4.5 PUT 38
3.4.6 FTP上傳 38
3.4.7 SMTP上傳 38
3.4.8 上傳的進(jìn)度指示器 39
3.4.9 速率限定 39
3.5 連接 39
3.5.1 主機(jī)名解析技巧 39
3.5.2 基于c-ares庫(kù)的域名解析 41
3.5.3 連接超時(shí) 41
3.5.4 網(wǎng)絡(luò)接口 41
3.5.5 本地端口號(hào) 42
3.5.6 keepalive 42
3.6 超時(shí) 43
3.6.1 允許的最長(zhǎng)時(shí)間 43
3.6.2 允許的最長(zhǎng)連接時(shí)間 43
3.6.3 傳輸速率慢到一定程度就退出 43
3.6.4 保持連接活躍 44
3.7 .netrc 44
3.7.1 .netrc的文件格式 44
3.7.2 啟用netrc 45
3.8 代理 45
3.8.1 發(fā)現(xiàn)你的代理 45
3.8.2 PAC 46
3.8.3 代理類型 46
3.8.4 HTTP 46
3.8.5 HTTPS和代理 46
3.8.6 MITM代理 47
3.8.7 HTTP代理與非HTTP協(xié)議 47
3.8.8 HTTP代理通道 47
3.8.9 SOCKS類型 48
3.8.10 代理身份驗(yàn)證 48
3.8.11 使用HTTPS連接代理 49
3.8.12 代理環(huán)境變量 49
3.9 退出狀態(tài) 50
3.9.1 可用的退出碼 50
3.9.2 錯(cuò)誤消息 56
3.9.3 “未使用” 56
3.10 FTP 56
3.10.1 ping-pong 56
3.10.2 傳輸模式 57
3.10.3 身份驗(yàn)證 57
3.10.4 FTP使用兩個(gè)連接 57
3.10.5 如何遍歷目錄 58
3.10.6 高級(jí)FTP特性 59
3.11 SCP和SFTP 60
3.11.1 URL 60
3.11.2 已知的主機(jī) 61
3.12 SMTP 62
3.12.1 示例(email.txt) 62
3.12.2 安全的郵件傳輸 63
3.12.3 SMTP URL 63
3.12.4 不進(jìn)行MX查找 63
3.13 TLS 64
3.13.1 密碼 64
3.13.2 啟用TLS 64
3.13.3 SSL和TLS版本 65
3.13.4 驗(yàn)證服務(wù)器證書(shū) 66
3.13.5 CA存儲(chǔ) 66
3.13.6 證書(shū)固定 67
3.13.7 OCSP裝訂 67
3.13.8 客戶端證書(shū) 68
3.14 SSLKEYLOGFILE 8
3.15 復(fù)制為curl命令 69
3.15.1 Firefox 69
3.15.2 Chrome 70
3.15.3 Safari 70
3.15.4 不使用Firefox的開(kāi)發(fā)者工具 71
3.15.5 不完美 71
第 4 章 用curl執(zhí)行HTTP操作 72
4.1 協(xié)議基礎(chǔ) 72
4.1.1 HTTP方法 72
4.1.2 HTTP協(xié)議基礎(chǔ) 72
4.1.3 將URL轉(zhuǎn)換為請(qǐng)求 73
4.1.4 --path-as-is 73
4.2 響應(yīng) 74
4.2.1 HTTP響應(yīng) 74
4.2.2 HTTP響應(yīng)消息的大小 74
4.2.3 HTTP響應(yīng)碼 74
4.2.4 CONNECT響應(yīng)碼 75
4.2.5 分塊傳輸編碼 75
4.2.6 gzip壓縮傳輸 75
4.2.7 壓縮傳輸編碼 75
4.2.8 傳遞傳輸編碼 76
4.3 HTTP身份驗(yàn)證 76
4.4 HTTP區(qū)間 77
4.5 HTTP版本 78
4.6 HTTP POST 78
4.6.1 Content-Type 79
4.6.2 POST二進(jìn)制內(nèi)容 79
4.6.3 URL編碼 79
4.6.4 轉(zhuǎn)換為GET 80
4.6.5 Expect: 100-continue 80
4.6.6 分塊編碼的POST 81
4.6.7 隱藏的表單字段 81
4.6.8 了解瀏覽器都發(fā)送了些什么 81
4.6.9 JavaScript和表單 82
4.7 HTTP multipart formpost 82
4.7.1 使用curl發(fā)送表單 83
4.7.2 生成的HTTP內(nèi)容 83
4.7.3 Content-Type 84
4.8 -d與-F 84
4.8.1 HTML Web表單 84
4.8.2 HTML之外的POST 85
4.9 重定向 85
4.9.1 HTTP重定向 85
4.9.2 永久重定向和臨時(shí)重定向 85
4.9.3 讓curl遵循重定向 86
4.9.4 GET還是POST 86
4.9.5 決定在重定向中使用哪種方法 87
4.9.6 重定向到其他主機(jī) 87
4.9.7 非HTTP重定向 87
4.9.8 HTML重定向 87
4.9.9 JavaScript重定向 87
4.10 修改HTTP請(qǐng)求 88
4.10.1 請(qǐng)求方法 88
4.10.2 自定義標(biāo)頭 88
4.10.3 referer 89
4.10.4 User-Agent 89
4.10.5 時(shí)間條件 90
4.11 PUT 90
4.12 cookie 91
4.12.1 cookie引擎 91
4.12.2 從文件中讀取cookie 91
4.12.3 將cookie寫(xiě)入文件 92
4.12.4 新cookie會(huì)話 92
4.13 HTTP 2 92
第 5 章 構(gòu)建和安裝 94
5.1 安裝預(yù)構(gòu)建的二進(jìn)制包 94
5.2 從源代碼構(gòu)建 96
5.2.1 git與tarball 96
5.2.2 在Linux和類Unix系統(tǒng)上 96
5.2.3 自動(dòng)工具 97
5.2.4 選擇TLS后端 97
5.3 依賴項(xiàng) 98
5.3.1 zlib 98
5.3.2 c-ares 98
5.3.3 libssh2 98
5.3.4 nghttp2 98
5.3.5 openldap 98
5.3.6 librtmp 99
5.3.7 libmetalink 99
5.3.8 libpsl 99
5.3.9 libidn2 99
5.4 TLS庫(kù) 99
5.4.1 用TLS庫(kù)構(gòu)建curl 99
5.4.2 使用boringssl構(gòu)建curl 102
第 6 章 libcurl基礎(chǔ) 103
6.1 easy句柄 103
6.2 “驅(qū)動(dòng)”傳輸 104
6.2.1 使用easy接口 105
6.2.2 使用multi接口 105
6.2.3 單個(gè)傳輸什么時(shí)候結(jié)束 107
6.2.4 使用multi_socket接口 107
6.2.5 選擇一個(gè) 108
6.2.6 多個(gè)easy句柄 108
6.2.7 multi_socket回調(diào) 108
6.2.8 如何開(kāi)始傳輸 109
6.2.9 什么時(shí)候結(jié)束 110
6.3 連接重用 110
6.3.1 easy API連接池 110
6.3.2 multi API連接池 110
6.3.3 共享“連接緩存” 111
6.4 回調(diào) 111
6.4.1 寫(xiě)回調(diào) 111
6.4.2 讀回調(diào) 112
6.4.3 進(jìn)度回調(diào) 112
6.4.4 標(biāo)頭回調(diào) 113
6.4.5 調(diào)試回調(diào) 114
6.4.6 sockopt回調(diào) 114
6.4.7 opensocket和closesocket回調(diào) 115
6.4.8 提供文件描述符 115
6.4.9 closesocket回調(diào) 116
6.5 清理 116
6.5.1 multi API 116
6.5.2 easy句柄 116
6.5.3 域名解析器后端 117
6.6 代理 118
6.6.1 代理類型 118
6.6.2 本地或代理域名查找 119
6.6.3 哪個(gè)代理 119
6.6.4 代理環(huán)境變量 119
6.6.5 HTTP代理 120
6.6.6 HTTPS代理 120
6.7 傳輸后的信息 121
6.7.1 可用的信息 121
6.7.2 在句柄之間共享數(shù)據(jù) 123
6.7.3 multi句柄 123
6.7.4 在easy句柄間共享數(shù)據(jù) 123
6.7.5 共享什么 123
6.7.6 鎖定 124
6.8 API兼容性 124
6.8.1 版本號(hào) 124
6.8.2 版本號(hào)數(shù)字的變化 125
6.8.3 哪個(gè)libcurl版本 125
6.8.4 運(yùn)行的是哪個(gè)libcurl版本 126
6.9 curl --libcurl 127
6.10 頭文件 128
6.11 全局初始化 128
6.12 libcurl多線程 129
6.13 curl easy選項(xiàng) 129
6.13.1 設(shè)置句柄選項(xiàng) 129
6.13.2 設(shè)置數(shù)字選項(xiàng) 129
6.13.3 獲取句柄選項(xiàng) 130
6.14 CURLcode返回碼 130
6.15 詳細(xì)操作 130
6.16 libcurl示例 131
6.16.1 獲取一個(gè)簡(jiǎn)單的HTML頁(yè)面 131
6.16.2 獲取HTML頁(yè)面并保存在內(nèi)存中 132
第 7 章 用libcurl執(zhí)行HTTP操作 135
7.1 HTTP響應(yīng) 135
7.1.1 HTTP響應(yīng)碼 135
7.1.2 關(guān)于HTTP的“錯(cuò)誤”響應(yīng)碼 136
7.2 HTTP請(qǐng)求 136
7.2.1 請(qǐng)求方法 136
7.2.2 自定義HTTP請(qǐng)求標(biāo)頭 137
7.3 HTTP版本 139
7.4 HTTP區(qū)間 139
7.4.1 HTTP身份驗(yàn)證 140
7.4.2 用戶名和密碼 140
7.4.3 要求進(jìn)行身份驗(yàn)證 140
7.4.4 Basic 140
7.5 在libcurl中處理cookie 141
7.5.1 cookie引擎 141
7.5.2 設(shè)置自定義cookie 142
7.5.3 導(dǎo)入和導(dǎo)出 142
7.5.4 cookie文件格式 143
7.6 下載 144
7.6.1 使用libcurl進(jìn)行HTTP下載 144
7.6.2 同時(shí)下載標(biāo)頭 144
7.7 上傳 145
7.7.1 HTTP上傳 145
7.7.2 HTTP POST 145
7.7.3 HTTP multipart formpost 145
第 8 章 語(yǔ)言綁定 146

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)