> For the complete documentation index, see [llms.txt](https://wtx.jerluc.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wtx.jerluc.com/topics/http/introduction.md).

# Introduction

HTTP is the *hypertext transfer protocol*, which describes a simple, text-based (vs. binary) protocol for sending data over the web. Using this protocol, most web interactions are modeled as a cycle of *requests* from *clients* to *servers* which reply with *responses*.

For example, when you go to a web page, e.g. [jerluc.com](https://jerluc.com), there are several resources in addition to the page text that need to be downloaded in order to render the page to your computer screen, e.g. images, icons, fonts, etc. Your web browser (the *client*) requests each of these resources individually from jerluc.com (the *server*), which then replies with the data. Once the response has been downloaded, your browser then compiles the information together into a displayable view which is what we see on our screens. Lastly, when you click on a web link on the web page, the cycle starts all over again.

This simple interaction is only the beginning of the many ways in which HTTP is used in modern software.
