# 1. Introduction to the Web ###### tags: `Web Applications` ## Terminology :::warning 🤯 Feel stuck with all these technical terms? Take a look at our course on [computer networks](Computer-networks). ::: * **URL (Uniform Resource Identifier)**: It is the address used in the web for resources. Fojr example https://www.uc3m.es/inicio * **IP**: The *Internet Prtoocol* is a newtork layer protocol for transmitting packets through different networks. It is the base of the Internet. [Read more about IP](IP) * **DNS**: Stands for `Domain name system`, and is a protocol that translates URI's into IP addresses. [Read more about DNS](DNS) * **IP address**: It is a numeric address given to every computer in the internet. [Read more about IP addresses](IP-address) * **HTML**: Is a [markup language](Markup-language) used to structure web pages. It is processed by Web browsers to render its contents and display the web page in a visual form. `[Read more about HTML](HTML) * **HTTP**: The *Hypertext Transfer Protocol* is an application layer protocol that lays the foundations for the World Wide Web. It features hyperlinks which easily link different [hyperlinks](Hyperlinks). [Read more about HTTP](HTTP) * **HTTPS**: It is a secured and encrypted version of HTTP, using TLS and SSL. [Read more about HTTPS](HTTPS) * **TCP**: It is one of the main protocols used in the Internet. TCP provides features such as ordered and [realiable protocol](Reliable-protocol) delivery of a stream of bytes between hosts or applications using an IP network. * **TLS**: It is a protocol that employs cryptography to secure communications over a network. [Read more about TLS](TLS) * **UDP**: It is one of the main protocols used in the Internet. UDP does *not* provide the guarantees that TCP offers. It is often used in settings were error checking and correction are not necessary or critical or where information needs to be transmitted as fast as possible. [Read more about UDP](UDP) * **Web Application**: TODO ## Client-Server architecture The [client-server architecture](Client-server-model) is a application model where a program called **client** connects to a program called **server** to get data. ```mermaid graph LR; %% Comment %% Create the nodes client(Client); server(Server) %% Connect the two graphs client -- Request --> server server -- Response --> client ``` ## HTML5 stack In the *client* side: * The **HTML document** contains the layout of the page and information that will be processed and rendered. *It defines the structure.* * **CSS stylesheets** specify visual attributes, detailing how things should be displayed. *It defines the appearance.* * **JavaScript code** makes the web page interactive and dynamic. *It defines the behavior.* ## Static vs. Dynamic webpages Static websites are websites whose contents do not change, whose HTML, CSS and Resources must be precompiled. > Example of a static website: Onyx Dynamic websites in the other hand are the ones on which HTML has to be generated every time a user makes a request.