求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

Python網絡編程檢視原始碼討論檢視歷史

事實揭露 揭密真相
前往: 導覽搜尋

來自 孔夫子網 的圖片

Python網絡編程》,[美] 布蘭登·羅德(Brandon Rhodes) 著,諸豪文 譯,出版社: 人民郵電出版社。

人民郵電出版社,1953年10月成立,隸屬於中國工信出版傳媒集團,是工業和信息化部主管的大型專業出版社[1]。建社以來,人民郵電出版社圍繞「立足工信事業,面向現代社會,傳播科學知識,引領美好生活」的出版宗旨,已發展成為集圖書、期刊、音像電子及數字出版於一體的綜合性出版大社[2]

內容簡介

本書針對想要深入理解使用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.2 超文本標記語言 186

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.5 跨站請求偽造 202

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.6 使用安全套接層和傳輸層安全協議 253

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

參考文獻

  1. 我國出版社的等級劃分和分類標準,知網出書,2021-03-01
  2. 人民郵電出版社簡介,人民郵電出版社