🍃 Leaf

World Wide Web

The World Wide Web (WWW), also known as the Web, is an Information System in which resources are accessible over the Internet, linked by hyperlinks, identified by a Uniform Resource Identifier (URI), and served via the Hypertext Transfer Protocol (HTTP).

It was invented by Tim Berners-Lee in 1989 while working at CERN in Geneva, Switzerland. He also wrote the very first Browser (called WorldWideWeb, later renamed Nexus to avoid confusion), a software to navigate over the Internet.

The Web was originally meant to transfer documents written in Hypertext Markup Language (HTML) called Webpages. Multiple Webpages sharing a common domain name make up a Website. Resources are stored in computers running web servers, which are the programs that respond to resource requests.

More at:

HyperText Transfer Protocol (HTTP)

The HTTP protocol exchanges data through requests-response messages.

More at RFC 9110 - HTTP Semantics.

HTTP Request

A request, or request-line, begins with a method token, followed by the request uri and the protocol version. All these elements are separated by a space character.

Example:

GET http://www.example.com/index.html HTTP/1.1

HTTP Response

After receiving and interpreting a request message, a server responds with an HTTP response message. A response message can contain many pieces of information, but at least the first line, called the status-line, consists of the protocol version, the 3-digit integer status code, followed by the status reason phrase. Elements also separated by a space.

Example:

HTTP/1.1 200 OK

HTTP Status Code

The first digit of the status code defines the class of response. The last two are intended to add further information, they don’t have any categorization role.

Possible classes of response:

Example:

HTTP/3.0 505 HTTP Version not supported

More at Status Code Definitions (w3.org).

Uniform Resource Identifier (URI)

Example:

https://www.example.com.uy:80/path/src?key=value#frag

Components:

https://www.example.com.uy:80/path/src?key=value#frag = URI, URL
https:// ............................................ = Scheme
        www.example.com.uy:80/path/src?key=value#frag = URI
        www.example.com.uy:80 ....................... = Authority
        www.example.com.uy .......................... = Host
        www ......................................... = Subdomain
           .example ................................. = Domain
                   .com ............................. = TLD
                       .uy .......................... = ccTLD
                          :80 ....................... = Port
                             /path/src?key=value#frag = URI, URN
                             /path/src .............. = Path
                                      ?key=value .... = Query
                                                #frag = Fragment

Terminology:

Browsers

Browser Engines

BrowserRendering engineJavaScript engine
ChromeBlinkV8
EdgeEdgeHTML/Blink & WebKit (iOS)Chakra
FirefoxGeckoSpiderMonkey
IETridentChakra
OperaBlinkV8
SafariWebKitNitro
BraveBlink & WebKit (iOS)V8

Notes: