Web Basics
History of Web
- Created by: Tim Berners-Lee in 1989
- In his words: “a need for a collaborative knowledge-sharing tool”
- It has grown under the guidance of the World Wide Web Consortium (W3C)
- Graphical browsers were introduced in early 90’s
What is web ?
- Mesh of computers communicating and working together
- Web works on the standards of communication
- Two most important standards or protocols are HTTP(Hyper Text Transport Protocol) and HTML(Hyper Text Markup Language)
- Client/Server Relation
Client-server Model
The client-server model is a design pattern or architecture that constrains system/solution activities between two parties; a client and a server. The concept of client-server is based on a request-response relationship but isn’t always representative of a physical machine, location or person.
Where a client makes a request for a resource from a server, the server responds to the client with the requested resource or a reason that its unavailable.
We tend to consider browsers, phones and laptops as straight-up clients. They send requests out to the internet somewhere then process the response. For the most this is generally true but there are scenarios, especially on the back-end where a server in one relationship can be a client in another.
HTTP
Knowing now that there are relationships between parties in a client-server model, we need a standard way to communicate.
Hypertext Transport Protocol (HTTP) provides a standardized framework to enable the ‘fetching’ of documents and other resources and is the basis for exchanging data on the internet.
HTTP messages in the form of either an HTTP request or response are sent back and forth between the client and server. HTTP messages are usually comprised of two parts, a header and body or, payload. The header contains message metadata and the body carries the cargo.
Thousands of HTTP messages can be sent and received before a requested resource is transmitted.
Deep Dive
For more information on HTTP messaging, you can view the HTTP Messaging module of the HTTP Fundatmentals course on PluralSight
Browsers and User Agents
According to MDN:
A user-agent is any tool that acts on the behalf of the user. This role is primarily performed by the Web browser; other possibilities are programs used by engineers and Web developers to debug their applications.
The browser is always the entity initiating the request. It is never the server (though some mechanisms have been added over the years to simulate server-initiated messages).