Beruflich Dokumente
Kultur Dokumente
Lecture 1
Introduction to Internet and World
Wide Web
Concepts
• Internet is a group of networks connected together.
• The Internet refers to the global connection of
networks around the world.
• It connects millions of computers together globally,
forming a network in which any computer can
communicate with any other computer as long as
they are both connected to the Internet.
• Internet is a network of networks that consists of millions of private, public,
academic, business, and government networks, of local to global scope, that are
linked by a broad array of electronic, wireless and optical networking technologies.
• The Internet carries an extensive range of information resources and services, such
as:
1. Inter-linked hypertext documents of the World Wide Web (WWW), the
infrastructure to support email, and peer-to-peer networks.
2. Most traditional communications media including telephone, music, film, and
television are being reshaped or redefined by the Internet, giving birth to new
services such as voice over Internet Protocol (VoIP) and Internet Protocol television
(IPTV).
3. Newspaper, book and other print publishing are adapting to website technology, or
are reshaped into blogging.
4. The Internet has enabled and accelerated new forms of human interactions through
instant messaging, Internet forums, and social networking.
5. Online shopping.
6. Business-to-business and financial services.
• No one actually owns the Internet, and no single person or
organization controls the Internet in its entirety.
– Mozilla Firefox
– Opera
– Google Chrome
– Apple Safari
Web Server is any computer that receives requests from client
computers, processes and sends the output.
• Examples
– Apache
– Microsoft Internet Information Server (IIS)
• The web server waits for the request from the web clients over
the Internet.
The HTTP Request/Response Model
HTML Codes
<html>
…
Request </html>
Response
Client Server
Program /
Scripts
URL, URI, DNS, DHCP
• http://www.xe.com/xemoneytransfer/nz/ (This is URL)
• URI is xe.com. Usually URL are more specific as compared to URI. URI
gives the unique name to the page while URL locates that page.
• Domain Name: www.xe.com (Higher level domain is .com)
• DNS (Domain Name Server) Helps to resolve the domain names in to IP
addresses/location of the requested URL, so that the request will be
directed to the appropriate server for completion.
• DHCP (Domain Host Configuration Protocol) It assigns the IP address to
the client to connect to the network/internet.
Markup
Markup refers to the sequence of characters or other symbols that you insert at certain
places in a text or word processing file to indicate how the file should look when it is
printed or displayed.
For example, we could write *Hello* to output Hello or /Hello/ to output Hello.
A well-known example of a markup language in widespread use today is Hypertext
Markup Language (HTML), one of the document formats of the WWW.
Hypertext and Hypermedia
A session is typically, but not always, stateful, meaning that at least one of
the communicating parts needs to save information about the session
history in order to be able to communicate, as opposed to stateless
communication.
A session tracking mechanism has to be used
to allocate a request to a session. Session
tracking is normally implemented by URL
rewriting or cookies.
• URL Rewriting
URL rewriting is a mechanism that transmits session-relevant data as
parameters in a URL. The transmitted data can then be used to
reconstruct the session on the server. Unfortunately, this mechanism has
several drawbacks:
• If a large data volume is required within a session, then the URL can easily
become messy and error-prone. Since Web applications tend to be
complex, the requirements for the data volume to be stored in a session
can also increase.
• Limiting the length of a URL can cause this mechanism to become unusable
on certain systems.
• The major drawback, however, is that the URLs encoded in HTML pages
have to be dynamically adapted for each session, for instance, to encode a
session in a session ID within the URL. This means that the pages or links
within the application have to be dynamically generated for each request.
We can use cookies to solve this problem.
• Cookies
A cookie, also known as an HTTP cookie, web cookie, or
browser cookie, is used to send state information to a user's
browser and for the browser to return the state information
to the origin site. The state information can be used for
authentication, identification of a user session, user's
preferences, shopping cart contents, or anything else that can
be accomplished through storing text data on the user's
computer.
Cookies are not software. They cannot be programmed, and
cannot carry viruses, on the host computer. However, they can
be used by spyware to track user's browsing activities.
Cookies can be stolen by hackers to gain access to a victim's
web account.
Cookies are typically classified as either
“session” or “permanent” cookies:
While permanent cookies remain on the client
computer (stored on the hard disk), session
cookies are only kept until the site is left or
the browser closed. This means that the
server can identify requests from a specific
client and allocate them to a session.
The major benefit of cookies is that information
identifying a session can be exchanged transparently
between a client and a server. They can be used to
easily implement session tracking, and they require
no major effort, because only a session ID generated
by the server has to be transmitted.
The major drawback of cookies is that some users
deactivate the cookie functionality in their browsers
to prevent their browsing behavior from being
captured.
Client-side Technologies
• Helpers and Plug-ins
Helper programs are applications that can add
functionality to Web browsers. As soon as a browser
receives a media type included in its helper or plug-
in list, this media type is forwarded to the external
program specified in the list for further processing.
A helper program has to be installed by the user on
their client computer. Any program can basically
become a helper.
Example of helper applications include
Acrobat Reader.
A major drawback of helpers is their complex
communication with the browser.
Plug-ins can solve this problem. A plug-in is a
helper program permanently installed into the
browser for optimized communication.
Applications support plug-ins for many
reasons. Some of the main reasons include:
1. to support easily adding new features.
2. to reduce the size of an application.
Java Applets
An applet is any small program that performs one
specific task that runs within the scope of a larger
program.
Applet as a standalone application is an applet is
hosted by an operating system, it can function as any
other normal software application but is small in size
and performs only a small set of tasks, such as
Microsoft paint.
Applet as an extension of other software does not
run independently. These applets must run in a
container provided by a host program.
Java applets are programs written in Java that
are loaded dynamically into the browser.
Applets are loaded by a Web server and
executed in a browser within a runtime
environment called Java Virtual Machine
(JVM). Applets are not persistently stored on a
system. In contrast to ActiveX Controls,
applets are compiled into system-independent
bytecode, which allows them to run on all
platforms with a JVM.
ActiveX
is a framework for defining reusable S/W component.
Applications can then be composed from one or more of
these components in order to provide their functionality.
It was introduced in 1996 by Microsoft as a development of
its Component object model (COM) and Object linking and
embedding (OLE) technologies and is commonly used in its
Windows.
Many Microsoft Windows applications use ActiveX controls to
build their feature-set and also encapsulate their own
functionality as ActiveX controls which can then be embedded
into other applications. Internet explorer also allows
embedding ActiveX controls onto web pages.
ActiveX Controls are standard COM components designed to
provide a certain set of interfaces (COM interfaces). A Web
browser can load such a component from a Web server,
instantiate it via the COM runtime system, and then use that
component’s functionality.
ActiveX controls are comparable to Java
Applets:
1. Programmers designed both of these
mechanisms to allow web browsers to
download and execute them. But Java applets
can run on nearly any platform, while ActiveX
components officially operate only with
Microsoft's internet explorer web browser
and the Windows OS.
2. In contrast to Java applets, ActiveX Controls are compiled into
binary code, which provides excellent performance. ActiveX
Controls are stored in the browser’s special cache directory.
This means that for subsequent invocations the functionality
is readily available.
3. In addition, an ActiveX Control has the same possibilities as a
plug-in or helper; it can access all system areas and functions
of the user who owns the security context it runs in. This is a
security risk. Therefore, Microsoft has developed a method
allowing ActiveX Control vendors to use a crypto method to
sign these components. When an ActiveX Control is loaded in
a browser, the certificate of the ActiveX vendor can be
displayed. A user can decide whether he or she agrees to run
the program, i.e., whether he or she trusts the manufacturing
company.
4. Another benefit of ActiveX Controls is that the components
can be developed in an arbitrary language, including Java,
Visual Basic, and C++, as long as the language’s compiler
meets the required COM specifications.
Document-specific Technologies
• HTML – Hypertext Markup Language
• SVG – Scalable Vector Graphics
• XML – eXtensible Markup Language
• SMIL – Synchronized Multimedia Integration
Language
• XSL – eXtensible Stylesheet Language
Technology Stack for Web
Development
• Client-Side Programming
– HTML
– CSS
• Frameworks existing such as BOOTSTRAP etc.
– JAVASCRIPT
• JavaScript Libraries & Frameworks
– jQuery
– React.js
– Zepto.js
• Javascript Frameworks such as Angular, Vue, Backbone,
and Ember for fast responsive app development
Technology Stack for Web
Development
• Server Side Scripting
– PHP (LARAVEL, ZEND, CODEIGNITER), ASP.NET, JSP,
PHTHON, SCALA, RUBY
– WebServers such as IIS, APACHI.
– Databases
• MYSQL
• POSTGRESQL
• MongoDB (Non-relational DB)
• A web application needs a caching system to reduce
the load on the database and to handle large amounts
of traffic.
– Memcached and Redis are the most widespread caching
systems.
Some Famous Applications and their
Technology Stacks
Some Famous Applications and their
Technology Stacks
• https://www.upwork.com/hiring/for-clients/how-to-choose-a-technology-stack-
for-web-application-development/