MC4201 - Full Stack Web Development
Introduction to Web: Server - Client - Communication Protocol (HTTP) – Structure of
HTML Documents – Basic Markup tags – Working with Text and Images with CSS– CSS
Selectors – CSS Flexbox - JavaScript: Data Types and Variables - Functions - Events –
AJAX: GET and POST
Introduction to Web:
➢ Web consists of billions of clients and server connected through wires and wireless
networks.
➢ The web clients make requests to web server.
➢ The web server receives the request, finds the resources and return the response to the
client.
➢ When a server answers a request, it usually sends some type of content to the client.
➢ The client uses web browser to send request to the server.
➢ The server often sends response to the browser with a set of instructions written in
HTML(Hypertext Markup Language).
➢ All browsers know how to display HTML page to the client.
Server - Client
A server is simply a computer that provides the network resources and provides service to other
computers when they request it.
A client is the computer running a program that requests the service from a server. Local area
network (LAN) is based on client server network relationship.
Communication Protocol (HTTP)
The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed,
collaborative, hypermedia information systems. This is the foundation for data communication for
the World Wide Web (i.e. internet) since 1990. HTTP is a generic and stateless protocol which can
1
be used for other purposes as well using extensions of its request methods, error codes, and
headers.
Basically, HTTP is a TCP/IP based communication protocol, that is used to deliver data (HTML
files, image files, query results, etc.) on the World Wide Web. The default port is TCP 80, but
other ports can be used as well. It provides a standardized way for computers to communicate with
each other.
Basic Features
• HTTP is connectionless: The HTTP client, i.e., a browser initiates an HTTP request and
after a request is made, the client waits for the response. The server processes the request
and sends a response back after which client disconnect the connection. So client and server
knows about each other during current request and response only. Further requests are made
on new connection like client and server are new to each other.
• HTTP is media independent: It means, any type of data can be sent by HTTP as long as
both the client and the server know how to handle the data content. It is required for the
client as well as the server to specify the content type using appropriate MIME-type.
• HTTP is stateless: As mentioned above, HTTP is connectionless and it is a direct result of
HTTP being a stateless protocol. The server and client are aware of each other only during
a current request. Afterwards, both of them forget about each other. Due to this nature of
the protocol, neither the client nor the browser can retain information between different
requests across the web pages.
HTTP/1.0 uses a new connection for each request/response exchange, where as HTTP/1.1
connection may be used for one or more request/response exchanges.
Basic Architecture
The following diagram shows a very basic architecture of a web application and depicts where
HTTP sits:
2
The HTTP protocol is a request/response protocol based on the client/server based architecture
where web browsers, robots and search engines, etc. act like HTTP clients, and the Web server
acts as a server.
Client
The HTTP client sends a request to the server in the form of a request method, URI, and protocol
version, followed by a MIME-like message containing request modifiers, client information, and
possible body content over a TCP/IP connection.
Server
The HTTP server responds with a status line, including the message's protocol version and a
success or error code, followed by a MIME-like message containing server information, entity
meta information, and possible entity-body content.
HTTP - Requests
An HTTP client sends an HTTP request to a server in the form of a request message which includes
following format:
❖ A Request-line
❖ Zero or more header (General|Request|Entity) fields followed by CRLF
❖ An empty line (i.e., a line with nothing preceding the CRLF) indicating the end of the
header fields
❖ Optionally a message-body
Request-Line
The Request-Line begins with a method token, followed by the Request-URI and the protocol
version, and ending with CRLF. The elements are separated by space SP characters.
Request-Line = Method SP Request-URI SP HTTP-Version CRLF
Request Method
The request method indicates the method to be performed on the resource identified by the
given Request-URI. The method is case-sensitive and should always be mentioned in uppercase.
The following table lists all the supported methods in HTTP/1.1.
S.N. Method and Description
1 GET
The GET method is used to retrieve information from the given server using a given URI.
Requests using GET should only retrieve data and should have no other effect on the data.
2 HEAD
3
Same as GET, but it transfers the status line and the header section only.
3 POST
A POST request is used to send data to the server, for example, customer information, file
upload, etc. using HTML forms.
Examples of Request Message
GET /hello.htm HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection:
HTTP - Responses
After receiving and interpreting a request message, a server responds with an HTTP response
message:
• A Status-line
• Zero or more header (General|Response|Entity) fields followed by CRLF
• An empty line (i.e., a line with nothing preceding the CRLF)indicating the end of the header
fields
• Optionally a message-body
Message Status-Line
A Status-Line consists of the protocol version followed by a numeric status code and its associated
textual phrase. The elements are separated by space SP characters.
Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
HTTP Version
A server supporting HTTP version 1.1 will return the following version information:
HTTP-Version = HTTP/1.1
Status Code
The Status-Code element is a 3-digit integer where first digit of the Status-Code defines the class
of response and the last two digits do not have any categorization role. There are 5 values for the
first digit:
4
S.N. Code and Description
1 1xx: Informational
It means the request was received and the process is continuing.
2 2xx: Success
It means the action was successfully received, understood, and accepted.
3 3xx: Redirection
It means further action must be taken in order to complete the request.
Structure of an HTML Document
An HTML Document is mainly divided into two parts:
• HEAD: This contains the information about the HTML document. For Example, the Title of
the page, version of HTML, Meta Data, etc.
• BODY: This contains everything you want to display on the Web Page.
<html> </html> : <html> is a root element of html. It’s a biggest and main element in
complete html language, all the tags , elements and attributes enclosed in it or we can say wrap
init , which is used to structure a web page.
<head>: Head tag contains metadata, title, page CSS etc. Data stored in the <head> tag is not
displayed to the user, it is just written for reference purposes and as a watermark of the owner.
<body>: A body tag is used to enclose all the data which a web page has from texts to links. All
the content that you see rendered in the browser is contained within this element. Following tags
and elements used in the body.
5
1. <h1> ,<h2> ,<h3> to <h6>
2. <p>
3. <div> and <span>
4. <b>, <i> and<u>
5. <li>,<ul>and<ol>.
6. <img> , <audio> , <video> and<iframe>
7. <table> <th> , <thead>and<tr>.
8. <form>
9. <label> and <input> others……….
Basic Markup tags
Tag Description
<!DOCTYPE> Defines the document type
<html> Defines an HTML document
<head> Contains metadata/information for the document
<title> Defines a title for the document
<body> Defines the document's body
<h1> to <h6> Defines HTML headings
<p> Defines a paragraph
<br> Inserts a single line break
<hr> Defines a thematic change in the content
<!--...--> Defines a comment
6
Working with Text and Images with CSS
Text Color
The color property is used to set the color of the text. The color is specified by:
• a color name - like "red"
Program:
<!DOCTYPE html>
<html>
<head>
<style>
body
{
color: blue;
}
h1
{
color: green;
}
</style>
</head>
<body>
<h1>This is heading 1</h1>
<p>This is an ordinary paragraph. Notice that this text is blue. The default text color for a page is
defined in the body selector.</p>
<p>Another paragraph.</p>
</body>
</html>
7
CSS Text Alignment and Text Direction
The CSS Text Alignment/Direction Properties
Property Description
direction Specifies the text direction/writing direction
text-align Specifies the horizontal alignment of text
text-align-
Specifies how to align the last line of a text
last
unicode- Used together with the direction property to set or return whether the text should be
bidi overridden to support multiple languages in the same document
vertical-
Sets the vertical alignment of an element
align
Text Alignment
Program:
<html>
<head>
<style>
h1 {
text-align: center;
}
h2
{
text-align: left;
8
}
h3
{
text-align: right;
}
</style>
</head>
<body>
<h1>Heading 1 (center)</h1>
<h2>Heading 2 (left)</h2>
<h3>Heading 3 (right)</h3>
<p>The three headings above are aligned center, left and right.</p>
</body>
</html>
CSS Text Decoration
Program:
<html>
<head>
<style>
h1 {
text-decoration: overline;
}
h2 {
text-decoration: line-through;
}
h3 {
text-decoration: underline;
}
p.ex {
text-decoration: overline underline;
}
</style>
</head>
<body>
<h1>Overline text decoration</h1>
<h2>Line-through text decoration</h2>
<h3>Underline text decoration</h3>
<p class="ex">Overline and underline text decoration.</p>
<p><strong>Note:</strong> It is not recommended to underline text that is not a link, as this often
confuses
9
the reader.</p>
</body>
</html>
All CSS text-decoration Properties
Property Description
text-decoration Sets all the text-decoration properties in one declaration
text-decoration-color Specifies the color of the text-decoration
Specifies the kind of text decoration to be used (underline, overline,
text-decoration-line
etc.)
text-decoration-style Specifies the style of the text decoration (solid, dotted, etc.)
text-decoration-
Specifies the thickness of the text decoration line
thickness
10
The CSS Text Spacing Properties
Property Description
letter-spacing Specifies the space between characters in a text
line-height Specifies the line height
text-indent Specifies the indentation of the first line in a text-block
white-space Specifies how to handle white-space inside an element
word-spacing Specifies the space between words in a text
CSS Images
CSS plays a good role to control image display. You can set the following image properties using
CSS.
• The border property is used to set the width of an image border.
• The height property is used to set the height of an image.
• The width property is used to set the width of an image.
• The -moz-opacity property is used to set the opacity of an image.
The Image Border Property
The border property of an image is used to set the width of an image border. This property can
have a value in length or in %.
A width of zero pixels means no border.
11
<html>
<head>
</head>
<body>
<img style = "border:0px;" src = "/css/images/logo.png" />
<br />
<img style = "border:3px dashed red;" src = "/css/images/logo.png" />
</body>
</html>
The Image Height Property
The height property of an image is used to set the height of an image. This property can have a
value in length or in %. While giving value in %, it applies it in respect of the box in which an
image is available.
The Image Width Property
The width property of an image is used to set the width of an image. This property can have a value
in length or in %. While giving value in %, it applies it in respect of the box in which an image is
available
The -moz-opacity Property
The -moz-opacity property of an image is used to set the opacity of an image. This property is used
to create a transparent image in Mozilla.
CSS Selectors
CSS Selectors
CSS selectors are used to "find" (or select) the HTML elements you want to style.
We can divide CSS selectors into five categories:
• Simple selectors (select elements based on name, id, class)
• Combinator selectors (select elements based on a specific relationship between them)
• Pseudo-class selectors (select elements based on a certain state)
• Pseudo-elements selectors (select and style a part of an element)
• Attribute selectors (select elements based on an attribute or attribute value)
12
The CSS element Selector
The element selector selects HTML elements based on the element name.
<!DOCTYPE html>
<html>
<head>
<style>
p
{
text-align: center;
color: red;
}
</style>
</head>
<body>
<p>Every paragraph will be affected by the style.</p>
<p id="para1">Me too!</p>
<p>And me!</p>
</body>
</html>
The CSS id Selector
➢ The id selector uses the id attribute of an HTML element to select a specific element.
➢ The id of an element is unique within a page, so the id selector is used to select one unique
element!
➢ To select an element with a specific id, write a hash (#) character, followed by the id of the
element.
<!DOCTYPE html>
<html>
<head>
<style>
#para1 {
text-align: center;
color: red;}
</style></head>
<body>
<p id="para1">Hello World!</p>
<p>This paragraph is not affected by the style.</p>
</body>
</html>
13
The CSS class Selector
The class selector selects HTML elements with a specific class attribute.
To select elements with a specific class, write a period (.) character, followed by the class name.
Example
In this example all HTML elements with class="center" will be red and center-aligned:
.center {
text-align: center;
color: red;}
The CSS Universal Selector
The universal selector (*) selects all HTML elements on the page.
Example
The CSS rule below will affect every HTML element on the page:
*{
text-align: center;
color: blue;}
The CSS Grouping Selector
The grouping selector selects all the HTML elements with the same style definitions.
Look at the following CSS code (the h1, h2, and p elements have the same style definitions):
h1 {
text-align: center;
color: red;}
h2 {
text-align: center;
color: red;}
p{
text-align: center;
color: red;
}
14
CSS Flexbox Layout Module
Before the Flexbox Layout module, there were four layout modes:
• Block, for sections in a webpage
• Inline, for text
• Table, for two-dimensional table data
• Positioned, for explicit position of an element
The Flexible Box Layout Module, makes it easier to design flexible responsive layout structure without
using float or positioning.
Flexbox Elements
To start using the Flexbox model, you need to first define a flex container.
<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
display: flex;
background-color: DodgerBlue;
}
.flex-container > div {
background-color: #f1f1f1;
margin: 10px;
padding: 20px;
font-size: 30px;
}
</style>
</head>
<body>
<h1>Create a Flex Container</h1>
<div class="flex-container">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
<p>A Flexible Layout must have a parent element with the <em>display</em> property set to
<em>flex</em>.</p>
<p>Direct child elements(s) of the flexible container automatically becomes flexible items.</p>
</body>
</html>
Output:
15
Create a Flex Container
1
2
3
A Flexible Layout must have a parent element with the display property set to flex.
Direct child elements(s) of the flexible container automatically becomes flexible items.
JavaScript: Data Types and Variables
JavaScript Data Types
Data Types Description Example
Number an integer or a floating-point number 3 , 3.234 , 3e-2 etc.
BigInt an integer with arbitrary precision 900719925124740999n , 1n etc.
Boolean Any of two values: true or false true and false
undefined a data type whose variable is not initialized let a;
const x = 5;
const y = "Hello";
Here,
• 5 is an integer data.
• "Hello" is a string data.
JavaScript String
16
String is used to store text. In JavaScript, strings are surrounded by quotes:
• Single quotes: 'Hello'
• Double quotes: "Hello"
• Backticks: `Hello`
For example,
//strings example
const name = 'ram';
const name1 = "hari";
const result = `The names are ${name} and ${name1}`;
JavaScript Number
Number represents integer and floating numbers (decimals and exponentials). For
example,
const number1 = 3;
const number2 = 3.433;
const number3 = 3e5 // 3 * 10^5
JavaScript Boolean
This data type represents logical entities. Boolean represents one of two
values: true or false . It is easier to think of it as a yes/no switch. For example,
const dataChecked = true;
const valueCounted = false;
Javascript Variables:
4 Ways to Declare a JavaScript Variable:
• Using var
• Using let
17
• Using const
• Using nothing
What are Variables?
Variables are containers for storing data (storing data values).
In this example, x, y, and z, are variables, declared with the var keyword:
Example
var x = 5;
var y = 6;
var z = x + y;
Declaring a JavaScript Variable
Creating a variable in JavaScript is called "declaring" a variable.
You declare a JavaScript variable with the var or the let keyword:
var carName;
To assign a value to the variable, use the equal sign:
carName = "Volvo";
One Statement, Many Variables
You can declare many variables in one statement.
Start the statement with let and separate the variables by comma:
Example
let person = "John Doe", carName = "Volvo", price = 200;
JavaScript Identifiers(Rules for Variables)
• Names can contain letters, digits, underscores, and dollar signs.
• Names must begin with a letter.
• Names can also begin with $ and _ (but we will not use it in this tutorial)
• Names are case sensitive (y and Y are different variables)
• Reserved words (like JavaScript keywords) cannot be used as names.
18
JavaScript Functions
A JavaScript function is a block of code designed to perform a particular task.
A JavaScript function is executed when "something" invokes it (calls it).
Example:
function myFunction(p1, p2) {
return p1 * p2; // The function returns the product of p1 and p2
}
JavaScript Function Syntax
A JavaScript function is defined with the function keyword, followed by a name, followed by
parentheses ().
Function names can contain letters, digits, underscores, and dollar signs (same rules as variables).
The parentheses may include parameter names separated by commas:
(parameter1, parameter2, ...)
The code to be executed, by the function, is placed inside curly brackets: {}
function name(parameter1, parameter2, parameter3) {
// code to be executed
}
Function Invocation
The code inside the function will execute when "something" invokes (calls) the function:
• When an event occurs (when a user clicks a button)
• When it is invoked (called) from JavaScript code
• Automatically (self invoked)
Function Return
When JavaScript reaches a return statement, the function will stop executing.
If the function was invoked from a statement, JavaScript will "return" to execute the code after the
invoking statement.
Functions often compute a return value. The return value is "returned" back to the "caller":
19
Example
Calculate the product of two numbers, and return the result:
let x = myFunction(4, 3); // Function is called, return value will end up in x
function myFunction(a, b) {
return a * b; // Function returns the product of a and b
}
The result in x will be:
12
Why Functions?(Advantages)
You can reuse code: Define the code once, and use it many times.
You can use the same code many times with different arguments, to produce different results.
Local Variables
Variables declared within a JavaScript function, become LOCAL to the function.
Local variables can only be accessed from within the function.
Javascript Events
Event Description
20
onchange An HTML element has been changed
onclick The user clicks an HTML element
onmouseover The user moves the mouse over an HTML element
onmouseout The user moves the mouse away from an HTML element
onkeydown The user pushes a keyboard key
onload The browser has finished loading the page
JavaScript Event Handlers
Event handlers can be used to handle and verify user input, user actions, and
browser actions:
• Things that should be done every time a page loads
• Things that should be done when the page is closed
• Action that should be performed when a user clicks a button
• Content that should be verified when a user inputs data
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript HTML Events</h2>
<p>Click the button to display the date.</p>
<button onclick="displayDate()">The time is?</button>
<script>
21
function displayDate() {
document.getElementById("demo").innerHTML = Date();
}
</script>
<p id="demo"></p>
</body>
</html>
JavaScript HTML Events
Click the button to display the date.
The time is?
Tue Jun 28 2022 15:42:44 GMT+0530 (India Standard Time)
jQuery Ajax GET and POST Requests
jQuery $.get() and $.post() Methods
The jQuery's $.get() and $.post() methods provide simple tools to send and
retrieve data asynchronously from a web server. Both the methods are pretty
much identical, apart from one major difference — the $.get() makes Ajax
requests using the HTTP GET method, whereas the $.post() makes Ajax requests
using the HTTP POST method.
The basic syntax of these methods can be given with:
$.get(URL, data, success); —Or— $.post(URL, data, success);
22