0% found this document useful (0 votes)
6 views

Chapter 4

Cyber

Uploaded by

Ganesh Hasnale
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

Chapter 4

Cyber

Uploaded by

Ganesh Hasnale
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

4-Web Server

4.1 Creating web server


4.2 Handling http requests
4.3 Sending requests

Introduction: To access web pages of any web application, you need a web server. The web server will
handle all the http requests for the web application e.g IIS is a web server for ASP.NET web applications
and Apache is a web server for PHP or Java web applications.
Node.js provides capabilities to create your own web server which will handle HTTP requests
asynchronously. You can use IIS or Apache to run Node.js web application but it is recommended to use
Node.js web server.

Create Node.js Web Server : Node.js makes it easy to create a simple web server that processes incoming
requests asynchronously.

var http = require('http'); // 1 - Import Node.js core module

var server = http.createServer(function (req, res) { // 2 - creating server

//handle incomming requests here..

});

server.listen(5000); //3 - listen for any incoming requests

console.log('Node.js web server at port 5000 is running..')

In the above example, we import the http module using require() function. The http module is a core module
of Node.js, so no need to install it using NPM. The next step is to call createServer() method of http and
specify callback function with request and response parameter. Finally, call listen() method of server object
which was returned from createServer() method with port number, to start listening to incoming requests on
port 5000. You can specify any unused port here.

Run the above web server by writing node server.js command in command prompt or terminal window and
it will display message as shown below.

C:\> node server.js


Node.js web server at port 5000 is running..

This is how you create a Node.js web server using simple steps. Now, let's see how to handle HTTP request
and send response in Node.js web server.

Handle HTTP Request


The http.createServer() method includes request and response parameters which is supplied by Node.js. The
request object can be used to get information about the current HTTP request e.g., url, request header, and
data. The response object can be used to send a response for a current HTTP request.
The following example demonstrates handling HTTP request and response in Node.js.
var http = require('http'); // Import Node.js core module

var server = http.createServer(function (req, res) { //create web server


if (req.url == '/') { //check the URL of the current request
// set response header
res.writeHead(200, { 'Content-Type': 'text/html' });

// set response content


res.write('<html><body><p>This is home Page.</p></body></html>');
res.end();

}
else if (req.url == "/student") {

res.writeHead(200, { 'Content-Type': 'text/html' });


res.write('<html><body><p>This is student Page.</p></body></html>');
res.end();

}
else if (req.url == "/admin") {

res.writeHead(200, { 'Content-Type': 'text/html' });


res.write('<html><body><p>This is admin Page.</p></body></html>');
res.end();

}
else
res.end('Invalid Request!');

});

server.listen(5000); //6 - listen for any incoming requests

console.log('Node.js web server at port 5000 is running..')


In the above example, req.url is used to check the url of the current request and based on that it sends the
response. To send a response, first it sets the response header using writeHead() method and then writes a
string as a response body using write() method. Finally, Node.js web server sends the response using end()
method.

Now, run the above web server as shown below.

C:\> node server.js


Node.js web server at port 5000 is running..

To test it, you can use the command-line program curl, which most Mac and Linux machines have
pre-installed.

curl -i http://localhost:5000

You should see the following response.

HTTP/1.1 200 OK
Content-Type: text/plain
Date: Tue, 8 Sep 2015 03:05:08 GMT
Connection: keep-alive
This is home page.
For Windows users, point your browser to http://localhost:5000 and see the following result.

Node.js Web Server Response

The same way, point your browser to http://localhost:5000/student and see the following result.

Node.js Web Server Response

It will display "Invalid Request" for all requests other than the above URLs.

You might also like