Building an HTTP Server in Elixir
After learning the basics of a web server and taking a deeper look into Cowboy in the previous chapter, in this chapter, we will see how to build an HTTP server in Elixir. In order to build the HTTP server, we will leverage Erlang’s :gen_tcp
module. Using that module, we will create a TCP/IP connection between the client and the server, just like in Cowboy. We will then write a configurable web server package that will allow other apps to provide their own handlers to respond with. We will also be testing our HTTP server thoroughly using unit tests and a helper application. We will close up by making our HTTP server concurrent.
After reading through this chapter, you will be able to build an HTTP server from scratch using Elixir and have a better understanding of how TCP works to facilitate communication using sockets. We will be covering the following topics:
- Listening over a TCP socket using
:gen_tcp
- Responding over a TCP socket...