1. Working of HTTP Protocol:
What is HTTP?
HTTP stands for Hypertext Transfer Protocol. It's the network protocol used to deliver
virtually all files and other data (collectively called resources) on the World Wide Web,
whether they're HTML files, image files, query results, or anything else. Usually, HTTP
takes place through TCP/IP sockets (and this tutorial ignores other possibilities).
A browser is an HTTP client because it sends requests to an HTTP server (Web server),
which then sends responses back to the client. The standard (and default) port for HTTP
servers to listen on is 80, though they can use any port.
Like most network protocols, HTTP uses the client-server model: An HTTP client opens
a connection and sends a request message to an HTTP server; the server then
returns a response message, usually containing the resource that was requested.
After delivering the response, the server closes the connection (making HTTP a
stateless protocol, i.e. not maintaining any connection information between
transactions).
The format of the request and response messages are similar, and English-oriented. Both
kinds of messages consist of:
âą an initial line,
âą zero or more header lines,
âą a blank line (i.e. a CRLF by itself), and
âą an optional message body (e.g. a file, or query data, or query output).
Request Line
The initial line is different for the request than for the response. A request line has three
parts, separated by spaces: a method name, the local path of the requested resource, and
the version of HTTP being used. A typical request line is:
GET /path/to/file/index.html HTTP/1.0
Notes:
âą GET is the most common HTTP method; it says "give me this resource". Other
methods include POST and HEAD-- more on those later. Method names are
always uppercase.
âą The path is the part of the URL after the host name, also called the request URI (a
URI is like a URL, but more general).
âą The HTTP version always takes the form "HTTP/x.x", uppercase.
2. Response Line (Status Line)
The initial response line, called the status line, also has three parts separated by spaces:
the HTTP version, a response status code that gives the result of the request, and an
English reason phrase describing the status code. Typical status lines are:
HTTP/1.0 200 OK
or
HTTP/1.0 404 Not Found
Notes:
âą The HTTP version is in the same format as in the request line, "HTTP/x.x".
âą The status code is meant to be computer-readable; the reason phrase is meant to
be human-readable, and may vary.
The most common status codes are:
200 OK
The request succeeded, and the resulting resource (e.g. file or script output) is
returned in the message body.
404 Not Found
The requested resource doesn't exist.
301 Moved Permanently
302 Moved Temporarily
303 See Other (HTTP 1.1 only)
The resource has moved to another URL (given by the Location: response
header), and should be automatically retrieved by the client. This is often used by
a CGI script to redirect the browser to an existing file.
500 Server Error
An unexpected server error. The most common cause is a server-side script that
has bad syntax, fails, or otherwise can't run correctly.
WEB-SERVER
A computer program that is responsible for accepting HTTP requests from clients (user
agents such as web browsers), and serving them HTTP responses along with optional
data contents, which usually are web pages such as HTML documents and linked objects
(images, etc.)..
Although web server programs differ in detail, they all share some basic common
features.
1. HTTP: every web server program operates by accepting HTTP requests from the
client, and providing an HTTP response to the client. The HTTP response usually
3. consists of an HTML document, but can also be a raw file, an image, or some
other type of document (defined by MIME-types). If some error is found in client
request or while trying to serve it, a web server has to send an error response
which may include some custom HTML or text messages to better explain the
problem to end users.
2. Logging: usually web servers have also the capability of logging some detailed
information, about client requests and server responses, to log files; this allows
the webmaster to collect statistics by running log analyzers on these files.
WEB-CLIENT OR WEB-BROWER
A Web browser is a software application which enables a user to display and interact
with text, images, videos, music, games and other information typically located on a Web
page at a Web site on the World Wide Web or a local area network. Text and images on a
Web page can contain hyperlinks to other Web pages at the same or different Web site.
Web browsers allow a user to quickly and easily access information provided on many
Web pages at many Web sites by traversing these links. Web browsers format HTML
information for display, so the appearance of a Web page may differ between browsers.
Web browsers are the most-commonly-used type of HTTP user agent. Although browsers
are typically used to access the World Wide Web, they can also be used to access
information provided by Web servers in private networks or content in file systems.
Creating User defined Objects in Java Script:
JavaScript have a number of predefined objects. In addition, you can create your own
objects. Creating your own object requires two steps:
âą Define the object type by writing a function.
âą Create an instance of the object with new.
To define an object type, create a function for the object type that specifies its name, and
its properties and methods. For example, suppose you want to create an object type for
cars. You want this type of object to be called car, and you want it to have properties for
make, model, year, and color. To do this, you would write the following function:
function car(make, model, year) {
this.make = make;
this.model = model;
this.year = year;
}
Notice the use of this to assign values to the object's properties based on the values
passed to the function.
Now you can create an object called mycar as follows:
4. mycar = new car("Eagle", "Talon TSi", 1993);
This statement creates mycar and assigns it the specified values for its properties. Then
the value of mycar.make is the string "Eagle", mycar.year is the integer 1993, and so on.
You can create any number of car objects by calls to new. For example,
kenscar = new car("Nissan", "300ZX", 1992)
An object can have a property that is itself another object. For example, suppose I
define an object called person as follows:
function person(name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
And then instantiate two new person objects as follows:
rand = new person("Rand McNally", 33, "M")
ken = new person("Ken Jones", 39, "M")
Then we can rewrite the definition of car to include an owner property that takes a
person object, as follows:
function car(make, model, year, owner) {
this.make = make;
this.model = model;
this.year = year;
this.owner = owner;
}
To instantiate the new objects, you then use the following:
car1 = new car("Eagle", "Talon TSi", 1993, rand);
car2 = new car("Nissan", "300ZX", 1992, ken)
Notice that instead of passing a literal string or integer value when creating the new
objects, the above statements pass the objects rand and ken as the parameters for
the owners. Then if you want to find out the name of the owner of car2, you can
access the following property:
car2.owner.name
Note that you can always add a property to a previously defined object. For
example, the statement:
car1.color = "black"
5. adds a property color to car1, and assigns it a value of "black". However, this does
not affect any other objects. To add the new property to all objects of the same type,
you have to add the property to the definition of the car object type.
Defining Methods
You can define methods for an object type by including a method defnition in the
object type definition. For example, suppose you have a set of image GIF files, and
you want to define a method that displays the information for the cars, along with
the corresponding image. You could define a function such as:
function displayCar() {
var result = "A Beautiful " + this.year
+ " " + this.make + " " + this.model;
pretty_print(result)
}
where pretty_print is the previously defined function to display a string. Notice the
use of this to refer to the object to which the method belongs.
You can make this function a method of car by adding the statement
this.displayCar = displayCar;
to the object definition. So, the full definition of car would now look like:
function car(make, model, year, owner) {
this.make = make;
this.model = model;
this.year = year;
this.owner = owner;
this.displayCar = displayCar;
}
Then you can call this new method as follows:
car1.displayCar()
car2.displayCar()
This will produce output like this:
A Beautiful 1993 Eagle Talon TSi
A Beautiful 1992 Nissan 300ZX
6. ADVANTAGES OF JAVA SERVLET OVER CGI
ïź Platform Independence
Servlets are written entirely in java so these are platform independent. Servlets
can run on any Servlet enabled web server. For example if you develop an web
application in windows machine running Java web server, you can easily run the
same on apache web server (if Apache Serve is installed) without modification or
compilation of code. Platform independency of servlets provide a great
advantages over alternatives of servlets.
ïź Performance
Due to interpreted nature of java, programs written in java are slow. But the java
servlets runs very fast. These are due to the way servlets run on web server. For
any program initialization takes significant amount of time. But in case of servlets
initialization takes place first time it receives a request and remains in memory till
times out or server shut downs. After servlet is loaded, to handle a new request it
simply creates a new thread and runs service method of servlet. In comparison to
traditional CGI scripts which creates a new process to serve the request.
ïź Extensibility
Java Servlets are developed in java which is robust, well-designed and object
oriented language which can be extended or polymorphed into new objects. So
the java servlets take all these advantages and can be extended from existing class
to provide the ideal solutions.
ïź Safety
Java provides very good safety features like memory management, exception
handling etc. Servlets inherits all these features and emerged as a very powerful
web server extension.
ïź Secure
Servlets are server side components, so it inherits the security provided by the
web server. Servlets are also benefited with Java Security Manager.
7. ADVANTAGES OF JAVA SERVLET OVER CGI
ïź Platform Independence
Servlets are written entirely in java so these are platform independent. Servlets
can run on any Servlet enabled web server. For example if you develop an web
application in windows machine running Java web server, you can easily run the
same on apache web server (if Apache Serve is installed) without modification or
compilation of code. Platform independency of servlets provide a great
advantages over alternatives of servlets.
ïź Performance
Due to interpreted nature of java, programs written in java are slow. But the java
servlets runs very fast. These are due to the way servlets run on web server. For
any program initialization takes significant amount of time. But in case of servlets
initialization takes place first time it receives a request and remains in memory till
times out or server shut downs. After servlet is loaded, to handle a new request it
simply creates a new thread and runs service method of servlet. In comparison to
traditional CGI scripts which creates a new process to serve the request.
ïź Extensibility
Java Servlets are developed in java which is robust, well-designed and object
oriented language which can be extended or polymorphed into new objects. So
the java servlets take all these advantages and can be extended from existing class
to provide the ideal solutions.
ïź Safety
Java provides very good safety features like memory management, exception
handling etc. Servlets inherits all these features and emerged as a very powerful
web server extension.
ïź Secure
Servlets are server side components, so it inherits the security provided by the
web server. Servlets are also benefited with Java Security Manager.