We're sorry but this app doesn't work properly without JavaScript enabled. Please enable it to continue.

Learn HTTP Servers in Go

Build the server side of the web: routes, middleware, auth, and APIs in Go.

Also available in:

typescript

What will you learn?

Learn how to build and HTTP web server from scratch in the Go programming language. You'll build a production ready JSON API using fairly minimalistic tools. You'll incorporate middleware, routing, logging, webhooks, authentication, authorization, JWTs, and more. This course is the coup-de-grace for any aspiring backend developer.

Chapter List

1
Servers
We'll cover the basics of web servers, and why Go is such a great language for building performant web servers
2
Routing
We'll cover the basics of HTTP routing, and how to build a router using Go's standard library
3
Architecture
We'll talk about some different web architectures, and how to choose the right one for your project
4
JSON
Learn about how to parse and send JSON data from a Go server
5
Storage
We'll add a PostgreSQL database and talk about data storage and database migrations
6
Authentication
We'll build an authentication system using JWTs from scratch, and compare JWTs to other authentication methods
7
Authorization
Learn about how authorization differs from authentication, and how to implement it in your application
8
Webhooks
Webhooks are a special kind of HTTP handler that you'll use often in modern web applications. Learn how to use them here
9
Documentation
Learn about documentation, why it's important, and learn about some tools that can help you write good documentation

Join 10,859 students in the Learn HTTP Servers in Go course

Read reviews of their learning experiences

Great foray into working with json, http requests, tokens, authentication.

(5/5)
Kyle Chermak profile image

Kyle Chermak

United States

hard lesson made me struggle in a good way

(5/5)
Ambuj Seth profile image

Ambuj Seth

Lucknow, India

Super basic things, would be cool to see some complicated SQL queries, different authentication types - like one user can write & read, another only read. More details on how to maintain lots of routes, how to build project structure for that.

(4/5)
Артем Лапкин profile image

Артем Лапкин

Ukraine

A lot of fun and made me excitedly point at the screen more than a couple of times and planted the seeds for a lot of ideas that I wasn't quite sure how to form before.

(5/5)
TrTai  profile image

TrTai

United States of America

very very challengeable!

(5/5)
Kwangpil Jung profile image

Kwangpil Jung

South Korea

phenomenal course, very in depth. best backend course out there.

(5/5)
lord willmore profile image

lord willmore

India

A fantastic introduction to back-end development! It's challenging enough to push (pre-)junior devs to grow, and it serves as the perfect practice ground for engineers transitioning to Go from languages like Java.

(5/5)
Paweł Balcerek profile image

Paweł Balcerek

Poland

A great start to HTTP servers that actually did authentication that was not just basic auth but went into jwts.

(5/5)
Raphael Ribeiro profile image

Raphael Ribeiro

Toronto, Canada

A relatively difficult course. Would recommend more code-specific explanations rather than redirects to the documentation.

(4/5)
Rupak Gupta profile image

Rupak Gupta

India

Showing 1-9 of 177

or view more reviews

Mediocrity doesn't cut it anymore

The only way to become a great developer is to write a lot of code

Avoid tutorial hell

by writing a ton of code

Stay motivated with

a game-like curriculum

Build portfolio projects

to prove your skills

Delve deeper

into foundational concepts

Learn flexibly online

without interrupting your life

For 1% the price of college

to minimize your financial risk

Frequently asked Questions

Got questions? We've got answers

Yes! It's free to create an account and start learning. You'll get all the immersive and interactive features for free for a few chapters. After that, if you still haven't paid for a membership, you'll be in read-only (content only) mode.