0%

Dive into key topics in network architecture implemented with the Google-backed open source Go programming language. Networking topics such as data serialization, application level protocols, character sets and encodings are discussed and demonstrated in Go. This book has been updated to the Go version 1.18 which includes modules, generics, and fuzzing along with updated and additional examples.


Beyond the fundamentals, Network Programming with Go, Second Edition covers key networking and security issues such as HTTP protocol changes, validation and templates, remote procedure call (RPC) and REST comparison, and more. Additionally, authors Ronald Petty and Jan Newmarch guide you in building and connecting to a complete web server based on Go. Along the way, use of a Go web toolkit (Gorilla) will be employed.


This book can serve as both an essential learning guide and reference on networking concepts and implementation in Go.  Free source code is available on Github for this book under Creative Commons open source license.


What You Will Learn

  • Perform network programming with Go (including JSON and RPC)
  • Understand Gorilla, the Golang web toolkit, and how to use it
  • Implement a microservice architecture with Go
  • Leverage Go features such as generics, fuzzing
  • Master syscalls and how to employ them with Go

Who This Book Is For
Anyone interested in learning networking concepts implemented in modern Go. Basic knowledge in Go is assumed, however, the content and examples in this book are approachable with modest development experience in other languages.

Table of Contents

  1. Cover
  2. Front Matter
  3. 1. Architectural Layers
  4. 2. Overview of the Go Language
  5. 3. Socket-Level Programming
  6. 4. Data Serialization
  7. 5. Application-Level Protocols
  8. 6. Managing Character Sets and Encodings
  9. 7. Security
  10. 8. HTTP
  11. 9. Templates
  12. 10. A Complete Web Server
  13. 11. HTML
  14. 12. XML
  15. 13. Remote Procedure Call
  16. 14. REST
  17. 15. WebSockets
  18. 16. Gorilla
  19. 17. Testing
  20. Back Matter
13.59.82.167