<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Hoag</title>
    <description>The latest articles on Forem by Hoag (@h0ag).</description>
    <link>https://forem.com/h0ag</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3081522%2Fc976b6d5-6a2f-4c49-88c8-0fb5fbe7ff58.jpg</url>
      <title>Forem: Hoag</title>
      <link>https://forem.com/h0ag</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/h0ag"/>
    <language>en</language>
    <item>
      <title>Mastering HTML -- The Complete Guide</title>
      <dc:creator>Hoag</dc:creator>
      <pubDate>Tue, 21 Oct 2025 10:12:02 +0000</pubDate>
      <link>https://forem.com/h0ag/mastering-html-the-complete-guide-1578</link>
      <guid>https://forem.com/h0ag/mastering-html-the-complete-guide-1578</guid>
      <description>&lt;p&gt;HTML (HyperText Markup Language) is the standard language used to structure content on the web. This guide covers every fundamental aspect of HTML, from the basic syntax to more advanced features such as forms and semantic elements introduced in HTML5.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Introduction to HTML
&lt;/h2&gt;

&lt;p&gt;HTML is a &lt;a href="https://en.wikipedia.org/wiki/Markup_language" rel="noopener noreferrer"&gt;markup language&lt;/a&gt; used to define documents for the web. It&lt;br&gt;
relies on &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements" rel="noopener noreferrer"&gt;&lt;em&gt;tags&lt;/em&gt;&lt;/a&gt; (or &lt;em&gt;elements&lt;/em&gt;) to describe both the structure and the meaning of content.&lt;/p&gt;

&lt;p&gt;A basic HTML file contains the following structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"utf-8"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Example HTML File&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Example HTML File&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;This is an example of an &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://www.w3.org/html/"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;HTML&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt; document.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;Readable text content&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;Formatting elements
      &lt;span class="nt"&gt;&amp;lt;ol&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;Sections with &lt;span class="nt"&gt;&amp;lt;strong&amp;gt;&lt;/span&gt;strong emphasis&lt;span class="nt"&gt;&amp;lt;/strong&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;Heading levels&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;Numbered or unnumbered lists&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/ol&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;Hypertext links (&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"links.html"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;anchors&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;)&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;Embedded images:
      &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"images/logo.png"&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"260"&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"91"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Logo"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The browser interprets these tags to render the document visually. Each tag defines a &lt;em&gt;role&lt;/em&gt;, not a visual appearance --- styling is handled by &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS" rel="noopener noreferrer"&gt;CSS&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. The DOCTYPE Declaration
&lt;/h2&gt;

&lt;p&gt;Every HTML document begins with a &lt;strong&gt;DOCTYPE declaration&lt;/strong&gt;, which tells the browser what type of document to expect. In HTML5, the declaration is simplified:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Older versions (like HTML 4.01 or XHTML) required long DTD references. HTML5 simplified this to a single universal declaration that ensures consistent rendering across browsers.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. HTML Elements and Syntax
&lt;/h2&gt;

&lt;p&gt;An HTML element is defined by an opening and closing tag, enclosing its content:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;This is a paragraph.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Some elements are &lt;em&gt;empty&lt;/em&gt; (self-closing), meaning they contain no content:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;br&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"image.png"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Example"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Attributes add metadata to elements and appear inside the opening tag:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"contact.html"&lt;/span&gt; &lt;span class="na"&gt;target=&lt;/span&gt;&lt;span class="s"&gt;"_blank"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Contact&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  4. The &lt;code&gt;&amp;lt;html&amp;gt;&lt;/code&gt; Element
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;&amp;lt;html&amp;gt;&lt;/code&gt; tag marks the beginning and end of an HTML document. It can include the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/lang" rel="noopener noreferrer"&gt;&lt;code&gt;lang&lt;/code&gt; attribute&lt;/a&gt; to specify the language of the content, improving &lt;a href="https://developers.google.com/search/docs/fundamentals/seo-starter-guide" rel="noopener noreferrer"&gt;accessibility and SEO&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"en"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  ...
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inside the &lt;code&gt;&amp;lt;html&amp;gt;&lt;/code&gt; element, there are always two main sections: -&lt;br&gt;
&lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;: The document header containing metadata. - &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt;: The visible content.&lt;/p&gt;


&lt;h2&gt;
  
  
  5. The &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; Element
&lt;/h2&gt;

&lt;p&gt;The header provides information about the document --- metadata, title, description, and encoding.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;My Webpage&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"utf-8"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"author"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"h0ag"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"keywords"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"HTML, web, tutorial, HWIKI"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"description"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Comprehensive HTML guide from HWIKI"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Key Points
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt; is mandatory and defines the title shown in browser tabs and bookmarks.&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;&amp;lt;meta charset="utf-8"&amp;gt;&lt;/code&gt; defines the character encoding. UTF-8 supports nearly all characters.&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;&amp;lt;meta&amp;gt;&lt;/code&gt; tags describe the document for search engines and browsers.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  6. The &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; Element
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; contains the content that will be displayed on the page --- &lt;a href="https://developer.mozilla.org/en-US/docs/Learn_web_development/Getting_started/Your_first_website/Creating_the_content" rel="noopener noreferrer"&gt;text, images, links, lists, and so on&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Welcome to HWIKI&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;This is a sample paragraph.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"images/logo.png"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"HWIKI Logo"&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"260"&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"91"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Content can be textual, structural, or multimedia.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. Character Encoding and Entities
&lt;/h2&gt;

&lt;p&gt;HTML supports special characters through &lt;em&gt;entities&lt;/em&gt;, which start with &lt;code&gt;&amp;amp;&lt;/code&gt; and end with &lt;code&gt;;&lt;/code&gt;.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Entity&lt;/th&gt;
&lt;th&gt;Symbol&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;nbsp;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;/td&gt;
&lt;td&gt;non-breaking space&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;brvbar;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;¦&lt;/td&gt;
&lt;td&gt;broken bar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;plusmn;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;±&lt;/td&gt;
&lt;td&gt;plus/minus&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;pound;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;£&lt;/td&gt;
&lt;td&gt;pound sign&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;yen;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;¥&lt;/td&gt;
&lt;td&gt;yen sign&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;Oslash;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ø&lt;/td&gt;
&lt;td&gt;slashed O&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;copy;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;©&lt;/td&gt;
&lt;td&gt;copyright&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;reg;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;®&lt;/td&gt;
&lt;td&gt;registered mark&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;deg;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;°&lt;/td&gt;
&lt;td&gt;degree symbol&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;sup2;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;²&lt;/td&gt;
&lt;td&gt;superscript 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;sup3;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;³&lt;/td&gt;
&lt;td&gt;superscript 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;amp;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&amp;amp;&lt;/td&gt;
&lt;td&gt;ampersand&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;frac14;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;¼&lt;/td&gt;
&lt;td&gt;one quarter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;frac12;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;½&lt;/td&gt;
&lt;td&gt;one half&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;frac34;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;¾&lt;/td&gt;
&lt;td&gt;three quarters&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;agrave;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;à&lt;/td&gt;
&lt;td&gt;small a grave&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;Agrave;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;À&lt;/td&gt;
&lt;td&gt;capital A grave&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;oelig;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;œ&lt;/td&gt;
&lt;td&gt;oe ligature&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;eacute;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;é&lt;/td&gt;
&lt;td&gt;small e acute&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;Eacute;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;É&lt;/td&gt;
&lt;td&gt;capital E acute&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;euml;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ë&lt;/td&gt;
&lt;td&gt;e umlaut&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;icirc;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;î&lt;/td&gt;
&lt;td&gt;small i circumflex&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;Icirc;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Î&lt;/td&gt;
&lt;td&gt;capital I circumflex&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;ccedil;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ç&lt;/td&gt;
&lt;td&gt;c cedilla&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;"&lt;/td&gt;
&lt;td&gt;quotation mark&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;szlig;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ß&lt;/td&gt;
&lt;td&gt;sharp s (eszett)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;ntilde;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ñ&lt;/td&gt;
&lt;td&gt;n tilde&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;lt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;&lt;/td&gt;
&lt;td&gt;less-than sign&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&amp;gt;&lt;/td&gt;
&lt;td&gt;greater-than sign&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;micro;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;µ&lt;/td&gt;
&lt;td&gt;micro symbol&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These entities are essential when writing characters that have special meanings in HTML (like &lt;code&gt;&amp;lt;&lt;/code&gt; or &lt;code&gt;&amp;gt;&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.w3schools.com/html/html_entities.asp" rel="noopener noreferrer"&gt;HTML entities&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  8. Text Formatting and Emphasis
&lt;/h2&gt;

&lt;p&gt;HTML provides tags to emphasize or style text &lt;a href="https://web.dev/learn/html/semantic-html/" rel="noopener noreferrer"&gt;semantically&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;This is &lt;span class="nt"&gt;&amp;lt;em&amp;gt;&lt;/span&gt;important&lt;span class="nt"&gt;&amp;lt;/em&amp;gt;&lt;/span&gt; and &lt;span class="nt"&gt;&amp;lt;strong&amp;gt;&lt;/span&gt;very important&lt;span class="nt"&gt;&amp;lt;/strong&amp;gt;&lt;/span&gt;.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&amp;lt;mark&amp;gt;&lt;/span&gt;Highlighted&lt;span class="nt"&gt;&amp;lt;/mark&amp;gt;&lt;/span&gt; text example.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Equation: x&lt;span class="nt"&gt;&amp;lt;sub&amp;gt;&lt;/span&gt;1&lt;span class="nt"&gt;&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;&lt;/span&gt;2&lt;span class="nt"&gt;&amp;lt;/sup&amp;gt;&lt;/span&gt; = 1&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;  &lt;code&gt;&amp;lt;em&amp;gt;&lt;/code&gt; (emphasis): conveys importance, typically italicized.&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;&amp;lt;strong&amp;gt;&lt;/code&gt; (strong emphasis): denotes strong importance, often bold.&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;&amp;lt;mark&amp;gt;&lt;/code&gt;: highlights text.&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;&amp;lt;sub&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;sup&amp;gt;&lt;/code&gt;: subscript and superscript.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Styling-only tags like &lt;code&gt;&amp;lt;b&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;i&amp;gt;&lt;/code&gt;, and &lt;code&gt;&amp;lt;u&amp;gt;&lt;/code&gt; should be used only when semantic equivalents don't apply.&lt;/p&gt;




&lt;h2&gt;
  
  
  9. Headings and Paragraphs
&lt;/h2&gt;

&lt;p&gt;HTML defines six heading levels (&lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; to &lt;code&gt;&amp;lt;h6&amp;gt;&lt;/code&gt;) to represent document structure, not visual size.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Main Title&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Subtitle&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;Subsection&lt;span class="nt"&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Paragraphs are written with &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; and can include short quotes (&lt;code&gt;&amp;lt;q&amp;gt;&lt;/code&gt;) or block quotes (&lt;code&gt;&amp;lt;blockquote&amp;gt;&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;blockquote&lt;/span&gt; &lt;span class="na"&gt;cite=&lt;/span&gt;&lt;span class="s"&gt;"https://hwiki.xyz/html"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
HTML5 is the standard markup language for web documents.
&lt;span class="nt"&gt;&amp;lt;/blockquote&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  10. Lists
&lt;/h2&gt;

&lt;p&gt;HTML supports three list types:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Unordered list (bulleted)&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;HTML&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;CSS&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;JavaScript&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Ordered list (numbered)&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;ol&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;Introduction&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;Content&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;Conclusion&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/ol&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Description list&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;dl&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;dt&amp;gt;&lt;/span&gt;HTML&lt;span class="nt"&gt;&amp;lt;/dt&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;dd&amp;gt;&lt;/span&gt;A markup language for the web.&lt;span class="nt"&gt;&amp;lt;/dd&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/dl&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lists can be nested inside one another to represent hierarchical structures.&lt;/p&gt;




&lt;h2&gt;
  
  
  11. Tables
&lt;/h2&gt;

&lt;p&gt;Tables present data in rows and columns using the following structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;table&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;caption&amp;gt;&lt;/span&gt;Lovers&lt;span class="nt"&gt;&amp;lt;/caption&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;thead&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;&lt;/span&gt;Name&lt;span class="nt"&gt;&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;&lt;/span&gt;Email&lt;span class="nt"&gt;&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/thead&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;tbody&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;/span&gt;h0ag&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;/span&gt;h0ag@hwiki.xyz&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;/span&gt;Emmal0y&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;/span&gt;-&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/tbody&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;tfoot&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;tr&amp;gt;&amp;lt;td&lt;/span&gt; &lt;span class="na"&gt;colspan=&lt;/span&gt;&lt;span class="s"&gt;"2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;End of Table&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/tfoot&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/table&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use &lt;code&gt;colspan&lt;/code&gt; and &lt;code&gt;rowspan&lt;/code&gt; to merge cells horizontally or vertically.&lt;br&gt;
Tables should never be used for page layout --- CSS handles that purpose.&lt;/p&gt;


&lt;h2&gt;
  
  
  12. Hyperlinks
&lt;/h2&gt;

&lt;p&gt;Links are created with the &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; tag:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://hwiki.xyz/"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Visit HWIKI&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"about.html"&lt;/span&gt; &lt;span class="na"&gt;target=&lt;/span&gt;&lt;span class="s"&gt;"_blank"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Open About Page&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Absolute URLs&lt;/strong&gt;: full path to a resource (including protocol and domain).&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Relative URLs&lt;/strong&gt;: local paths within your project directory.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Internal anchors can also link to specific parts of a page:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#section1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Go to Section 1&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
...
&lt;span class="nt"&gt;&amp;lt;h2&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"section1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Section 1&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  13. Images
&lt;/h2&gt;

&lt;p&gt;Images are inserted using the &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; tag:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"images/photo.jpg"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"A landscape photo"&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"300"&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"200"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;alt&lt;/code&gt; attribute is mandatory and describes the image content, useful for screen readers and when the image fails to load.&lt;/p&gt;




&lt;h2&gt;
  
  
  14. Forms
&lt;/h2&gt;

&lt;p&gt;Forms allow user input and interaction. A basic example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;form&amp;gt;&lt;/span&gt;
  Name: &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"name"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&amp;lt;br&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  Password: &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"password"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"password"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&amp;lt;br&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"submit"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Submit"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input#input_types" rel="noopener noreferrer"&gt;All input types&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Common Input Types
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;text&lt;/code&gt;, &lt;code&gt;password&lt;/code&gt;, &lt;code&gt;number&lt;/code&gt;, &lt;code&gt;date&lt;/code&gt;, &lt;code&gt;color&lt;/code&gt;, &lt;code&gt;range&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;checkbox&lt;/code&gt;, &lt;code&gt;radio&lt;/code&gt;, &lt;code&gt;select&lt;/code&gt;, &lt;code&gt;textarea&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example of a dropdown list:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;select&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"language"&lt;/span&gt; &lt;span class="na"&gt;size=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;HTML&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;CSS&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt; &lt;span class="na"&gt;selected&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;JavaScript&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/select&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use &lt;code&gt;&amp;lt;fieldset&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;legend&amp;gt;&lt;/code&gt; to group form sections, and &lt;code&gt;&amp;lt;label for="id"&amp;gt;&lt;/code&gt; to connect text to input fields.&lt;/p&gt;




&lt;h2&gt;
  
  
  15. Semantic Page Structure (HTML5)
&lt;/h2&gt;

&lt;p&gt;HTML5 introduced semantic elements that describe the role of different page sections:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;header&amp;gt;&lt;/span&gt;Header content&lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;nav&amp;gt;&lt;/span&gt;Navigation links&lt;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;main&amp;gt;&lt;/span&gt;Main article content&lt;span class="nt"&gt;&amp;lt;/main&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;aside&amp;gt;&lt;/span&gt;Sidebar or related information&lt;span class="nt"&gt;&amp;lt;/aside&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;footer&amp;gt;&lt;/span&gt;Footer content&lt;span class="nt"&gt;&amp;lt;/footer&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These replace older &lt;code&gt;&amp;lt;div id="header"&amp;gt;&lt;/code&gt; (HTML4) structures, making documents more meaningful to search engines and assistive technologies.&lt;/p&gt;




&lt;h2&gt;
  
  
  16. References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.w3.org/TR/html5/" rel="noopener noreferrer"&gt;W3C HTML5 Specification&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.w3schools.com/html/" rel="noopener noreferrer"&gt;W3Schools HTML Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML" rel="noopener noreferrer"&gt;MDN Web Docs - HTML&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Made by &lt;a href="https://github.com/h0ag" rel="noopener noreferrer"&gt;&lt;strong&gt;h0ag&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>html</category>
      <category>web</category>
      <category>webdev</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Understanding Wi-Fi (Wireless Fidelity)</title>
      <dc:creator>Hoag</dc:creator>
      <pubDate>Sat, 03 May 2025 11:20:55 +0000</pubDate>
      <link>https://forem.com/h0ag/understanding-wi-fi-wireless-fidelity-4pei</link>
      <guid>https://forem.com/h0ag/understanding-wi-fi-wireless-fidelity-4pei</guid>
      <description>&lt;p&gt;In the wired world, we're talking about &lt;a href="https://en.wikipedia.org/wiki/IEEE_802.3" rel="noopener noreferrer"&gt;IEEE 802.3&lt;/a&gt;. But the moment we cut the cable, we move into &lt;a href="https://en.wikipedia.org/wiki/IEEE_802.11" rel="noopener noreferrer"&gt;IEEE 802.11&lt;/a&gt; — the world of wireless communication: Wi-Fi, Bluetooth, and friends.&lt;/p&gt;

&lt;p&gt;Wi-Fi uses &lt;strong&gt;radio frequencies (RF)&lt;/strong&gt; to send signals through the air. But for two devices to talk, they need to agree on a few things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Same frequency&lt;/li&gt;
&lt;li&gt;Same communication channel&lt;/li&gt;
&lt;li&gt;Same protocol&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s the deal. And also: &lt;strong&gt;they can’t talk at the same time&lt;/strong&gt;. At least not with the basic setup. That’s what we call &lt;a href="https://www.cbtnuggets.com/blog/communication/half-duplex-vs-full-duplex" rel="noopener noreferrer"&gt;&lt;strong&gt;half-duplex&lt;/strong&gt;&lt;/a&gt; communication — each host takes turns. To solve that, we use &lt;a href="https://www.cbtnuggets.com/blog/communication/half-duplex-vs-full-duplex" rel="noopener noreferrer"&gt;&lt;strong&gt;full-duplex&lt;/strong&gt;&lt;/a&gt;, which relies on separate frequencies (or channels) for the upstream and downstream traffic.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo0x8gmirfoocgg9uvh3n.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo0x8gmirfoocgg9uvh3n.webp" alt="half vs full duplex diagram" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  WLAN Topologies
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Basic Service Set (BSS)
&lt;/h2&gt;

&lt;p&gt;In a BSS, all communication happens &lt;strong&gt;through the Access Point (AP)&lt;/strong&gt;. Devices can't talk to each other directly.&lt;/p&gt;

&lt;p&gt;Terminology:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AP&lt;/strong&gt;: Access Point&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SSID&lt;/strong&gt;: The public name of the network&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;BSSID&lt;/strong&gt;: The MAC address of the AP&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;BSS&lt;/strong&gt;: The actual Wi-Fi coverage area of one AP&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq8yzl8hu4eo15i1d8gst.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq8yzl8hu4eo15i1d8gst.webp" alt="bss schema" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Distribution System (DS)
&lt;/h3&gt;

&lt;p&gt;Want to segment multiple wireless networks with &lt;strong&gt;one AP&lt;/strong&gt;? Use &lt;strong&gt;Virtual LANs (VLANs)&lt;/strong&gt; with multiple BSSIDs. Each BSSID maps to a specific &lt;a href="https://hwiki.xyz/blog/understand-vlans" rel="noopener noreferrer"&gt;VLAN&lt;/a&gt;. This setup is compliant with &lt;a href="https://en.wikipedia.org/wiki/IEEE_802.1Q" rel="noopener noreferrer"&gt;&lt;strong&gt;IEEE 802.1Q&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcoq8exk8ivoi4mjx88jj.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcoq8exk8ivoi4mjx88jj.webp" alt="ds schema" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Extended Service Set (ESS)
&lt;/h3&gt;

&lt;p&gt;When multiple APs are deployed to cover a large area (like a building), each AP creates its own BSS, but all of them together form an &lt;strong&gt;ESS&lt;/strong&gt;. Channels must be carefully chosen to avoid interference.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa0atab9jkzubi4sdbzw0.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa0atab9jkzubi4sdbzw0.webp" alt="ess schema" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Ad-Hoc Networks (IBSS)
&lt;/h3&gt;

&lt;p&gt;No AP here. Just two devices directly talking to each other. This is called an &lt;strong&gt;Independent Basic Service Set (IBSS)&lt;/strong&gt; — like Bluetooth. Both devices must use the &lt;strong&gt;same frequency&lt;/strong&gt;, &lt;strong&gt;channel&lt;/strong&gt;, and &lt;strong&gt;parameters&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wi-Fi Repeater Topology
&lt;/h3&gt;

&lt;p&gt;A repeater extends the coverage of a BSS by retransmitting the signal. It should be placed right at the &lt;strong&gt;edge of the AP’s BSS&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Workgroup Bridge (WGB)
&lt;/h3&gt;

&lt;p&gt;A WGB allows a device that only supports wired Ethernet to connect to a wireless network through a bridge (e.g., connect a wired PC to Wi-Fi via a smartphone or dedicated bridge device).&lt;/p&gt;




&lt;h2&gt;
  
  
  How Wi-Fi Uses Radio Waves
&lt;/h2&gt;

&lt;p&gt;Wi-Fi transmits data using &lt;strong&gt;electromagnetic waves&lt;/strong&gt;. Each wave consists of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One &lt;strong&gt;electric&lt;/strong&gt; component&lt;/li&gt;
&lt;li&gt;One &lt;strong&gt;magnetic&lt;/strong&gt; component, perpendicular to the electric one&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These waves propagate &lt;strong&gt;spherically&lt;/strong&gt; in all directions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F49du1e83wvniro5e4tmc.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F49du1e83wvniro5e4tmc.webp" alt="em wave schema" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;cycle&lt;/strong&gt; = one unit of data.&lt;br&gt;
If we see 3 cycles in 1 second, the frequency is 3 Hz. In Wi-Fi, frequencies are way higher: up to 2.4 GHz or 5 GHz.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;2.4 GHz&lt;/strong&gt; = 2,400,000,000 cycles per second&lt;/li&gt;
&lt;li&gt;Each cycle carries 1 byte (in a simplified view)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F06ka24wdxkg31v3f7q8t.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F06ka24wdxkg31v3f7q8t.webp" alt="frequency cycle schema" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Frequency Bands
&lt;/h2&gt;

&lt;h3&gt;
  
  
  2.4 GHz Band
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Frequency range: &lt;strong&gt;2.400 GHz&lt;/strong&gt; to &lt;strong&gt;2.486 GHz&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Channels are &lt;strong&gt;22 MHz&lt;/strong&gt; wide and overlap, so only &lt;strong&gt;channels 1, 6, and 11&lt;/strong&gt; are usable without interference. Others can be used for other protocols.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbn5y4rewnqo47pana3lb.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbn5y4rewnqo47pana3lb.webp" alt="2.4 GHz channels" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5 GHz Band
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Frequency range: 5.15 GHz to 5.825 GHz&lt;/li&gt;
&lt;li&gt;Channels do &lt;strong&gt;not&lt;/strong&gt; overlap → All can be used without interference&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr746vcssdtylebopkjwk.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr746vcssdtylebopkjwk.webp" alt="5 GHz channels" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Wi-Fi Standards (Amendments)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Standard&lt;/th&gt;
&lt;th&gt;2.4 GHz&lt;/th&gt;
&lt;th&gt;5 GHz&lt;/th&gt;
&lt;th&gt;Max Speed&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;802.11&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;2 Mbps&lt;/td&gt;
&lt;td&gt;First version, 1997&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;802.11b&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;11 Mbps&lt;/td&gt;
&lt;td&gt;1999&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;802.11g&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;54 Mbps&lt;/td&gt;
&lt;td&gt;2003&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;802.11a&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;54 Mbps&lt;/td&gt;
&lt;td&gt;1999 (5 GHz version of 'g')&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;802.11n&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;600 Mbps&lt;/td&gt;
&lt;td&gt;2009, High Throughput&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;802.11ac&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;6.93 Gbps&lt;/td&gt;
&lt;td&gt;2015, Very High Throughput&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;802.11ax&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;~4x 802.11ac&lt;/td&gt;
&lt;td&gt;2019, High Efficiency (Wi-Fi 6)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Wi-Fi Security
&lt;/h2&gt;

&lt;p&gt;Wi-Fi broadcasts data &lt;strong&gt;over the air&lt;/strong&gt; — so anyone nearby can listen if it's not protected. That’s why security is critical.&lt;/p&gt;

&lt;p&gt;The IEEE 802.11 standard defines &lt;strong&gt;three pillars&lt;/strong&gt; of security:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Confidentiality&lt;/strong&gt;: prevent others from reading your data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Authentication&lt;/strong&gt;: confirm who is allowed to connect&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integrity&lt;/strong&gt;: ensure data wasn’t modified in transit&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Authentication
&lt;/h3&gt;

&lt;p&gt;Access Points validate whether the device trying to connect is legit or not.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Client:&lt;/strong&gt; Who are you ?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Server:&lt;/strong&gt; I am &amp;lt; BSSID &amp;gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Client:&lt;/strong&gt; Here are my credentials.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Message Confidentiality
&lt;/h3&gt;

&lt;p&gt;Modern Wi-Fi uses encryption protocols (like &lt;a href="https://en.wikipedia.org/wiki/Wi-Fi_Protected_Access" rel="noopener noreferrer"&gt;WPA2/WPA3&lt;/a&gt;) to ensure all messages are encrypted.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv3ltbf076o0ff5tdcfib.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv3ltbf076o0ff5tdcfib.webp" alt="confidentiality schema" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Message Integrity Check (MIC)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;A hash (MIC (Message Integrity Check)) is calculated on the original message&lt;/li&gt;
&lt;li&gt;The message is encrypted and sent&lt;/li&gt;
&lt;li&gt;The receiver decrypts it, recalculates the MIC&lt;/li&gt;
&lt;li&gt;If the MICs match → the message is valid&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If they don’t? It’s rejected. That’s how tampering is detected.&lt;/p&gt;




&lt;p&gt;Here you go!&lt;/p&gt;

</description>
      <category>network</category>
      <category>wifi</category>
      <category>hwiki</category>
    </item>
    <item>
      <title>Understand Spanning Tree Protocol (STP)</title>
      <dc:creator>Hoag</dc:creator>
      <pubDate>Sat, 26 Apr 2025 22:04:53 +0000</pubDate>
      <link>https://forem.com/h0ag/understand-spanning-tree-protocol-stp-23b8</link>
      <guid>https://forem.com/h0ag/understand-spanning-tree-protocol-stp-23b8</guid>
      <description>&lt;p&gt;So,&lt;br&gt;
imagine you've got lots of switches connected together in a network.&lt;br&gt;
At some point, you want to make everything more reliable, so you create backup links between them. You say "if one cable fails, another one takes over."&lt;br&gt;
That's great in theory... except that in reality, as soon as you form a loop in the network, everything cracks up. Packets go round and round, the load explodes, and in the end, your network falls to the ground.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Welcome to the problem of network loops.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And so, Spanning Tree Protocol (STP) was born.&lt;br&gt;
The goal?&lt;br&gt;
Intelligently disable some ports to break loops, while leaving everyone connected in the end.&lt;br&gt;
Originally, STP was a proprietary protocol developed by &lt;a href="https://www.cisco.com" rel="noopener noreferrer"&gt;Cisco&lt;/a&gt;, but it later became standardized under &lt;a href="https://en.wikipedia.org/wiki/IEEE_802.1D" rel="noopener noreferrer"&gt;IEEE 802.1D&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  Spanning-tree-free topology problems :
&lt;/h2&gt;

&lt;p&gt;Without spanning tree, a network can crash fast:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Broadcast storm:&lt;/strong&gt; packets get duplicated exponentially every time they pass a switch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Double frame:&lt;/strong&gt; the same frame is received multiple times by the destination, causing network card saturation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MAC table instability:&lt;/strong&gt; the same host appears under different MAC addresses, often detected as an attack.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  How does STP solve the problem?
&lt;/h2&gt;

&lt;p&gt;STP begins by choosing &lt;strong&gt;a boss&lt;/strong&gt;, a point of reference for the entire network:&lt;br&gt;
&lt;strong&gt;the Root Bridge.&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Electing the Root Bridge
&lt;/h3&gt;

&lt;p&gt;Each switch balances messages called &lt;strong&gt;BPDUs&lt;/strong&gt; (Bridge Protocol Data Units) to say :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Hey! That's my ID."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each switch has a &lt;strong&gt;Bridge ID&lt;/strong&gt;, which is just a mix between a &lt;strong&gt;priority&lt;/strong&gt; and its &lt;strong&gt;MAC address&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Priority:&lt;/strong&gt; this is a number (32768 by default) (2 bytes).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MAC address:&lt;/strong&gt; this... is the MAC address. (6 bytes).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whoever has &lt;strong&gt;the smallest ID&lt;/strong&gt; wins and becomes Root Bridge.&lt;br&gt;
(If everyone has the same priority, the smallest MAC wins).&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Switch&lt;/th&gt;
&lt;th&gt;Priority&lt;/th&gt;
&lt;th&gt;MAC Address&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;SW0&lt;/td&gt;
&lt;td&gt;32768&lt;/td&gt;
&lt;td&gt;AA:AA:AA:AA:AA:10&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SW0&lt;/td&gt;
&lt;td&gt;32768&lt;/td&gt;
&lt;td&gt;AA:AA:AA:AA:AA:09&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SW1&lt;/td&gt;
&lt;td&gt;28672&lt;/td&gt;
&lt;td&gt;AA:AA:AA:AA:AA:08&lt;/td&gt;
&lt;td&gt;win (lowest priority)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SW1&lt;/td&gt;
&lt;td&gt;32768&lt;/td&gt;
&lt;td&gt;AA:AA:AA:AA:AA:07&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SW2&lt;/td&gt;
&lt;td&gt;32768&lt;/td&gt;
&lt;td&gt;AA:AA:AA:AA:AA:06&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SW2&lt;/td&gt;
&lt;td&gt;32768&lt;/td&gt;
&lt;td&gt;AA:AA:AA:AA:AA:05&lt;/td&gt;
&lt;td&gt;Lowest MAC&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Finding the fastest way to the Root
&lt;/h3&gt;

&lt;p&gt;Once the boss is elected, all the other switches ask themselves:&lt;br&gt;
&lt;strong&gt;"Which way do I go to get to the Root the fastest?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Each link has a cost depending on its speed:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Bandwidth&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;10 Mbps&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;100 Mbps&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1 Gbps&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;gt;= 10Gbps&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;The faster, the cheaper.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Each switch chooses the path with &lt;strong&gt;the lowest cost&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Choosing which ports to shut down
&lt;/h3&gt;

&lt;p&gt;Once everyone knows where to go, STP will classify the ports:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Port&lt;/th&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Root Port (RP)&lt;/td&gt;
&lt;td&gt;The one that leads to the Root Bridge&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Designated Port (DP)&lt;/td&gt;
&lt;td&gt;The one who stays active on a link to serve others&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Blocked Port (BP)&lt;/td&gt;
&lt;td&gt;The one that is deactivated to avoid the loop&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;On each link between two switches:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Only one switch has its port active (Designated).&lt;/li&gt;
&lt;li&gt;The other blocks its port to avoid a loop.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frlq3li0jo400ckh1af3i.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frlq3li0jo400ckh1af3i.webp" alt="Spanning-tree-protocol (STP) explained by HWIKI" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  But, Spanning-tree is slow
&lt;/h2&gt;

&lt;p&gt;Each time a port needs to change state, STP goes through &lt;strong&gt;several phases&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Blocking&lt;/strong&gt; → "I'm not doing anything, I'm listening."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Listening&lt;/strong&gt; → "Okay, I'm starting to look at the BPDUs."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Learning&lt;/strong&gt; → "I'm starting to learn who's who (MAC addresses)."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Forwarding&lt;/strong&gt; → "Come on, I'm forwarding traffic."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each transition takes &lt;strong&gt;15 seconds&lt;/strong&gt; (&lt;code&gt;forward delay&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;So, &lt;strong&gt;all in all&lt;/strong&gt;, a &lt;strong&gt;minimum of 30 seconds&lt;/strong&gt; for a link to become active.&lt;br&gt;
That's a long time. Very long.&lt;/p&gt;

&lt;h2&gt;
  
  
  RSTP's arrival
&lt;/h2&gt;

&lt;p&gt;Faced with this unbearable slowness, the guys thought:&lt;br&gt;
"What if we made it converge in a few seconds instead of waiting two hours?"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rapid Spanning Tree Protocol&lt;/strong&gt; (RSTP) arrives and does it all better:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No more lazy “Listening” and “Learning” steps.&lt;/li&gt;
&lt;li&gt;A switch can immediately negotiate with its neighbor to switch to Forwarding.&lt;/li&gt;
&lt;li&gt;Each switch actively sends BPDUs, not just the Root Bridge.&lt;/li&gt;
&lt;li&gt;Everything converges in a few seconds instead of 30-50.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Spanning Tree is really the basis for understanding how a network &lt;strong&gt;prevents itself from self-destructing in a loop&lt;/strong&gt;.&lt;/p&gt;




&lt;p&gt;Made by &lt;strong&gt;&lt;a href="https://github.com/h0ag" rel="noopener noreferrer"&gt;h0ag&lt;/a&gt;&lt;/strong&gt; for &lt;strong&gt;&lt;a href="https://hwiki.xyz" rel="noopener noreferrer"&gt;hwiki&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>network</category>
      <category>cisco</category>
      <category>hwiki</category>
    </item>
    <item>
      <title>QUIC: The Future Network Protocol, Already Here Today</title>
      <dc:creator>Hoag</dc:creator>
      <pubDate>Thu, 24 Apr 2025 20:09:44 +0000</pubDate>
      <link>https://forem.com/h0ag/quic-the-future-network-protocol-already-here-today-1hh</link>
      <guid>https://forem.com/h0ag/quic-the-future-network-protocol-already-here-today-1hh</guid>
      <description>&lt;p&gt;&lt;strong&gt;QUIC&lt;/strong&gt; (Quick UDP Internet Connections) is a modern network protocol that redefines how data is transmitted over the internet. It is designed to overcome the limitations of &lt;strong&gt;TCP&lt;/strong&gt; and &lt;strong&gt;UDP&lt;/strong&gt;, while integrating security and multiplexing features that were previously handled separately by protocols like TCP and TLS. In this article, we’ll take a deep dive into how QUIC works, its integration with &lt;strong&gt;HTTP/3&lt;/strong&gt;, its place in the OSI model, and how it’s already deployed on sites like &lt;strong&gt;hwiki.xyz&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is QUIC?
&lt;/h2&gt;

&lt;p&gt;QUIC is a transport protocol developed by &lt;a href="https://google.com" rel="noopener noreferrer"&gt;&lt;strong&gt;Google&lt;/strong&gt;&lt;/a&gt; to improve the performance of web applications. It relies on &lt;a href="https://en.wikipedia.org/wiki/User_Datagram_Protocol" rel="noopener noreferrer"&gt;&lt;strong&gt;UDP (User Datagram Protocol)&lt;/strong&gt;&lt;/a&gt; instead of &lt;a href="https://en.wikipedia.org/wiki/Transmission_Control_Protocol" rel="noopener noreferrer"&gt;&lt;strong&gt;TCP&lt;/strong&gt;&lt;/a&gt;, allowing it to reduce latency and optimize data flow management. QUIC was designed to address the classic problems of TCP, such as the &lt;strong&gt;3-way handshake&lt;/strong&gt; latency and &lt;strong&gt;head-of-line blocking&lt;/strong&gt;, where the loss of a single packet blocks the entire connection.&lt;/p&gt;

&lt;h3&gt;
  
  
  How QUIC Works
&lt;/h3&gt;

&lt;p&gt;QUIC operates with several key features that set it apart:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No 3-way handshake: QUIC reduces the connection establishment process to 1 or 0 RTT (Round Trip Time), unlike TCP which requires 3 RTT to establish a connection.&lt;/li&gt;
&lt;li&gt;Efficient multiplexing: Unlike TCP, QUIC allows multiple independent data streams to be sent over the same connection. The loss of one packet does not block the others.&lt;/li&gt;
&lt;li&gt;Native encryption: QUIC integrates TLS 1.3 directly into the protocol, ensuring that all communications are encrypted from the start of the connection.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9gahkz7e19d2akzzfuhj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9gahkz7e19d2akzzfuhj.png" alt="QUIC explained by hwiki" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  QUIC and HTTP/3
&lt;/h3&gt;

&lt;p&gt;The &lt;strong&gt;HTTP/3&lt;/strong&gt; protocol is entirely dependent on QUIC for data transport, providing major improvements over previous versions of HTTP. Unlike HTTP/2, which relies on &lt;strong&gt;TCP&lt;/strong&gt;, HTTP/3 uses &lt;strong&gt;QUIC&lt;/strong&gt; to establish connections faster, while improving the handling of simultaneous connections and security.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Adopting HTTP/3 does not mean your site will be "quic://" instead of "https://". The "https://" URL remains the same in browsers, but under the hood, the connection is made using HTTP/3, which relies on QUIC as the transport protocol.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  QUIC in the OSI Model
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://en.wikipedia.org/wiki/OSI_model" rel="noopener noreferrer"&gt;&lt;strong&gt;OSI model&lt;/strong&gt;&lt;/a&gt; is a layered framework used to describe how networks function. It consists of seven layers, from &lt;strong&gt;Layer 1&lt;/strong&gt; (Physical) to &lt;strong&gt;Layer 7&lt;/strong&gt; (Application). QUIC primarily fits into &lt;strong&gt;Layer 4&lt;/strong&gt; (Transport), but its functionality extends beyond this traditional layer. Here’s how QUIC fits into the OSI model:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Element&lt;/th&gt;
&lt;th&gt;OSI Layer&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;QUIC (transport)&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;QUIC (integrated encoding, TLS handshake)&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;QUIC (multiplexing / sessions)&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Deploying QUIC: hwiki.xyz and Other Sites
&lt;/h2&gt;

&lt;p&gt;Today, QUIC and HTTP/3 are already used by many websites, including giants like &lt;strong&gt;Google&lt;/strong&gt;, &lt;strong&gt;Facebook&lt;/strong&gt;, &lt;strong&gt;YouTube&lt;/strong&gt;, and many others. On &lt;a href="https://hwiki.xyz" rel="noopener noreferrer"&gt;&lt;strong&gt;hwiki.xyz&lt;/strong&gt;&lt;/a&gt;, for example, connections between the client and server pass through &lt;strong&gt;Cloudflare&lt;/strong&gt;, which supports &lt;strong&gt;HTTP/3&lt;/strong&gt; and &lt;strong&gt;QUIC&lt;/strong&gt;. This means &lt;strong&gt;hwiki.xyz&lt;/strong&gt; is already benefiting from QUIC, with &lt;strong&gt;lower latency&lt;/strong&gt; and &lt;strong&gt;secure-by-default&lt;/strong&gt; connections.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; If you’re using Cloudflare for your website, it’s likely that you already benefit from HTTP/3 without needing additional configuration.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Testing QUIC on Your Website
&lt;/h2&gt;

&lt;p&gt;If you want to check if your site is using HTTP/3 and QUIC, you can use tools like your browser DevTools (F12) or curl with the &lt;code&gt;--http3&lt;/code&gt; option:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-I&lt;/span&gt; &lt;span class="nt"&gt;--http3&lt;/span&gt; https://your-site.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will let you see if HTTP/3 is being used for the connection.&lt;/p&gt;

&lt;h2&gt;
  
  
  QUIC’s Pros and Cons
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reduced Latency:&lt;/strong&gt; Faster connections thanks to 1 or 0 RTT.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Improved Multiplexing:&lt;/strong&gt; Multiple independent data streams without interference.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Secure:&lt;/strong&gt; Built-in encryption with TLS 1.3, no plaintext data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Connection Migration:&lt;/strong&gt; Allows maintaining a connection even when the client changes its IP address.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Limited compatibility with some firewalls:&lt;/strong&gt; QUIC uses UDP, which can be filtered by firewalls.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Complex management:&lt;/strong&gt; Diagnosing QUIC connections requires special tools and packet decryption.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;QUIC is a revolutionary change in how data is transported on the Internet. With its ability to reduce latency, its built-in encryption, and its handling of multiplexed connections, it paves the way for a &lt;strong&gt;faster and more secure web&lt;/strong&gt;. The adoption of &lt;strong&gt;HTTP/3&lt;/strong&gt;, which relies entirely on QUIC, is already well underway, and sites like &lt;strong&gt;hwiki.xyz&lt;/strong&gt; are reaping its benefits.&lt;/p&gt;

&lt;h2&gt;
  
  
  Looking Ahead
&lt;/h2&gt;

&lt;p&gt;As HTTP/3 adoption continues to grow, QUIC will become an increasingly essential part of the web. Its integration into browsers, servers, and cloud infrastructures like &lt;strong&gt;Cloudflare&lt;/strong&gt; makes it a major player for the future.&lt;/p&gt;




&lt;p&gt;Made by &lt;strong&gt;&lt;a href="https://github.com/h0ag" rel="noopener noreferrer"&gt;h0ag&lt;/a&gt;&lt;/strong&gt; for &lt;strong&gt;&lt;a href="https://hwiki.xyz" rel="noopener noreferrer"&gt;hwiki.xyz&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>network</category>
      <category>web</category>
      <category>hwiki</category>
    </item>
  </channel>
</rss>
