ABLAZE
@ablazelilith
Course Content
Notes
Curriculum

What is the internet?

The fundamentals to understand web development

What is the internet?

>  Internet is a global computer network.

Client (browser) types: "www.google.com" ISP (Internet Service Provider) [ DNS (Domain Name System) returns IP address: "142.251.36.46" ] Internet Backbone Server (a giant library directly connected to the internet that is online 24/7) sends requested files back to the Client.

Check DNS records of a domain:

It's important to realize that the Internet is a global network of physical cables, which can include copper telephone wires, TV cables, and fiber optic cables. Even wireless connections like Wi-Fi and 3G/4G rely on these physical cables to access the Internet.

When you visit a website, your computer sends a request over these wires to a server. A server is where websites are stored, and it works a lot like your computer's hard drive. Once the request arrives, the server retrieves the website and sends the correct data back to your computer. What's amazing is that this all happens in just a few seconds!

In other words, internet is a network of high-bandwidth fiber optic submarine cable system

Submarine cable system :

How do websites actually work?

What does HTML, CSS, and JavaScript do exactly?

What is web browser?

A web browser is application software for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's screen. Browsers are used on a range of devices, including desktops, laptops, tablets, and smartphones.

Function

The purpose of a web browser is to fetch content from the World Wide Web or from local storage and display it on a user's device. This process begins when the user inputs a Uniform Resource Locator (URL), such as https://en.wikipedia.org/, into the browser. Virtually all URLs are retrieved using the Hypertext Transfer Protocol (HTTP), a set of rules for the transfer of data. If the URL uses the secure mode of HTTP (HTTPS), the connection between the browser and the web server is encrypted for the purposes of communications security and information privacy.

Web pages usually contain hyperlinks to other pages and resources. Each link contains a URL, and when it is clicked or tapped, the browser navigates to the new resource. Most browsers use an internal cache of web page resources to improve loading times for subsequent visits to the same page. The cache can store many items, such as large images, so they do not need to be downloaded from the server again. Cached items are usually only stored for as long as the web server stipulates in its HTTP response messages.

History

The first web browser, called WorldWideWeb, was created in 1990 by Sir Tim Berners-Lee. He then recruited Nicola Pellow to write the Line Mode Browser, which displayed web pages on dumb terminals. The Mosaic web browser was released in April 1993, and was later credited as the first web browser to find mainstream popularity. Its innovative graphical user interface made the World Wide Web easy to navigate and thus more accessible to the average person. This, in turn, sparked the Internet boom of the 1990s, when the Web grew at a very rapid rate.

Marc Andreessen, the leader of the Mosaic team, started his own company, Netscape, which released the Mosaic-influenced Netscape Navigator in 1994. Navigator quickly became the most popular browser.

Nicola Pellow and Tim Berners-Lee

Left to right: Nicola Pellow and Tim Berners-Lee in 1992

Marc Andreessen

Marc Andreessen

Microsoft debuted Internet Explorer in 1995, leading to a browser war with Netscape. Within a few years, Microsoft gained a dominant position in the browser market for two reasons: it bundled Internet Explorer with Microsoft Windows, their popular operating system and did so as freeware with no restrictions on usage. The market share of Internet Explorer peaked at over 95% in the early 2000s. In 1998, Netscape launched what would become the Mozilla Foundation to create a new browser using the open-source software model. This work evolved into the Firefox browser, first released by Mozilla in 2004. Firefox's market share peaked at 32% in 2010. Apple released its Safari browser in 2003. Safari remains the dominant browser on Apple devices, though it did not become popular elsewhere.

Google debuted its Chrome browser in 2008, which steadily took market share from Internet Explorer and became the most popular browser in 2012. Chrome has remained dominant ever since. By 2015, Microsoft replaced Internet Explorer with Edge for the Windows 10 release.

Since the early 2000s, browsers have greatly expanded their HTML, CSS, JavaScript, and multimedia capabilities.

  • One reason has been to enable more sophisticated websites, such as web apps.
  • Another factor is the significant increase of broadband connectivity, which enables people to access data-intensive content, such as video streaming, that was not possible during the era of dial-up modems.

The first web browser

The worldโ€™s first web browser, the WorldWideWeb browser, was released at Christmas, on 25 December in 1990. It was developed by Tim Berners-Lee, who is best known as the inventor of the internet – the โ€œworld wide webโ€. The browser was subsequently renamed as Nexus in order to avoid confusing it with the internet or โ€œwwwโ€ and was then discontinued in January 1994 and was in use for 3 years.

Berners-Lee used the initial browser that only had text-based interface to navigate the web. Since the use of the internet was very much restricted in the early 1990s, Nexus did not become widely-spread.

The WorldWideWeb (Nexus) Browser User Interface The WorldWideWeb (Nexus) Browser

Introduction to HTML

HTML  manages structure and content
CSS  manages style and design
JavaScript  manages functionality

HTML stands for HyperText Markup language.

Web pages are created using HyperText Markup Language (HTML), which ish the authoring language used to create documents on the World Wide Web.

HTML uses a set of special instructions called tags or markup to define the structure and layout of a Web document and specify how the page is dispkayed in a browser.

HTML is platform independent*, meaning you can create or code an HTML file on one type of computer and then use a browser on another type of computer to view that file as a Web page.

HTML is a computer language devised to allow website creation:

  • Like all programming languages, HTML is simply a text file.
  • Unlike other programming languages, HTML has no variables or commands.
  • HTML is merely a way of formatting a document.

The Anatomy of HTML

html element html element html element html element html element

What is the difference between HTML tags and elements?

HTML tag is just opening or closing entity. For example:

<p> and </p> are called HTML tags

HTML element encompasses opening tag, closing tag, content (optional for content-less tags) eg:

<p>This is the content</p>

This complete thing is called a HTML element.

Element = Tags + attributes + content


HTML Boilerplate

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"=>
<!-- We no longer need to include the following line of code because Internet Explorer (IE) was deprecated on June 15, 2022 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
</html>

Pro tip you can type ! (exclamation mark) and then press tab on html file in VS Code and you will get latest HTML boilerplate.

Build Your Own Burger

Codeburger

HTML Code Burger

burger.html

Codeburger
<!DOCTYPE html>
<bun type="bagel" topping="sesame">
<lettuce>
<pickledcucumber>
<onion>
<tomato></tomato>
</lettuce>
<cheese>
<ketchup></ketchup>
<meat>bacons</meat>
<meat>beefpatty</meat>
</cheese>
</bun>

HTML Elements

<h1>โ€“<h6> HTML Section Headings

The <h1> to <h6> HTML elements represent six levels of section headings. <h1> is the highest section level and <h6> is the lowest.

<h1>Heading level 1</h1>
<h2>Heading level 2</h2>
<h3>Heading level 3</h3>
<h4>Heading level 4</h4>
<h5>Heading level 5</h5>
<h6>Heading level 6</h6>

Heading level 1

Heading level 2

Heading level 3

Heading level 4

Heading level 5
Heading level 6
Content categories

Flow content, heading content, palpable content

Permitted content

Phrasing content

Tag omission

None, both the starting and ending tag are mandatory

Permitted parents

Any element that accepts flow content

DOM interface

HTMLHeadingElement

Usage

  • Heading information can be used by user agents to construct a table of contents for a document automatically.
  • Do not use heading elements to resize text. Instead, use CSS font-size property.
  • Do not skip heading levels: always start from <h1>, followed by <h2> and so on.

Note avoid using multiple <h1> elements on one page

While using multiple <h1> elements on one page is allowed by the HTML standard (as long as they are not nested), this is not considered a best practice. A page should generally have a single <h1> element that describes the content of the page (similar to the document's <title> element).

Prefer using only one <h1> per page and nest headings without skipping levels.

Do

<h1>Heading level 1</h1>
<h2>Heading level 2</h2>
<h3>Heading level 3</h3>

Don't

<h1>Heading level 1</h1>
<h3>Heading level 2</h3>
<h4>Heading level 3</h4>

<section> Generic Section

The <section> HTML element represents a generic standalone section of a document, which doesn't have a more specific semantic element to represent it. Sections should always have a heading, with very few exceptions.

Attributes

This element only includes the global attributes.

Usage

As mentioned above, <section> is a generic sectioning element, and should only be used if there isn't a more specific element to represent it. As an example, a navigation menu should be wrapped in a <nav> element, but a list of search results or a map display and its controls don't have specific elements, and could be put inside a <section>.

Also consider these cases:

  • If the contents of the element represent a standalone, atomic unit of content that makes sense syndicated as a standalone piece (e.g. a blog post or blog comment, or a newspaper article), the <article> element would be a better choice.
  • If the contents represent useful tangential information that works alongside the main content, but is not directly part of it (like related links, or an author bio), use an <aside>.
  • If the contents represent the main content area of a document, use <main>.
  • If you are only using the element as a styling wrapper, use a <div> instead.

To reiterate, each <section> should be identified, typically by including a heading (<h1> - <h6> element) as a child of the <section> element, wherever possible. See below for examples of where you might see a <section> without a heading.

Usage example

Before

<div>
<h2>Heading</h2>
<p>Bunch of awesome content</p>
</div>

After

<section>
<h2>Heading</h2>
<p>Bunch of awesome content</p>
</section>

Using a section without a heading

Circumstances where you might see <section> used without a heading are typically found in web application/UI sections rather than in traditional document structures. In a document, it doesn't really make any sense to have a separate section of content without a heading to describe its contents. Such headings are useful for all readers, but particularly useful for users of assistive technologies like screen readers, and they are also good for SEO.

Consider however a secondary navigation mechanism. If the global navigation is already wrapped in a <nav> element, you could conceivably wrap a previous/next menu in a <section>:

<section>
<a href="#">Reply</a>
<a href="#">Delete</a>
</section>

Or what about some kind of button bar for controlling your app? This might not necessarily want a heading, but it is still a distinct section of the document:

<section>
<button class="reply">Reply</button>
<button class="reply-all">Reply to all</button>
<button class="fwd">Forward</button>
<button class="del">Delete</button>
</section>

Make sure to use some assistive technology and screen-reader-friendly CSS to hide it, like so:

.hidden {
position: absolute;
top: -9999px;
left: -9999px;
}

Depending on the content, including a heading could also be good for SEO, so it is an option to consider.

Content categories

Flow content, Sectioning content, Palpable content

Permitted content

Flow content

Tag omission

None, both the starting and ending tag are mandatory

Permitted parents

Any element that accepts flow content. Note that a

element must not be a descendant of an <address> element

DOM interface

HTMLElement

<a> Anchor

The <a> HTML element (or anchor element), with its href attribute, creates a hyperlink to web pages, files, email addresses, locations in the same page, or anything else a URL can address.

Content within each <a> should indicate the link's destination. If the href attribute is present, pressing the enter key while focused on the <a> element will activate it.

<p>You can reach GRIMRIN at:</p>
<ul>
<li><a href="https://ablazelilith.com">www.ablazelilith.com</a></li>
<li><a href="mailto:kirialilith@gmail.com">kirialilith@gmail.com</a></li>
<li><a href="tel:+16098889889">(609) 888 9889 </a></li>
</ul>

Attributes

download

Causes the browser to treat the linked URL as a download. Can be used with or without a filename value.

href

The URL that the hyperlink points to. Links are not restricted to HTTP-based URLs โ€” they can use any URL scheme supported by browsers:

  • Sections of a page with fragment URLs
  • Pieces of media files with media fragments
  • Telephone numbers with tel: URLs
  • Email addresses with mailto: URLs
  • While web browsers may not support other URL schemes, websites can with registerProtocolHandler()
hreflang

Hints at the human language of the linked URL. No built-in functionality. Allowed values are the same as the global lang attribute.

ping

A space-separated list of URLs. When the link is followed, the browser will send POST requests with the body PING to the URLs. Typically for tracking.

rel

The relationship of the linked URL as space-separated link types.

referrerpolicy
target

Where to display the linked URL, as the name for a browsing context (a tab, window, or <iframe>). The following keywords have special meanings for where to load the URL:

  • _self the current browsing context. (Default)
  • _blank usually a new tab, but users can configure browsers to open a new window instead.
  • _parent the parent browsing context of the current one. If no parent, behaves as _self.
  • _top the topmost browsing context (the "highest" context that's an ancestor of the current one). If no ancestors, behaves as _self.

Note: Setting target="_blank" on <a> elements implicitly provides the same rel behavior as setting rel="noopener" which does not set window.opener.

type

Hints at the linked URL's format with a MIME type. No built-in functionality.

Content categories

Flow content, phrasing content, interactive content, palpable content

Permitted content

Transparent, except that no descendant may be interactive content or an a element, and no descendant may have a specified tabindex attribute.

Tag omission

None, both the starting and ending tag are mandatory

Permitted parents

Any element that accepts phrasing content, or any element that accepts flow content, but not other elements.

DOM interface

HTMLAnchorElement

Examples

Linking to relative URLs

<a href="//example.com">Scheme-relative URL</a>
<a href="/en-US/docs/Web/HTML">Origin-relative URL</a>
<a href="./p">Directory-relative URL</a>

Linking to an element on the same page

<!-- <a> element links to the section below -->
<p><a href="#Section_further_down">Jump to the heading below</a></p>

<!-- Heading to link to -->
<h2 id="Section_further_down">Section further down</h2>

Linking to an email address

To create links that open in the user's email program to let them send a new message, use the mailto: scheme:

<a href="mailto:hello@ablazelilith.com">Send email to Kiria</a>

For details about mailto: URLs, such as including a subject or body, see Email links.

Linking to telephone numbers

<a href="tel:+49.157.0156">+49 157 0156</a>
<a href="tel:+1(555)5309">(555) 5309</a>

Security and privacy

<a> elements can have consequences for users' security and privacy. See Referer header: privacy and security concerns for information.

Using target="_blank" without rel="noreferrer" and rel="noopener" makes the website vulnerable to window.opener API exploitation attacks (vulnerability description), although note that, in newer browser versions setting target="_blank" implicitly provides the same protection as setting rel="noopener".


Skip links

A skip link is a link placed as early as possible in content that points to the beginning of the page's main content. Usually, CSS hides a skip link offscreen until focused.

Skip links let keyboard users bypass content repeated throughout multiple pages, such as header navigation.

Skip links are especially useful for people who navigate with the aid of assistive technology such as switch control, voice command, or mouth sticks/head wands, where the act of moving through repetitive links can be laborious.

<body>
<a href="#content" class="skip-link">
Skip to main content
</a>

<header>…</header>

<!-- The skip link jumps to here -->
<main id="content"></main>
</body>
.skip-link {
position: absolute;
top: -3em;
background: #fff;
}

.skip-link:focus {
top: 0;
}

Skip links let keyboard users bypass content repeated throughout multiple pages, such as header navigation.

Skip links are especially useful for people who navigate with the aid of assistive technology such as switch control, voice command, or mouth sticks/head wands, where the act of moving through repetitive links can be laborious.


Size and proximity

Size

Interactive elements, like links, should provide an area large enough that it is easy to activate them. This helps a variety of people, including those with motor control issues and those using imprecise inputs such as a touchscreen. A minimum size of 44ร—44 CSS pixels is recommended.

Text-only links in prose content are exempt from this requirement, but it's still a good idea to make sure enough text is hyperlinked to be easily activated.

Proximity

Interactive elements, like links, placed in close visual proximity should have space separating them. Spacing helps people with motor control issues, who may otherwise accidentally activate the wrong interactive content.

Spacing may be created using CSS properties like margin.

<b> Bring Attention To

test

<strong> Strong Importance

test

<em> Emphasis

test

<i> Idiomatic Text

test

<u> Unarticulated Annotation (Underline)

test

<ul> Unordered List

test

<ol> Ordered List

test

<li> List Item

test

<images> Image Embed

x

<iframe> Inline Frame

x

<x> x

x

<x> x

x

<x> x

x

<x> x

x

<x> x

x

<x> x

x

<x> x

x

Congratulations! You have reached the end of Full Stack Web Development masterclass. Visit ablazelilith.com to discover more courses.