Most ebook files are in PDF format, so you can easily read them using various software such as Foxit Reader or directly on the Google Chrome browser.
Some ebook files are released by publishers in other formats such as .awz, .mobi, .epub, .fb2, etc. You may need to install specific software to read these formats on mobile/PC, such as Calibre.
Please read the tutorial at this link: https://ebookbell.com/faq
We offer FREE conversion to the popular formats you request; however, this may take some time. Therefore, right after payment, please email us, and we will try to provide the service as quickly as possible.
For some exceptional file formats or broken links (if any), please refrain from opening any disputes. Instead, email us first, and we will try to assist within a maximum of 6 hours.
EbookBell Team
5.0
108 reviewsISBN 10: 1430230037
ISBN 13: 9781430230038
Author: John Goerzen, Tim Bower, Brandon Rhodes
This second edition of Foundations of Python Network Programming targets Python 2.5 through Python 2.7, the most popular production versions of the language. Python has made great strides since Apress released the first edition of this book back in the days of Python 2.3. The advances required new chapters to be written from the ground up, and others to be extensively revised. You will learn fundamentals like IP, TCP, DNS and SSL by using working Python programs; you will also be able to familiarize yourself with infrastructure components like memcached and message queues. You can also delve into network server designs, and compare threaded approaches with asynchronous event-based solutions. But the biggest change is this edition's expanded treatment of the web. The HTTP protocol is covered in extensive detail, with each feature accompanied by sample Python code. You can use your HTTP protocol expertise by studying an entire chapter on screen scraping and you can then test lxml and BeautifulSoup against a real-world web site. The chapter on web application programming now covers both the WSGI standard for component interoperability, as well as modern web frameworks like Django. Finally, all of the old favorites from the first edition are back: E-mail protocols like SMTP, POP, and IMAP get full treatment, as does XML-RPC. You can still learn how to code Python network programs using the Telnet and FTP protocols, but you are likely to appreciate the power of more modern alternatives like the paramiko SSH2 library. If you are a Python programmer who needs to learn the network, this is the book that you want by your side.
CHAPTER 1 Introduction to Client/Server Networking
The Building Blocks: Stacks and Libraries
Application Layers
Speaking a Protocol
A Raw Network Conversation
Turtles All the Way Down
The Internet Protocol
IP Addresses
Routing
Packet Fragmentation
Learning More About IP
CHAPTER 2 UDP
Should You Read This Chapter?
Addresses and Port Numbers
Port Number Ranges
Sockets
Unreliability, Backoff, Blocking, Timeouts
Connecting UDP Sockets
Request IDs: A Good Idea
Binding to Interfaces
UDP Fragmentation
Socket Options
Broadcast
When to Use UDP
Summary
CHAPTER 3 TCP
How TCP Works
When to Use TCP
What TCP Sockets Mean
A Simple TCP Client and Server
One Socket per Conversation
Address Already in Use
Binding to Interfaces
Deadlock
Closed Connections, Half-Open Connections
Using TCP Streams like Files
Summary
CHAPTER 4 Socket Names and DNS
Hostnames and Domain Names
Socket Names
Five Socket Coordinates
IPv6
Modern Address Resolution
Asking getaddrinfo() Where to Bind
Asking getaddrinfo() About Services
Asking getaddrinfo() for Pretty Hostnames
Other getaddrinfo() Flags
Primitive Name Service Routines
Using getsockaddr() in Your Own Code
Better Living Through Paranoia
A Sketch of How DNS Works
Why Not to Use DNS
Why to Use DNS
Resolving Mail Domains
Zeroconf and Dynamic DNS
Summary
CHAPTER 5 Network Data and Network Errors
Text and Encodings
Network Byte Order
Framing and Quoting
Pickles and Self-Delimiting Formats
XML, JSON, Etc.
Compression
Network Exceptions
Handling Exceptions
Summary
CHAPTER 6 TLS and SSL
Computer Security
IP Access Rules
Cleartext on the Network
TLS Encrypts Your Conversations
TLS Verifies Identities
Supporting TLS in Python
The Standard SSL Module
Loose Ends
Summary
CHAPTER 7 Server Architecture
Daemons and Logging
Our Example: Sir Launcelot
An Elementary Client
The Waiting Game
Running a Benchmark
Event-Driven Servers
Poll vs. Select
The Semantics of Non-blocking
Event-Driven Servers Are Blocking and Synchronous
Twisted Python
Load Balancing and Proxies
Threading and Multi-processing
Threading and Multi-processing Frameworks
Process and Thread Coordination
Running Inside inetd
Summary
CHAPTER 8 Caches, Message Queues, and Map-Reduce
Using Memcached
Memcached and Sharding
Message Queues
Using Message Queues from Python
How Message Queues Change Programming
Map-Reduce
Summary
CHAPTER 9 HTTP
URL Anatomy
Relative URLs
Instrumenting urllib2
The GET Method
The Host Header
Codes, Errors, and Redirection
Payloads and Persistent Connections
POST And Forms
Successful Form POSTs Should Always Redirect
POST And APIs
REST And More HTTP Methods
Identifying User Agents and Web Servers
Content Type Negotiation
Compression
HTTP Caching
The HEAD Method
HTTPS Encryption
HTTP Authentication
Cookies
HTTP Session Hijacking
Cross-Site Scripting Attacks
WebOb
Summary
CHAPTER 10 Screen Scraping
Fetching Web Pages
Downloading Pages Through Form Submission
The Structure of Web Pages
Three Axes
Diving into an HTML Document
Selectors
Summary
CHAPTER 11 Web Applications
Web Servers and Python
Two Tiers
Choosing a Web Server
WSGI
WSGI Middleware
Python Web Frameworks
URL Dispatch Techniques
Templates
Final Considerations
Pure-Python Web Servers
CGI
mod_python
Summary
CHAPTER 12 E-mail Composition and Decoding
E-mail Messages
Composing Traditional Messages
Parsing Traditional Messages
Parsing Dates
Understanding MIME
How MIME Works
Composing MIME Attachments
MIME Alternative Parts
Composing Non-English Headers
Composing Nested Multiparts
Parsing MIME Messages
Decoding Headers
Summary
CHAPTER 13 SMTP
E-mail Clients, Webmail Services
In the Beginning Was the Command Line
The Rise of Clients
The Move to Webmail
How SMTP Is Used
Sending E-Mail
Headers and the Envelope Recipient
Multiple Hops
Introducing the SMTP Library
Error Handling and Conversation Debugging
Getting Information from EHLO
Using Secure Sockets Layer and Transport Layer Security
Authenticated SMTP
SMTP Tips
Summary
CHAPTER 14 POP
Compatibility Between POP Servers
Connecting and Authenticating
Obtaining Mailbox Information
Downloading and Deleting Messages
Summary
CHAPTER 15 IMAP
Understanding IMAP in Python
IMAPClient
Examining Folders
Message Numbers vs. UIDs
Message Ranges
Summary Information
Downloading an Entire Mailbox
Downloading Messages Individually
Flagging and Deleting Messages
Deleting Messages
Searching
Manipulating Folders and Messages
Asynchrony
Summary
CHAPTER 16 Telnet and SSH
Command-Line Automation
Command-Line Expansion and Quoting
Unix Has No Special Characters
Quoting Characters for Protection
The Terrible Windows Command Line
Things Are Different in a Terminal
Terminals Do Buffering
Telnet
SSH: The Secure Shell
An Overview of SSH
SSH Host Keys
SSH Authentication
Shell Sessions and Individual Commands
SFTP: File Transfer Over SSH
Other Features
Summary
CHAPTER 17 FTP
What to Use Instead of FTP
Communication Channels
Using FTP in Python
ASCII and Binary Files
Advanced Binary Downloading
Uploading Data
Advanced Binary Uploading
Handling Errors
Detecting Directories and Recursive Download
Creating Directories, Deleting Things
Doing FTP Securely
Summary
CHAPTER 18 RPC
Features of RPC
XML-RPC
JSON-RPC
Self-documenting Data
Talking About Objects: Pyro and RPyC
An RPyC Example
RPC, Web Frameworks, Message Queues
Recovering From Network Errors
Binary Options: Thrift and Protocol Buffers
Summary
Index
foundations of python network programming third edition
foundations of python network programming pdf github
foundations of python network programming github
foundations of python network programming john goerzen
foundations of python programming
foundations of python programming pdf
foundations of python
Tags: John Goerzen, Tim Bower, Brandon Rhodes, Python, Programming