Python網路編程(第3版)

Python網路編程(第3版)

《Python網路編程(第3版)》是2020年3月人民郵電出版社出版的圖書,作者是[美]布蘭登·羅德(Brandon Rhodes)。

基本介紹

  • 中文名:Python網路編程(第3版)
  • 作者:[美]布蘭登·羅德(Brandon Rhodes)
  • 出版時間:2020年3月
  • 出版社:人民郵電出版社
  • 頁數:345 頁
  • ISBN:9787115433503
  • 定價:79 元
  • 開本:16 開
  • 裝幀:平裝
內容簡介,圖書目錄,

內容簡介

本書針對想要深入理解使用Python來解決網路相關問題或是構建網路應用程式的技術人員,結合實例講解了網路協定、網路數據及錯誤、電子郵件、伺服器架構和HTTP及Web應用程式等經典話題。具體內容包括:全面介紹Python3中新提供的SSL支持,異步I/O循環的編寫,用Flask框架在Python代碼中配置URL,跨站腳本以及跨站請求偽造攻擊網站的原理及保護方法,等等。

圖書目錄

第 1 章 客戶端/伺服器網路編程簡介 1
1.1 基礎:協定棧與庫 1
1.2 套用層 4
1.3 協定的使用 5
1.4 一個原始的網路會話 6
1.5 層層深入 8
1.6 編碼與解碼 9
1.7 網際協定 10
1.8 IP 地址 11
1.9 路由 12
1.10 數據包分組 13
1.11 進一步學習 IP 14
1.12 小結 15
第 2 章 UDP 16
2.1 連線埠號 17
2.2 套接字 18
2.2.1 混雜客戶端與垃圾回復 22
2.2.2 不可靠性、退避、阻塞和逾時 23
2.2.3 連線 UDP 套接字 27
2.2.4 請求 ID:好主意 28
2.3 綁定接口 29
2.4 UDP 分組 31
2.5 套接字選項 33
2.6 廣播 33
2.7 小結 35
第 3 章 TCP 37
3.1 TCP 工作原理 37
3.2 何時使用 TCP 38
3.3 TCP 套接字的含義 39
3.4 一個簡單的 TCP 客戶端和伺服器 40
3.4.1 每個會話使用一個套接字 43
3.4.2 地址已被占用 44
3.5 綁定接口 46
3.6 死鎖 46
3.7 已關閉連線,半開連線 51
3.8 像使用檔案一樣使用 TCP 流 52
3.9 小結 53
第 4 章 套接字名與 DNS 54
4.1 主機名與套接字 54
4.1.1 套接字的 5 個坐標 55
4.1.2 IPv6 56
4.2 現代地址解析 57
4.2.1 使用 getaddrinfo( ) 為伺服器
綁定連線埠 58
4.2.2 使用 getaddrinfo( ) 連線服務 59
4.2.3 使用 getaddrinfo( ) 請求規範主機名 60
4.2.4 其他 getaddrinfo( ) 標記 61
4.2.5 原始的名稱服務程式 62
4.2.6 在代碼中使用 getsockaddr( ) 62
4.3 DNS 協定 64
4.3.1 為何不使用原始 DNS 66
4.3.2 使用 Python 進行 DNS 查詢 66
4.3.3 解析信箱域名 68
4.4 小結 70
第 5 章 網路數據與網路錯誤 71
5.1 位元組與字元串 71
5.1.1 字元串 72
5.1.2 二進制數與網路位元組順序 75
5.2 封幀與引用 77
5.3 pickle 與自定義定界符的格式 82
5.4 XML 與 JSON 83
5.5 壓縮 84
5.6 網路異常 85
5.6.1 拋出更具體的異常 87
5.6.2 捕捉與報告網路異常 87
5.7 小結 88
第 6 章 TLS/SSL 90
6.1 TLS 無法保護的信息 90
6.2 可能出問題的地方 91
6.3 生成證書 93
6.4 TLS 負載移除 . 95
6.5 Python 3.4 默認上下文 96
6.6 手動選擇加密算法與完 美前向安全 102
6.7 支持 TLS 的協定 104
6.8 了解細節 105
6.9 小結 111
第 7 章 伺服器架構 112
7.1 淺談部署 112
7.2 一個簡單的協定 114
7.3 單執行緒伺服器 117
7.4 多執行緒與多進程伺服器 120
7.5 異步伺服器 122
7.5.1 回調風格的 asyncio 126
7.5.2 協程風格的 asyncio 127
7.5.3 遺留模組 asyncore 129
7.5.4 兩全其美的方法 130
7.6 在 inetd 下運行 131
7.7 小結 133
第 8 章 快取與訊息佇列 134
8.1 使用 Memcached 134
8.2 散列與分區 137
8.3 訊息佇列 140
8.4 小結 145
第 9 章 HTTP 客戶端 147
9.1 Python 客戶端庫 147
9.2 連線埠、加密與封幀 149
9.3 方法 151
9.4 路徑與主機 152
9.5 狀態碼 152
9.6 快取與驗證 155
9.7 傳輸編碼 157
9.8 內容協商 158
9.9 內容類型 160
9.10 HTTP 認證 160
9.11 cookie 162
9.12 連線、Keep-Alive 和 httplib 163
9.13 小結 164
第 10 章 HTTP 伺服器 166
10.1 WSGI 166
10.2 異步伺服器與框架 168
10.3 前向代理與反向代理 169
10.4 4 種架構 170
10.4.1 在 Apache 下運行 Python 171
10.4.2 純粹的 Python HTTP伺服器的興起 172
10.4.3 反向代理的優勢 172
10.5 平台即服務 173
10.6 GET 與 POST 模式和 REST 的問題 174
10.7 不使用 Web 框架編寫 WSGI 可調用對象 176
10.8 小結 180
第 11 章 全球資訊網 181
11.1 超媒體與 URL 181
11.1.1 解析與構造 URL 182
11.1.2 相對 URL 184
11.3 讀寫資料庫 189
11.4 一個糟糕的 Web 應用程式(使用 Flask) 190
11.5 表單和 HTTP 方法 195
11.5.1 表單使用了錯誤方法的情況 197
11.5.2 安全的 cookie 與不安全的 cookie 198
11.5.3 非持久型跨站腳本 200
11.5.4 持久型跨站腳本 201
11.5.6 改進的應用程式 203
11.6 使用 Django 編寫的賬單應用程式 205
11.7 選擇 Web 框架 209
11.8 WebSocket 210
11.9 網路抓取 211
11.9.1 獲取頁面 212
11.9.2 抓取頁面 215
11.9.3 遞歸抓取 217
11.10 小結 221
第 12 章 電子郵件的構造與解析 222
12.1 電子郵件訊息格式 222
12.2 構造電子郵件訊息 224
12.3 添加 HTML 與多媒體 226
12.4 添加內容 231
12.5 解析電子郵件訊息 232
12.6 遍歷 MIME 部件 234
12.7 郵件頭編碼 236
12.8 解析日期 237
12.9 小結 238
第 13 章 SMTP 239
13.1 電子郵件客戶端與 Web 郵件服務 239
13.1.1 **開始使用命令行傳送電子郵件 239
13.1.2 客戶端的興起 240
13.1.3 轉移到 Web 郵件 241
13.2 SMTP 的使用方法 243
13.2.1 傳送電子郵件 244
13.2.2 郵件頭與信封接收者 245
13.2.3 多跳 246
13.3 SMTP 庫簡介 247
13.4 錯誤處理與會話調試 248
13.5 從 EHLO 獲取信息 251
13.7 認證的 SMTP 255
13.8 關於 SMTP 的小貼士 257
13.9 小結 257
第 14 章 POP 258
14.1 POP 伺服器的兼容性 258
14.2 連線與認證 259
14.3 獲取信箱信息 261
14.4 訊息的下載與刪除 263
14.5 小結 265
第 15 章 IMAP 266
15.1 在 Python 中使用 IMAP 267
15.1.1 IMAPClient 269
15.1.2 查看資料夾 271
15.1.3 訊息號與 UID 272
15.1.4 訊息範圍 272
15.1.5 摘要信息 272
15.1.6 下載整個信箱 274
15.1.7 單獨下載訊息 276
15.1.8 標記並刪除訊息 281
15.1.9 刪除訊息 282
15.1.10 搜尋 282
15.1.11 操作資料夾與訊息 284
15.1.12 異步性 285
15.2 小結 285
第 16 章 Telnet 和 SSH 286
16.1 命令行自動化 286
16.1.1 命令行擴展與引用 287
16.1.2 UNIX 命令行參數幾乎可以包含任意字元 288
16.1.3 對字元進行引用 290
16.1.4 糟糕的 Windows 命令行 291
16.1.5 終端的特別之處 292
16.1.6 終端的緩衝行為 295
16.2 Telnet 296
16.3 SSH:安全 shell 300
16.3.1 SSH 概述 300
16.3.2 SSH 主機密鑰 301
16.3.3 SSH 認證 303
16.3.4 shell 會話與獨立命令 304
16.3.5 SFTP:通過 SSH 進行檔案傳輸 308
16.3.6 其他特性 310
16.4 小結 311
第 17 章 FTP 313
17.1 何時不使用 FTP 313
17.1.1 通信信道 314
17.1.2 在 Python 中使用 FTP 315
17.1.3 ASCII 和二進制檔案 316
17.1.4 二進制下載進階功能介紹 318
17.1.5 上傳數據 319
17.1.6 二進制上傳進階功能介紹 320
17.1.7 錯誤處理 321
17.1.8 掃描 322
17.1.9 檢測以及遞歸下載 324
17.1.10 的創建以及檔案和的刪除 326
17.1.11 安全地操作 FTP 326
17.2 小結 326
第 18 章 RPC 328
18.1 RPC 的特性 329
18.1.1 XML-RPC 330
18.1.2 JSON-RPC 336
18.1.3 自文檔的數據 339
18.1.4 關於對象:Pyro 和 RPyC 340
18.1.5 RPyC 例子 341
18.1.6 RPC、Web 框架和訊息
佇列 343
18.1.7 從網路錯誤中恢復 344
18.2 小結 344

相關詞條

熱門詞條

聯絡我們