a global computer network providing a variety of information and communication facilities,
consisting of interconnected networks using standardized communication protocols.
What is the Web?
The World Wide Web—usually called the Web for short—is a collection of
different websites you can access through the Internet. A website is made up of related text,
images, and other resources. Websites can resemble other forms of media—like newspaper
articles or television programs—or they can be interactive in a way that's unique to computers.
The purpose of a website can be almost anything: a news platform, an advertisement, an online
library, a forum for sharing images, or an educational site like us!
URL stands for Uniform Resource Locator. A URL is nothing more than the address of a given
unique resource on the Web. In theory, each valid URL points to a unique resource. Such
resources can be an HTML page, a CSS document, an image, etc. In practice, there are some
exceptions, the most common being a URL pointing to a resource that no longer exists or that
has moved. As the resource represented by the URL and the URL itself are handled by the Web
server, it is up to the owner of the web server to carefully manage that resource and its associated
URL.
Basics: anatomy of a URL
Here are some examples of URLs:
[Link]
[Link]
[Link]
Any of those URLs can be typed into your browser's address bar to tell it to load the associated
page (resource).
A URL is composed of different parts, some mandatory and others optional. Let's see the most
important parts using the following URL:
[Link]
key1=value1&key2=value2#SomewhereInTheDocument
http is the protocol. The first part of the URL indicates which protocol the browser must
use. A protocol is a set method for exchanging or transferring data around a computer
network. Usually for websites it is the HTTP protocol or its secured version, HTTPS. The
Web requires one of these two, but browsers also know how to handle other protocols
such as mailto: (to open a mail client) or ftp: to handle file transfer, so don't be surprised
if you see such protocols.
[Link] is the domain name. It indicates which Web server is being requested.
Alternatively, it is possible to directly use an IP address, but because it is less convenient,
it is not often used on the Web.
:80 is the port. It indicates the technical "gate" used to access the resources on the web
server. It is usually omitted if the web server uses the standard ports of the HTTP
protocol (80 for HTTP and 443 for HTTPS) to grant access to its resources. Otherwise it
is mandatory.
/path/to/[Link] is the path to the resource on the Web server. In the early days of the
Web, a path like this represented a physical file location on the Web server. Nowadays, it
is mostly an abstraction handled by Web servers without any physical reality.
?key1=value1&key2=value2 are extra parameters provided to the Web server. Those
parameters are a list of key/value pairs separated with the & symbol. The Web server can
use those parameters to do extra stuff before returning the resource. Each Web server has
its own rules regarding parameters, and the only reliable way to know if a specific Web
server is handling parameters is by asking the Web server owner.
#SomewhereInTheDocument is an anchor to another part of the resource itself. An
anchor represents a sort of "bookmark" inside the resource, giving the browser the
directions to show the content located at that "bookmarked" spot. On an HTML
document, for example, the browser will scroll to the point where the anchor is defined;
on a video or audio document, the browser will try to go to the time the anchor
represents. It is worth noting that the part after the #, also known as the fragment
identifier, is never sent to the server with the request.
HTTP is a protocol which allows the fetching of resources, such as HTML documents. It is the
foundation of any data exchange on the Web and it is a client-server protocol, which means
requests are initiated by the recipient, usually the Web browser. A complete document is
reconstructed from the different sub-documents fetched, for instance text, layout description,
images, videos, scripts, and more.
DNS Basics
DNS, or the Domain Name System, translates human readable domain names (for
example, [Link]) to machine readable IP addresses (for example,
[Link]).
All computers on the Internet, from your smart phone or laptop to the servers that serve content
for massive retail websites, find and communicate with one another by using numbers. These
numbers are known as IP addresses. When you open a web browser and go to a website, you
don't have to remember and enter a long number. Instead, you can enter a domain name like
[Link] and still end up in the right place.
A DNS service such as Amazon Route 53 is a globally distributed service that translates human
readable names like [Link] into the numeric IP addresses like [Link] that
computers use to connect to each other. The Internet’s DNS system works much like a phone
book by managing the mapping between names and numbers. DNS servers translate requests for
names into IP addresses, controlling which server an end user will reach when they type a
domain name into their web browser. These requests are called queries.
1. A user opens a web browser, enters [Link] in the address bar, and presses Enter.
2. The request for [Link] is routed to a DNS resolver, which is typically managed by
the user's Internet service provider (ISP), such as a cable Internet provider, a DSL broadband
provider, or a corporate network.
3. The DNS resolver for the ISP forwards the request for [Link] to a DNS root name
server.
4. The DNS resolver for the ISP forwards the request for [Link] again, this time to
one of the TLD name servers for .com domains. The name server for .com domains responds
to the request with the names of the four Amazon Route 53 name servers that are associated
with the [Link] domain.
5. The DNS resolver for the ISP chooses an Amazon Route 53 name server and forwards the
request for [Link] to that name server.
6. The Amazon Route 53 name server looks in the [Link] hosted zone for the
[Link] record, gets the associated value, such as the IP address for a web server,
[Link], and returns the IP address to the DNS resolver.
7. The DNS resolver for the ISP finally has the IP address that the user needs. The resolver
returns that value to the web browser. The DNS resolver also caches (stores) the IP address for
[Link] for an amount of time that you specify so that it can respond more quickly the
next time someone browses to [Link]. For more information, see time to live (TTL).
8. The web browser sends a request for [Link] to the IP address that it got from the
DNS resolver. This is where your content is, for example, a web server running on an Amazon
EC2 instance or an Amazon S3 bucket that's configured as a website endpoint.
9. The web server or other resource at [Link] returns the web page for [Link] to
the web browser, and the web browser displays the page.
How does DNS work?
The process of DNS resolution involves converting a hostname (such as
[Link]) into a computer-friendly IP address (such as
[Link]). An IP address is given to each device on the Internet, and that
address is necessary to find the appropriate Internet device - like a street
address is used to find a particular home. When a user wants to load a
webpage, a translation must occur between what a user types into their web
browser ([Link]) and the machine-friendly address necessary to
locate the [Link] webpage.
In order to understand the process behind the DNS resolution, it’s important
to learn about the different hardware components a DNS query must pass
between. For the web browser, the DNS lookup occurs “ behind the scenes”
and requires no interaction from the user’s computer apart from the initial
request.
There are 4 DNS servers involved in loading a webpage:
DNS recursor - The recursor can be thought of as a librarian who is
asked to go find a particular book somewhere in a library. The DNS
recursor is a server designed to receive queries from client machines
through applications such as web browsers. Typically the recursor is
then responsible for making additional requests in order to satisfy the
client’s DNS query.
Root nameserver - The root server is the first step in translating
(resolving) human readable host names into IP addresses. It can be
thought of like an index in a library that points to different racks of
books - typically it serves as a reference to other more specific
locations.
TLD nameserver - The top level domain server (TLD) can be thought of
as a specific rack of books in a library. This nameserver is the next step
in the search for a specific IP address, and it hosts the last portion of a
hostname (In [Link], the TLD server is “com”).
Authoritative nameserver - This final nameserver can be thought of as
a dictionary on a rack of books, in which a specific name can be
translated into its definition. The authoritative nameserver is the last
stop in the nameserver query. If the authoritative name server has
access to the requested record, it will return the IP address for the
requested hostname back to the DNS Recursor (the librarian) that
made the initial request.
HTML (HyperText Markup Language) is the most basic building block of the Web. It
defines the meaning and structure of web content. Other technologies besides HTML
are generally used to describe a web page's appearance/presentation (CSS) or
functionality/behavior (JavaScript).
"Hypertext" refers to links that connect web pages to one another, either within a single
website or between websites. Links are a fundamental aspect of the Web. By uploading
content to the Internet and linking it to pages created by other people, you become an
active participant in the World Wide Web.
HTML uses "markup" to annotate text, images, and other content for display in a Web
browser. HTML markup includes special "elements" such
as <head>, <title>, <body>, <header>, <footer>, <article>, <section>, <p>
, <div>, <span>, <img>, <aside>, <audio>, <canvas>, <datalist>, <details>
, <embed>, <nav>, <output>, <progress>, <video>, <ul>, <ol>, <li> and many
others.
An HTML element is set off from other text in a document by "tags", which consist of the
element name surrounded by "<" and ">". The name of an element inside a tag is case
insensitive. That is, it can be written in uppercase, lowercase, or a mixture. For
example, the <title> tag can be written as <Title>, <TITLE>, or in any other way.
HTML stands for Hyper Text Markup Language, which is the most widely used
language on Web to develop web pages. HTML was created by Berners-Lee in late
1991 but "HTML 2.0" was the first standard HTML specification which was published in
1995. HTML 4.01 was a major version of HTML and it was published in late 1999.
Though HTML 4.01 version is widely used but currently we are having HTML-5 version
which is an extension to HTML 4.01, and this version was published in 2012.
Why to Learn HTML?
Originally, HTML was developed with the intent of defining the structure of documents
like headings, paragraphs, lists, and so forth to facilitate the sharing of scientific
information between researchers. Now, HTML is being widely used to format web
pages with the help of different tags available in HTML language.
HTML is a MUST for students and working professionals to become a great Software
Engineer specially when they are working in Web Development Domain. I will list down
some of the key advantages of learning HTML:
Create Web site - You can create a website or customize an existing web
template if you know HTML well.
Become a web designer - If you want to start a carrer as a professional web
designer, HTML and CSS designing is a must skill.
Understand web - If you want to optimize your website, to boost its speed and
performance, it is good to know HTML to yield best results.
Learn other languages - Once you understands the basic of HTML then other
related technologies like javascript, php, or angular are become easier to
understand.
HTML stands for Hypertext Markup Language, and it is the most widely used language to write Web Pages.
Hypertext refers to the way in which Web pages (HTML documents) are linked together. Thus, the link available
on a webpage is called Hypertext.
As its name suggests, HTML is a Markup Language which means you use HTML to simply "mark-up" a text
document with tags that tell a Web browser how to structure it to display.
Originally, HTML was developed with the intent of defining the structure of documents like headings, paragraphs, lists, and
so forth to facilitate the sharing of scientific information between researchers.
Now, HTML is being widely used to format web pages with the help of different tags available in HTML language.
Basic HTML Document
In its simplest form, following is an example of an HTML document
HTML Tags
As told earlier, HTML is a markup language and makes use of various tags to format the content. These tags are enclosed
within angle braces <Tag Name>. Except few tags, most of the tags have their corresponding closing tags. For
example, <html> has its closing tag </html> and <body> tag has its closing tag </body> tag etc.
Above example of HTML document uses the following tags −
[Link] Tag & Description
1 <!DOCTYPE...>
This tag defines the document type and HTML version.
2 <html>
This tag encloses the complete HTML document and mainly comprises of document
header which is represented by <head>...</head> and document body which is
represented by <body>...</body> tags.
3 <head>
This tag represents the document's header which can keep other HTML tags like
<title>, <link> etc.
4 <title>
The <title> tag is used inside the <head> tag to mention the document title.
5 <body>
This tag represents the document's body which keeps other HTML tags like <h1>,
<div>, <p> etc.
6 <h1>
This tag represents the heading.
7 <p>
This tag represents a paragraph.
HTML Document Structure
A typical HTML document will have the following structure −
<html>
<head>
Document header related tags
</head>
<body>
Document body related tags
</body>
</html>
Heading Tags
Any document starts with a heading. You can use different sizes for your headings. HTML also has six levels of headings,
which use the elements <h1>, <h2>, <h3>, <h4>, <h5>, and <h6>. While displaying any heading, browser adds one line
before and one line after that heading.
Example
Live Demo
<!DOCTYPE html>
<html>
<head>
<title>Heading Example</title>
</head>
<body>
<h1>This is heading 1</h1>
<h2>This is heading 2</h2>
<h3>This is heading 3</h3>
<h4>This is heading 4</h4>
<h5>This is heading 5</h5>
<h6>This is heading 6</h6>
</body>
</html>
This will produce the following result −
Paragraph Tag
The <p> tag offers a way to structure your text into different paragraphs. Each paragraph of text should go in between an
opening <p> and a closing </p> tag as shown below in the example −
Example
<!DOCTYPE html>
<html>
<head>
<title>Paragraph Example</title>
</head>
<body>
<p>Here is a first paragraph of text.</p>
<p>Here is a second paragraph of text.</p>
<p>Here is a third paragraph of text.</p>
</body>
</html>
This will produce the following result −
Here is a first paragraph of text.
Here is a second paragraph of text.
Here is a third paragraph of text.
Line Break Tag
Whenever you use the <br /> element, anything following it starts from the next line. This tag is an example of
an empty element, where you do not need opening and closing tags, as there is nothing to go in between them.
The <br /> tag has a space between the characters br and the forward slash. If you omit this space, older browsers will
have trouble rendering the line break, while if you miss the forward slash character and just use <br> it is not valid in
XHTML.
Example
Live Demo
<!DOCTYPE html>
<html>
<head>
<title>Line Break Example</title>
</head>
<body>
<p>Hello<br />
You delivered your assignment ontime.<br />
Thanks<br />
Mahnaz</p>
</body>
</html>
This will produce the following result −
Centering Content
You can use <center> tag to put any content in the center of the page or any table cell.
Example
Live Demo
<!DOCTYPE html>
<html>
<head>
<title>Centring Content Example</title>
</head>
<body>
<p>This text is not in the center.</p>
<center>
<p>This text is in the center.</p>
</center>
</body>
</html>
This will produce following result −
Horizontal Lines
Horizontal lines are used to visually break-up sections of a document. The <hr> tag creates a line from the current position
in the document to the right margin and breaks the line accordingly.
For example, you may want to give a line between two paragraphs as in the given example below −
Example
Live Demo
<!DOCTYPE html>
<html>
<head>
<title>Horizontal Line Example</title>
</head>
<body>
<p>This is paragraph one and should be on top</p>
<hr />
<p>This is paragraph two and should be at bottom</p>
</body>
</html>
This will produce the following result −
Again <hr /> tag is an example of the empty element, where you do not need opening and closing tags, as there is nothing
to go in between them.
The <hr /> element has a space between the characters hr and the forward slash. If you omit this space, older browsers
will have trouble rendering the horizontal line, while if you miss the forward slash character and just use <hr> it is not valid
in XHTML
Preserve Formatting
Sometimes, you want your text to follow the exact format of how it is written in the HTML document. In these cases, you
can use the preformatted tag <pre>.
Any text between the opening <pre> tag and the closing </pre> tag will preserve the formatting of the source document.
Nonbreaking Spaces
Suppose you want to use the phrase "12 Angry Men." Here, you would not want a browser to split the "12, Angry" and
"Men" across two lines −
An example of this technique appears in the movie "12 Angry Men."
In cases, where you do not want the client browser to break text, you should use a nonbreaking space
entity instead of a normal space. For example, when coding the "12 Angry Men" in a paragraph, you should use
something similar to the following code −
Example
Live Demo
<!DOCTYPE html>
<html>
<head>
<title>Nonbreaking Spaces Example</title>
</head>
<body>
<p>An example of this technique appears in the movie "12 Angry Men."</p>
</body>
</html>
This will produce the following result −
An HTML element is defined by a starting tag. If the element contains other content, it ends with a closing tag, where the
element name is preceded by a forward slash as shown below with few tags −
Start Tag Content End Tag
<p> This is paragraph content. </p>
<h1> This is heading content. </h1>
<div> This is division content. </div>
<br />
So here <p>....</p> is an HTML element, <h1>...</h1> is another HTML element. There are some HTML elements which
don't need to be closed, such as <img.../>, <hr /> and <br /> elements. These are known as void elements.
HTML documents consists of a tree of these elements and they specify how HTML documents should be built, and what
kind of content should be placed in what part of an HTML document.
HTML Tag vs. Element
An HTML element is defined by a starting tag. If the element contains other content, it ends with a closing tag.
For example, <p> is starting tag of a paragraph and </p> is closing tag of the same paragraph but <p>This is
paragraph</p> is a paragraph element.
Nested HTML Elements
It is very much allowed to keep one HTML element inside another HTML element −
Example
Live Demo
<!DOCTYPE html>
<html>
<head>
<title>Nested Elements Example</title>
</head>
<body>
<h1>This is <i>italic</i> heading</h1>
<p>This is <u>underlined</u> paragraph</p>
</body>
</html>
This will display the following result −
We have seen few HTML tags and their usage like heading tags <h1>, <h2>, paragraph tag <p> and other tags. We used
them so far in their simplest form, but most of the HTML tags can also have attributes, which are extra bits of information.
An attribute is used to define the characteristics of an HTML element and is placed inside the element's opening tag. All
attributes are made up of two parts − a name and a value
The name is the property you want to set. For example, the paragraph <p> element in the example carries an
attribute whose name is align, which you can use to indicate the alignment of paragraph on the page.
The value is what you want the value of the property to be set and always put within quotations. The below
example shows three possible values of align attribute: left, center and right.
Attribute names and attribute values are case-insensitive. However, the World Wide Web Consortium (W3C) recommends
lowercase attributes/attribute values in their HTML 4 recommendation.
Example
Live Demo
<!DOCTYPE html>
<html>
<head>
<title>Align Attribute Example</title>
</head>
<body>
<p align = "left">This is left aligned</p>
<p align = "center">This is center aligned</p>
<p align = "right">This is right aligned</p>
</body>
</html>
This will display the following result −
Core Attributes
The four core attributes that can be used on the majority of HTML elements (although not all) are −
Id
Title
Class
Style
The Id Attribute
The id attribute of an HTML tag can be used to uniquely identify any element within an HTML page. There are two primary
reasons that you might want to use an id attribute on an element −
If an element carries an id attribute as a unique identifier, it is possible to identify just that element and its content.
If you have two elements of the same name within a Web page (or style sheet), you can use the id attribute to
distinguish between elements that have the same name.
We will discuss style sheet in separate tutorial. For now, let's use the id attribute to distinguish between two paragraph
elements as shown below.
Example
<p id = "html">This para explains what is HTML</p>
<p id = "css">This para explains what is Cascading Style Sheet</p>
The title Attribute
The title attribute gives a suggested title for the element. They syntax for the title attribute is similar as explained
for id attribute −
The behavior of this attribute will depend upon the element that carries it, although it is often displayed as a tooltip when
cursor comes over the element or while the element is loading.
Example
Live Demo
<!DOCTYPE html>
<html>
<head>
<title>The title Attribute Example</title>
</head>
<body>
<h3 title = "Hello HTML!">Titled Heading Tag Example</h3>
</body>
</html>
This will produce the following result −
Now try to bring your cursor over "Titled Heading Tag Example" and you will see that whatever title you used in your code
is coming out as a tooltip of the cursor.
The class Attribute
The class attribute is used to associate an element with a style sheet, and specifies the class of element. You will learn
more about the use of the class attribute when you will learn Cascading Style Sheet (CSS). So for now you can avoid it.
The value of the attribute may also be a space-separated list of class names. For example −
class = "className1 className2 className3"
The style Attribute
The style attribute allows you to specify Cascading Style Sheet (CSS) rules within the element.
Live Demo
<!DOCTYPE html>
<html>
<head>
<title>The style Attribute</title>
</head>
<body>
<p style = "font-family:arial; color:#FF0000;">Some text...</p>
</body>
</html>
This will produce the following result −
At this point of time, we are not learning CSS, so just let's proceed without bothering much about CSS. Here, you need to
understand what are HTML attributes and how they can be used while formatting content.
Internationalization Attributes
There are three internationalization attributes, which are available for most (although not all) XHTML elements.
dir
lang
xml:lang
The dir Attribute
The dir attribute allows you to indicate to the browser about the direction in which the text should flow. The dir attribute can
take one of two values, as you can see in the table that follows −
Value Meaning
ltr Left to right (the default value)
rtl Right to left (for languages such as Hebrew or Arabic that are read right to left)
Example
Live Demo
<!DOCTYPE html>
<html dir = "rtl">
<head>
<title>Display Directions</title>
</head>
<body>
This is how IE 5 renders right-to-left directed text.
</body>
</html>
This will produce the following result −
When dir attribute is used within the <html> tag, it determines how text will be presented within the entire document. When
used within another tag, it controls the text's direction for just the content of that tag.
The lang Attribute
The lang attribute allows you to indicate the main language used in a document, but this attribute was kept in HTML only
for backwards compatibility with earlier versions of HTML. This attribute has been replaced by the xml:lang attribute in
new XHTML documents.
The values of the lang attribute are ISO-639 standard two-character language codes. Check HTML Language Codes: ISO
639 for a complete list of language codes.
Example
Live Demo
<!DOCTYPE html>
<html lang = "en">
<head>
<title>English Language Page</title>
</head>
<body>
This page is using English Language
</body>
</html>
This will produce the following result −