# What-makes-the-web-possible?

To make the web work we need:

1. a common language (HTML)
2. a way to serve content (Web servers)
3. a way to view content (Web browsers)
4. servers and browsers should have an agreed-upon way of exchanging data (HTTP)
5. a way to send HTTP request to any computer connected to a network (The Internet)

Let's start with the last item. If we had all the other components, but we did not have a way for browsers to find servers or for servers to return HTML texts to browsers, there would be no Web. The web stands on the shoulders of a giant. That giant is the Internet. The Internet provides addresses to the clients and servers so that they can exchange information. It also provides the error-correction and reconnection rules (How does the browser know to ask for more data once you get out from underneath a tunnel?).

On top of this address and connection platform, servers and clients exchange information ("the web"). Technologists say that **the web is an Internet application**, but it is not the only one. Just as the address scheme for houses and the roadways can be used to deliver packages or bills, another **application** of post code addressing and roadways is "delivering a pizza." Another **application** is "organizing precincts for voting." Applications work "on top" of lower level constructs.

Now that we have a way to exchange HTTP requests (web requests), what are the other components for?

Let start with HTML. It's the language of the web. It's how we express information. Every website ever created is expressed using HTML. If we want to publish anything on the web, it will at some point be contained inside of an HTML document.

Once we have an HTML document we want to publish, where do we place it to make it available to billions of internet users? Web servers make our content available to everyone on the internet. Web servers are our content publishers (from a technical point of view).

Our content is now available to the whole web. Yay! What tool can we use to view it? How do we reach it? This is where web browsers come in. Web browsers know how to translate HTML code into something that is pleasant to read for a human.

How do web browsers and servers interact? We have an agreed-upon convention for servers and browsers to exchange data. That convention (standard) is HTTP, or, in networking parlance, a "network protocol." It's how web browsers speak to web servers and ask the servers to send them payloads of HTML. *Be careful*: HTTP is like a handshake and a request: "Ms. Server, please tell me what information you have in the file `poodles.html`." Ms. Server then sends it on, indifferent to the content inside the file. That's HTTP, the hyper-text transfer protocol, the rules for sending hyper-text, also known as HTML.

[![HTTP Request / Response Diagram](https://camo.githubusercontent.com/788b4f6112034d89c21e44c85fc66aede6edfbe9/68747470733a2f2f637572726963756c756d2d636f6e74656e742e73332e616d617a6f6e6177732e636f6d2f667377622d6173736574732f776861742d6d616b65732d7468652d7765622d706f737369626c652f726571756573745f726573706f6e73652e6a7067)](https://camo.githubusercontent.com/788b4f6112034d89c21e44c85fc66aede6edfbe9/68747470733a2f2f637572726963756c756d2d636f6e74656e742e73332e616d617a6f6e6177732e636f6d2f667377622d6173736574732f776861742d6d616b65732d7468652d7765622d706f737369626c652f726571756573745f726573706f6e73652e6a7067)

*Extremely High-Resolution, Retina ®-Compatible Diagram of the HTTP request / response cycle*

At its core, these five components make the internet possible. To recap:

1. The internet allows browsers and servers to connect to each other.
2. Browsers and server interact with an agreed-upon protocol: HTTP.
3. Content is represented as HTML documents.
4. HTML documents are published by web servers.
5. HTML documents are viewed using web browsers.

The web and the internet are two marvelous pieces of engineering work, but that is not the reason why it’s hard to imagine our life without them today. Their inventors made them free for anyone to use. Creators are able to build on top of the web and internet and reach anyone. This is what makes the web and internet magical.

How can you be one of those creators? Simply know how to generate HTML!


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://certil-remy.gitbook.io/learn/html/untitled-2.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
