The World Wide Web

The World Wide Web [WWW] is a vast information system that allows documents and other web resources to be accessed via the Internet.
It was invented by Sir Tim Berners-Lee in 1989 while he was working at CERN (European Organization for Nuclear Research).
The WWW operates based on three key technologies: Hypertext, Uniform Resource Locators [URLs], and Hypertext Transfer Protocol [HTTP].

Key Components of the World Wide Web

Web Pages - Web pages are documents that can contain text, images, videos, and hyperlinks to other web pages.
They are written using HTML (Hypertext Markup Language), which defines the structure and layout of the content on the page.
Each web page is identified by a URL, which is the unique address that directs a browser to access the page.

Hypertext - Hypertext is the core feature of the web that enables linking between different web pages or resources.
Users can click on hyperlinks [embedded within web pages] to navigate seamlessly from one page to another, creating a network of interlinked documents.

Web Browsers - A web browser is a software application used to access and view web pages on the World Wide Web.
Popular browsers include Google Chrome, Mozilla Firefox, Microsoft Edge, and Safari.
Browsers interpret the HTML code of a web page and render it into human-readable content.
They also handle other technologies like CSS [Cascading Style Sheets] for styling and JavaScript for dynamic behavior.

Servers & Clients - The WWW follows a client-server model, where the web browser [client] sends a request for a web page,
and the web server responds by delivering the requested page. Web servers host web pages and applications.
When a user requests a specific URL, the server delivers the corresponding resource back to the browser.

HTTP/HTTPS [Hypertext Transfer Protocol / Secure] - HTTP is the protocol that governs the communication between web browsers and servers.
It defines how requests are made and how responses are sent back.
HTTPS is the secure version of HTTP that encrypts the data exchanged between the browser and the server using SSL/TLS.
HTTP follows a simple request-response model:
The client sends an HTTP request to the server (e.g., requesting a web page).
The server processes the request and sends back a response [e.g., the HTML content of the web page].

URLs [Uniform Resource Locators] - A URL is the unique address used to access resources on the WWW It consists of:
Protocol (HTTP/HTTPS), Domain name [e.g., www.google.com], Path to the specific file or resource [e.g., www.google.com/maps].
URL vs URI - Understanding the Difference URL [Uniform Resource Locator] and URI [Uniform Resource Identifier] are often used interchangeably,
but they have distinct meanings in web terminology.
URI is a broader concept that refers to any string of characters used to identify a resource,
whether it’s a web page, document, or any other object on the internet.
A URI can be further categorized into two types:
URL [Uniform Resource Locator] – This specifies the location of a resource along with how to access it [e.g., https://www.google.com].
URN [Uniform Resource Name] – This identifies a resource by name, independent of its location [e.g., urn:isbn:0451450523 for a book].
URL, on the other hand, is a specific type of URI that includes the protocol (like http or https)
and the location [domain or IPaddress] needed to access a resource.
In essence, every URL is a URI, but not every URI is a URL.
URLs are focused on "where" a resource is, while URIs may also focus on the resource's identity without specifying its location.

HTTP Response Codes

Status Code Action Description
100 Continue The server has received the initial part of the request and is continuing to process the request.
101 Switching Protocols The server has received a request to switch protocols and is acknowledging this with the client.
102 Processing The server has received and is processing the request, but no response is available yet.
103 Early Hints The server is sending some response headers before the final response, to give the client some information that can be used to optimize the request.
200 OK The request has been successful, and the response body contains the requested information.
201 Created The request has been successful, and a new resource has been created as a result.
202 Accepted The request has been accepted for processing, but the processing has not been completed yet.
203 Non-Authoritative Information The server is a proxy, and the response is coming from a different source, but is still considered valid.
204 No Content The request has been successful, but there is no response body to return.
205 Reset Content The request has been successful, and the client should reset its view of the resource.
206 Partial Content The server is sending only part of the resource requested by the client.
207 Multi-Status The response is a collection of separate responses, one for each resource in the request.
208 Already Reported The members of a WebDAV binding have already been enumerated in a previous reply to this request, and are not being included again.
226 IM Used The response is a representation of the result of one or more instance manipulations applied to the current instance.
300 Multiple Choices The request has multiple possible responses, and the server is returning a list of options for the client to choose from.
301 Moved Permanently The requested resource has been permanently moved to a new URL, and the client should update its bookmarks and links accordingly.
302 Found The requested resource has been temporarily moved to a new URL, and the client should continue to use the original URL for future requests.
303 See Other The response to the request can be found under a different URL, and the client should make a new request using the new URL.
304 Not Modified The requested resource has not been modified since the client’s last request, and the server is returning the cached copy.
305 Use Proxy The requested resource can only be accessed through a proxy, and the client should use the proxy to access the resource.
306 Switch Proxy [Deprecated] This status code is no longer used.
307 Temporary Redirect The requested resource has been temporarily moved to a new URL, and the client should continue to use the original URL for future requests.
308 Permanent Redirect The requested resource has been permanently moved to a new URL, and the client should update its bookmarks and links accordingly.
400 Bad Request The server was unable to understand the request due to invalid syntax.
401 Unauthorized The request requires authentication, and the client has not provided valid.
402 Payment Required This status code is reserved for future use.
403 Forbidden The client does not have permission to access the requested resource.
404 Not Found The requested resource could not be found on the server.
405 Method Not Allowed The requested method is not supported for the requested resource.
406 Not Acceptable The requested resource is not capable of generating a response that meets the requirements specified in the request’s headers.
407 Proxy Authentication Required The client must first authenticate itself with the proxy
408 Request Timeout The server timed out waiting for the request from the client.
409 Conflict The request could not be completed due to a conflict with the current state of the resource.
410 Gone The requested resource is no longer available on the server and there is no forwarding address.
411 Length Required The server requires a Content-Length header to be included in the request.
412 Precondition Failed The precondition given in the request header fields did not match the server’s preconditions.
413 Payload Too Large The request is larger than the server is willing or able to process.
414 URI Too Long The URI provided in the request is too long for the server to process.
415 Unsupported Media Type The server does not support the media type specified in the request’s headers.
416 Range Not Satisfiable The requested range cannot be returned by the server.
417 Expectation Failed The expectation given in the request’s Expect header could not be met by the server.
418 I’m a teapot This status code is a joke and not intended to be used in serious applications.
421 Misdirected Request The request was directed at a server that is not able to produce a response.
422 Unprocessable Entity The server understands the request, but is unable to process it due to semantic errors.
423 Locked The requested resource is locked and the client should try again later.
424 Failed Dependency The requested resource depends on another resource, and that resource failed to complete the request.
426 Upgrade Required The client should switch to a different protocol, such as TLS/1.3.
428 Precondition Required The server requires the request to be conditional, and the client did not provide the necessary precondition headers.
429 Too Many Requests The user has sent too many requests in a given amount of time [“rate limiting”].
431 Request Header Fields Too Large The server is unwilling to process the request because its header fields are too large.
451 Unavailable For Legal Reasons The requested resource is unavailable due to legal reasons, such as censorship or government-mandated blocked access.
500 Internal Server Error The server encountered an unexpected condition that prevented it from fulfilling the request.
501 Not Implemented The server does not support the functionality required to fulfil the request.
502 Bad Gateway The server, while acting as a gateway or proxy, received an invalid response from an upstream server.
503 Service Unavailable The server is currently unable to handle the request due to temporary overload or maintenance of the server.
504 Gateway Timeout The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.
505 HTTP Version Not Supported The server does not support the HTTP protocol version used in the request.
506 Variant Also Negotiates Transparent content negotiation for the request results in a circular reference.
507 Insufficient Storage The server is unable to store the representation needed to complete the request.
508 Loop Detected The server detected an infinite loop while processing the request.
510 Not Extended Further extensions to the request are required for the server to fulfill it.
511 Network Authentication Required The client needs to authenticate to gain network access.

The Evolution of the Web

Web 1.0 [Static Web] - Web 1.0 refers to the early days of the web [1990s], where websites were mostly static and served fixed content.
Interaction was limited to basic navigation, and there was no dynamic user interaction.

Web 2.0 [Dynamic and Social Web] - Around the early 2000s, the web evolved into Web 2.0,
characterized by user-generated content, dynamic web pages, and interactive applications.
Websites became more interactive, allowing users to engage with content, post comments, share media, and participate in social networks.
The rise of platforms like Facebook, YouTube, and Wikipedia exemplifies this shift.

Web 3.0 [Semantic Web] - Web 3.0 is the next phase, aiming to create a more intelligent, data-driven web.
It focuses on the Semantic Web, where data is structured in a way that computers can understand and process,
making information retrieval more efficient.
Key features include decentralized web applications [using blockchain technology], AI integration, and enhanced privacy controls.

Security and the Web

Security is a critical concern in the operation of the World Wide Web.
As more personal and sensitive information is shared online, ensuring secure data transmission and protecting user privacy is paramount.
Some common web security measures include:

Encryption with HTTPS - HTTPS secures the communication between clients and servers, protecting data from being intercepted by attackers.
It uses SSL/TLS certificates to authenticate websites and encrypt data.

Web Application Firewalls [WAF] - WAFs help protect web applications by filtering and monitoring HTTP traffic between a web application and the Internet,
blocking attacks such as SQL Injection and Cross-Site Scripting [XSS].

Content Delivery Networks [CDNs] - CDNs are used to distribute content across multiple servers,
improving load times and security by mitigating Distributed Denial of Service [DDoS] attacks, which aim to overwhelm web servers with excessive traffic.

Authentication and Access Control - Secure authentication methods such as OAuth and Two-Factor Authentication [2FA]
are widely used to protect user accounts from unauthorized access.

Data Privacy - In the era of Web 2.0 and Web 3.0, privacy has become a central issue.
Regulations like GDPR [General Data Protection Regulation] in Europe mandate stricter privacy controls and consent for data collection,
pushing websites to be more transparent about how user data is used.

The Future of the Web

The future of the WWW is expected to bring further advancements in technologies such as artificial intelligence, blockchain, and decentralized networks.
The concepts of Web 3.0, with its emphasis on enhanced user control, data privacy, and decentralized content delivery,
indicate that the web will continue to evolve to meet the changing needs of its users.