SlideShare a Scribd company logo
1 of 26
Web Browsers
Overview
 When discussing Web browsers, our focus will not be on the graphical aspects
of browser functionality (i.e. the layout of pages, the rendering of images).
 We shall concentrate on the issues associated with the processing of HTTP
requests and responses.
 It may seem to some that the task of designing a browser is a fait accompli, a
foregone conclusion, a done deal, a known problem that has already been
‘solved’.
 Given the history and progress of browser development—from the original
www browser, through Lynx and Mosaic, to Netscape, Internet Explorer, and
Opera today—it might seem a futile endeavor to ‘reinvent the wheel’ by
building a new browser application.
 The desktop browser is the most obvious example of a Web client, and it’s
certainly the most common.
 Other types of Web clients include agents, which are responsible for
submitting requests on behalf of a user to perform some automated function.
 Proxies,which act as gateways through which requests and responses pass
between servers and clients to enhance security and performance.
 Today’s desktop browsers may be (relatively) stable, and it would be difficult
if not impossible to develop and market a new desktop browser at this stage
of the game.
 Still, there will be ample opportunities to enhance and augment the
functionality of existing desktop browsers, and this effort is best undertaken
with a thorough understanding of the issues of browser design.
Responsibilities
 Generate and send requests to Web servers on the user’s behalf, as a result of
following hyperlinks, explicit typing of URLs, submitting forms, and parsing
HTML pages that require auxiliary resources (e.g. images, applets).
 Accept responses delivered by Web servers and interpret them to produce the
visual representation to be viewed by the user. This will, at a bare minimum,
involve examination of certain response headers such as Content-Type to
determine what action needs to be taken and what sort of rendering is
required.
 Render the results in the browser window or through a third party tool,
depending on the content type of the response.
Architectural Considerations
The following list delineates the core functions associated with a Web browser.
Each function can be thought of as a distinct module within the browser.
Obviously these modules must communicate with each other in order to allow
the browser to function, but they should each be designed atomically.
 User Interface: this module is responsible for providing the interface through
which users interact with the application. This includes presenting,
displaying, and rendering the end result of the browser’s processing of the
response transmitted by the server.
 Request Generation: this module bears responsibility for the task of building
HTTP requests to be submitted to HTTP servers. When asked by the User
Interface module or the Content Interpretation module to construct requests
based on relative links, it must first resolve those links into absolute URLs.
 Response Processing: this module must parse the response, interpret it, and
pass the result to the User Interface module.
 Networking: this module is responsible for network communications. It takes
requests passed to it by the Request Generation module and transmits them
over the network to the appropriate Web server or proxy. It also accepts
responses that arrive over the network and passes them to the Response
Processing module.
 Content Interpretation: having received the response, the Response
Processing module needs help in parsing and deciphering the content. The
content may be encoded, and this module is responding to decode it. this
module must tell the Request Generation module to construct additional
requests for the retrieval of auxiliary content such as images, applets, and
other objects.
 Caching: caching provides web browsers with a way to economize by avoiding the
unnecessary retrieval of resources that the browser already has a usable copy of,
‘cached’ away in local storage.
 State Maintenance: since HTTP is a stateless protocol, some mechanism must be
in place to maintain the browser state between related requests and responses.
Cookies are the mechanism of choice for performing this task, and support for
cookies is in the responsibility of this module.
 Authentication: this module takes care of composing authorization credentials
when requested by the server. It must interpret response headers demanding
credentials by prompting the user to enter them (usually via a dialog). It
 Configuration: finally, there are a number of configuration options that a browser
application needs to support. Some of these are fixed, while others are
userdefinable.
PROCESSING FLOW
 In each of these cases, processing begins with the User Interface module,
which is responsible for presenting the display window and giving users access
to browser functions (e.g. through menus and shortcut keys).
 In general, an application using aGUI (graphical user interface) operates using
an event model. User actions—clicking on highlighted hyperlinks.
 Events that are important for the User Interface module:
 Entering URLs manually: usually, this is accomplished by providing a text
entry box in which the user can enter a URL, as well as through a menu option
(File→ Open) that opens a dialog box for similar manual entry.
 Selecting previously visited links: the existence of this mechanism, naturally,
implies that the User Interface module must also provide a mechanism for
maintaining a history of visited links.
 Selecting displayed hyperlinks: there are a number of ways for users to select
links displayed on the presented page. In desktop browsers, the mouse click is
probably the most common mechanism for users to select a displayed link,
but there are other mechanisms on the desktop and on other platforms as
well.
 Once the selected or entered link is passed on to the Request Generation
module,it must be resolved.
 Links found on a displayed page can be either absolute or relative.
 Absolute URLs are complete URLs, containing all the required URL
components, e.g. protocol://host/path.
 These do not need to be resolved and can be processed without further
intervention.
 A relative URL specifies a location relative to:
Relative URL
 the current location being displayed (i.e. the entire URL including the path,
up to the directory in which the current URL resides), when the HREF contains
a relative path that does not begin with a slash, e.g.: <A HREF="some
directory/ just a file name.html">).
 the current location’s web server root (i.e., only the host portion of the URL),
when the HREF contains a relative path that does begin with a slash, e.g. <A
HREF="/root level directory/another file name.html">.
Networking module
 It asks the Caching module “Do I already have a copy of this resource?” If so,
it needs to determine whether it can simply use this copy, or whether it needs
to ask the server if the resource has been modified since the browser cached
a copy of this resource.
 It asks the Authorization module “Do I need to include authentication
credentials in this request?” If the browser has not already stored credentials
for the appropriate domain, it may need to contact the User Interface
module, which prompts the user for credentials.
 It asks the State Mechanism module “Do I need to include Cookie headers in
this request?” It must determine whether the requested URL matches domain
and path patterns associated with previously stored cookies.
Response Processing module
 If the status code of the response is 401 Not Authorized, this means that the
request lacked necessary authorization credentials. The Response Processing
module asks the Authorization module whether any existing credentials might
be used to satisfy the request. The Authorization module may, in turn,
contact the User Interface module, which would prompt the user to enter
authorization credentials. In either case, this results in the original request
being retransmitted with an Authorization header containing the required
credentials.
 If the response contains Set-Cookie headers, the State Maintenance module
must store the cookie information using the browser’s persistence
mechanism.
Content Interpretation module
 If the response contains Content-Transfer-Encoding and/or Content-Encoding
headers, the module needs to decode the body of the response.
 The module examines the Cache-Control, Expires, and/or Pragma headers
(depending on the HTTP version of the response) to determine whether the
browser needs to cache the decoded content of the response.
 The Content-Type header determines the MIME type of the response content.
Different MIME types, naturally, require different kinds of content processing.
 For MIME types that are not processed natively, browsers usually provide
support mechanisms for the association of MIME types with helper
applications and plug-ins.
User Interface Module
 As each of the requested resources arrives in sequence, it is passed to the
User Interface module so that it may be incorporated in the final
presentation.
 The Networking module maintains its queue of requests and responses,
ensuring that all requests have been satisfied, and resubmitting any
outstanding requests.
 Displays browser window for rendering the content received from Content
Interpretation module.
 Provides user access to browser functions through menus, shortcut keys, etc.
Top Web Browsers
 Google Chrome
 Mozilla Firefox
 Opera
 Safari
 Internet Explorer
 Netscape Browser
 Lynx
Google Chrome
 Popular Browser by Internet giant Google.
 Focuses on enhanced performance of web applications.
 Hundreds of useful extensions can be downloaded for free from Chrome Store
and can be used for personal use.
 A large array of apps and add ons available at Chrome Store.
 These adds a considerable amount to the browsing experience of the users.
 Phishing/ Malware Filter
 Private browsing
Mozilla Firefox
 A web browser designed for simplicity, security, extensibility yet flexibility
and power.
 Available for Linux and android as well.
 There are lots of plugins and extensions with some powerful developer tools.
 Constant updates, high performance delivered and customizable interface is a
bliss for advanced users.
 Firefox allows an open architecture which accepts the installation of themes
and extensions.
 Themes give the browser a customizable new look.
 Developers can write extensions to make the browser perform functions as
desired like check your Gmail account when you open the browser, or block
all ads.
 Chat Extensions
Opera Web Browser
 Constantly evolving and improving and the most popular mobile browser,
opera has came a long way from being a browser to a full fledged internet
suite.
 Free fast browser with good support for updates
 Features like page zoom and developer shortcuts allow users to have unique
experience.
 There are some compatibility issues found in certain websites but with
constant updates these problems are scarce.
 Email suite
 Bit Torrent
Safari Web Browser
 Safari is a web browser developed by Apple inc.
 It is the most popular browser with MAC users.
 Safari is a clean browser, very fast based on the WebKit rendering engine.
 Safari comes with the features you want in a modern browser, like tabbed
browsing, popup blocking and built-in search functionality.
 It also has one of the best RSS-reading feature available online, it is easier to
keep track a number of websites than using bookmarks.
 Most Popular Macintosh Browser
 Import Bookmarks from any browser
Internet Explorer
 Internet Explorer by Microsoft is the default browser for Windows operating
system.
 Its still very popular with many internet users. Startup speed is a big issue
with internet explorer.
 There are a lot of necessary features like Active X capabilities, SmartScreen
Filters, a list of recommended sites and more.
 Internet Explorer is still considered to be falling behind in the race, but latest
editions promise fast load, packed with latest features.
 We can wait and see if it comes back to top.
s
Lets try our normal thinking
 If you had 5,623 participants in a tournament, how many games would need
to be played to determine the winner?
 You have two light bulbs at a 100-story building. You want to find the floor at
which the bulbs will break when dropped. Find the floor using the least
number of drops.
 How can you drop a raw egg onto a concrete floor without cracking it?

More Related Content

Similar to Lecture 10.pptx

WP SESSION 2 PPT.ppt
WP SESSION 2 PPT.pptWP SESSION 2 PPT.ppt
WP SESSION 2 PPT.pptGFGCKCSKOLAR
 
6 Week / Month Industrial Training in Hoshiarpur Punjab- PHP Project Report
6 Week / Month Industrial Training in Hoshiarpur Punjab- PHP Project Report 6 Week / Month Industrial Training in Hoshiarpur Punjab- PHP Project Report
6 Week / Month Industrial Training in Hoshiarpur Punjab- PHP Project Report c-tac
 
Subscription based control system to automate management of events for robots
Subscription based control system to automate management of events for robotsSubscription based control system to automate management of events for robots
Subscription based control system to automate management of events for robotsdbpublications
 
Introduction to the World Wide Web
Introduction to the World Wide WebIntroduction to the World Wide Web
Introduction to the World Wide WebAbdalla Mahmoud
 
GAP A Tool for Visualize Web Site in Heterogeneus Mobile Devices
GAP A Tool for Visualize Web Site in Heterogeneus Mobile DevicesGAP A Tool for Visualize Web Site in Heterogeneus Mobile Devices
GAP A Tool for Visualize Web Site in Heterogeneus Mobile DevicesJuan Carlos Olivares Rojas
 
Android Trainning Session 2
Android Trainning  Session 2Android Trainning  Session 2
Android Trainning Session 2Shanmugapriya D
 
Nt1310 Final Exam Questions And Answers
Nt1310 Final Exam Questions And AnswersNt1310 Final Exam Questions And Answers
Nt1310 Final Exam Questions And AnswersLisa Williams
 
J2EE Notes JDBC database Connectiviy and Programs related to JDBC
J2EE Notes JDBC database Connectiviy and Programs related to JDBCJ2EE Notes JDBC database Connectiviy and Programs related to JDBC
J2EE Notes JDBC database Connectiviy and Programs related to JDBCChaithraCSHirematt
 
A report on mvc using the information
A report on mvc using the informationA report on mvc using the information
A report on mvc using the informationToushik Paul
 
Company Visitor Management System Report.docx
Company Visitor Management System Report.docxCompany Visitor Management System Report.docx
Company Visitor Management System Report.docxfantabulous2024
 
Over view of software artitecture
Over view of software artitectureOver view of software artitecture
Over view of software artitectureABDEL RAHMAN KARIM
 
Web application framework
Web application frameworkWeb application framework
Web application frameworkPankaj Chand
 
report_vendor_connect
report_vendor_connectreport_vendor_connect
report_vendor_connectYash Mittal
 

Similar to Lecture 10.pptx (20)

WP SESSION 2 PPT.ppt
WP SESSION 2 PPT.pptWP SESSION 2 PPT.ppt
WP SESSION 2 PPT.ppt
 
6 Week / Month Industrial Training in Hoshiarpur Punjab- PHP Project Report
6 Week / Month Industrial Training in Hoshiarpur Punjab- PHP Project Report 6 Week / Month Industrial Training in Hoshiarpur Punjab- PHP Project Report
6 Week / Month Industrial Training in Hoshiarpur Punjab- PHP Project Report
 
Subscription based control system to automate management of events for robots
Subscription based control system to automate management of events for robotsSubscription based control system to automate management of events for robots
Subscription based control system to automate management of events for robots
 
GAP
GAPGAP
GAP
 
Ch21 system administration
Ch21 system administration Ch21 system administration
Ch21 system administration
 
Lecture 1 (2)
Lecture 1 (2)Lecture 1 (2)
Lecture 1 (2)
 
Introduction to the World Wide Web
Introduction to the World Wide WebIntroduction to the World Wide Web
Introduction to the World Wide Web
 
GAP A Tool for Visualize Web Site in Heterogeneus Mobile Devices
GAP A Tool for Visualize Web Site in Heterogeneus Mobile DevicesGAP A Tool for Visualize Web Site in Heterogeneus Mobile Devices
GAP A Tool for Visualize Web Site in Heterogeneus Mobile Devices
 
Android Trainning Session 2
Android Trainning  Session 2Android Trainning  Session 2
Android Trainning Session 2
 
Nt1310 Final Exam Questions And Answers
Nt1310 Final Exam Questions And AnswersNt1310 Final Exam Questions And Answers
Nt1310 Final Exam Questions And Answers
 
J2EE Notes JDBC database Connectiviy and Programs related to JDBC
J2EE Notes JDBC database Connectiviy and Programs related to JDBCJ2EE Notes JDBC database Connectiviy and Programs related to JDBC
J2EE Notes JDBC database Connectiviy and Programs related to JDBC
 
A report on mvc using the information
A report on mvc using the informationA report on mvc using the information
A report on mvc using the information
 
Spring Framework-II
Spring Framework-IISpring Framework-II
Spring Framework-II
 
Company Visitor Management System Report.docx
Company Visitor Management System Report.docxCompany Visitor Management System Report.docx
Company Visitor Management System Report.docx
 
Over view of software artitecture
Over view of software artitectureOver view of software artitecture
Over view of software artitecture
 
cakephp UDUYKTHA (1)
cakephp UDUYKTHA (1)cakephp UDUYKTHA (1)
cakephp UDUYKTHA (1)
 
Marata
MarataMarata
Marata
 
Web application framework
Web application frameworkWeb application framework
Web application framework
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
report_vendor_connect
report_vendor_connectreport_vendor_connect
report_vendor_connect
 

More from Javaid Iqbal

Introduction to Tools and Techniques in the Data Sceicne
Introduction to Tools and Techniques in the Data SceicneIntroduction to Tools and Techniques in the Data Sceicne
Introduction to Tools and Techniques in the Data SceicneJavaid Iqbal
 
W2_Lec03_Lec04_Agents.pptx
W2_Lec03_Lec04_Agents.pptxW2_Lec03_Lec04_Agents.pptx
W2_Lec03_Lec04_Agents.pptxJavaid Iqbal
 
W1_Lec01_Lec02_Introduction.pptx
W1_Lec01_Lec02_Introduction.pptxW1_Lec01_Lec02_Introduction.pptx
W1_Lec01_Lec02_Introduction.pptxJavaid Iqbal
 
Web Engineering Lec01-02 - Introduction to Web.pptx
Web Engineering Lec01-02 - Introduction to Web.pptxWeb Engineering Lec01-02 - Introduction to Web.pptx
Web Engineering Lec01-02 - Introduction to Web.pptxJavaid Iqbal
 
W16_Lec_31_Lec_32_Widgets.pptx
W16_Lec_31_Lec_32_Widgets.pptxW16_Lec_31_Lec_32_Widgets.pptx
W16_Lec_31_Lec_32_Widgets.pptxJavaid Iqbal
 
W14_Lec_27_Lec_28_Services.pptx
W14_Lec_27_Lec_28_Services.pptxW14_Lec_27_Lec_28_Services.pptx
W14_Lec_27_Lec_28_Services.pptxJavaid Iqbal
 

More from Javaid Iqbal (7)

Introduction to Tools and Techniques in the Data Sceicne
Introduction to Tools and Techniques in the Data SceicneIntroduction to Tools and Techniques in the Data Sceicne
Introduction to Tools and Techniques in the Data Sceicne
 
lecture5.ppt
lecture5.pptlecture5.ppt
lecture5.ppt
 
W2_Lec03_Lec04_Agents.pptx
W2_Lec03_Lec04_Agents.pptxW2_Lec03_Lec04_Agents.pptx
W2_Lec03_Lec04_Agents.pptx
 
W1_Lec01_Lec02_Introduction.pptx
W1_Lec01_Lec02_Introduction.pptxW1_Lec01_Lec02_Introduction.pptx
W1_Lec01_Lec02_Introduction.pptx
 
Web Engineering Lec01-02 - Introduction to Web.pptx
Web Engineering Lec01-02 - Introduction to Web.pptxWeb Engineering Lec01-02 - Introduction to Web.pptx
Web Engineering Lec01-02 - Introduction to Web.pptx
 
W16_Lec_31_Lec_32_Widgets.pptx
W16_Lec_31_Lec_32_Widgets.pptxW16_Lec_31_Lec_32_Widgets.pptx
W16_Lec_31_Lec_32_Widgets.pptx
 
W14_Lec_27_Lec_28_Services.pptx
W14_Lec_27_Lec_28_Services.pptxW14_Lec_27_Lec_28_Services.pptx
W14_Lec_27_Lec_28_Services.pptx
 

Recently uploaded

Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsKarinaGenton
 
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...M56BOOKSTORE PRODUCT/SERVICE
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Celine George
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 

Recently uploaded (20)

Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its Characteristics
 
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Staff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSDStaff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSD
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 

Lecture 10.pptx

  • 2. Overview  When discussing Web browsers, our focus will not be on the graphical aspects of browser functionality (i.e. the layout of pages, the rendering of images).  We shall concentrate on the issues associated with the processing of HTTP requests and responses.  It may seem to some that the task of designing a browser is a fait accompli, a foregone conclusion, a done deal, a known problem that has already been ‘solved’.  Given the history and progress of browser development—from the original www browser, through Lynx and Mosaic, to Netscape, Internet Explorer, and Opera today—it might seem a futile endeavor to ‘reinvent the wheel’ by building a new browser application.
  • 3.  The desktop browser is the most obvious example of a Web client, and it’s certainly the most common.  Other types of Web clients include agents, which are responsible for submitting requests on behalf of a user to perform some automated function.  Proxies,which act as gateways through which requests and responses pass between servers and clients to enhance security and performance.  Today’s desktop browsers may be (relatively) stable, and it would be difficult if not impossible to develop and market a new desktop browser at this stage of the game.  Still, there will be ample opportunities to enhance and augment the functionality of existing desktop browsers, and this effort is best undertaken with a thorough understanding of the issues of browser design.
  • 4. Responsibilities  Generate and send requests to Web servers on the user’s behalf, as a result of following hyperlinks, explicit typing of URLs, submitting forms, and parsing HTML pages that require auxiliary resources (e.g. images, applets).  Accept responses delivered by Web servers and interpret them to produce the visual representation to be viewed by the user. This will, at a bare minimum, involve examination of certain response headers such as Content-Type to determine what action needs to be taken and what sort of rendering is required.  Render the results in the browser window or through a third party tool, depending on the content type of the response.
  • 5. Architectural Considerations The following list delineates the core functions associated with a Web browser. Each function can be thought of as a distinct module within the browser. Obviously these modules must communicate with each other in order to allow the browser to function, but they should each be designed atomically.  User Interface: this module is responsible for providing the interface through which users interact with the application. This includes presenting, displaying, and rendering the end result of the browser’s processing of the response transmitted by the server.  Request Generation: this module bears responsibility for the task of building HTTP requests to be submitted to HTTP servers. When asked by the User Interface module or the Content Interpretation module to construct requests based on relative links, it must first resolve those links into absolute URLs.
  • 6.  Response Processing: this module must parse the response, interpret it, and pass the result to the User Interface module.  Networking: this module is responsible for network communications. It takes requests passed to it by the Request Generation module and transmits them over the network to the appropriate Web server or proxy. It also accepts responses that arrive over the network and passes them to the Response Processing module.  Content Interpretation: having received the response, the Response Processing module needs help in parsing and deciphering the content. The content may be encoded, and this module is responding to decode it. this module must tell the Request Generation module to construct additional requests for the retrieval of auxiliary content such as images, applets, and other objects.
  • 7.  Caching: caching provides web browsers with a way to economize by avoiding the unnecessary retrieval of resources that the browser already has a usable copy of, ‘cached’ away in local storage.  State Maintenance: since HTTP is a stateless protocol, some mechanism must be in place to maintain the browser state between related requests and responses. Cookies are the mechanism of choice for performing this task, and support for cookies is in the responsibility of this module.  Authentication: this module takes care of composing authorization credentials when requested by the server. It must interpret response headers demanding credentials by prompting the user to enter them (usually via a dialog). It  Configuration: finally, there are a number of configuration options that a browser application needs to support. Some of these are fixed, while others are userdefinable.
  • 9.  In each of these cases, processing begins with the User Interface module, which is responsible for presenting the display window and giving users access to browser functions (e.g. through menus and shortcut keys).  In general, an application using aGUI (graphical user interface) operates using an event model. User actions—clicking on highlighted hyperlinks.  Events that are important for the User Interface module:
  • 10.  Entering URLs manually: usually, this is accomplished by providing a text entry box in which the user can enter a URL, as well as through a menu option (File→ Open) that opens a dialog box for similar manual entry.  Selecting previously visited links: the existence of this mechanism, naturally, implies that the User Interface module must also provide a mechanism for maintaining a history of visited links.  Selecting displayed hyperlinks: there are a number of ways for users to select links displayed on the presented page. In desktop browsers, the mouse click is probably the most common mechanism for users to select a displayed link, but there are other mechanisms on the desktop and on other platforms as well.
  • 11.  Once the selected or entered link is passed on to the Request Generation module,it must be resolved.  Links found on a displayed page can be either absolute or relative.  Absolute URLs are complete URLs, containing all the required URL components, e.g. protocol://host/path.  These do not need to be resolved and can be processed without further intervention.  A relative URL specifies a location relative to:
  • 12. Relative URL  the current location being displayed (i.e. the entire URL including the path, up to the directory in which the current URL resides), when the HREF contains a relative path that does not begin with a slash, e.g.: <A HREF="some directory/ just a file name.html">).  the current location’s web server root (i.e., only the host portion of the URL), when the HREF contains a relative path that does begin with a slash, e.g. <A HREF="/root level directory/another file name.html">.
  • 13.
  • 14. Networking module  It asks the Caching module “Do I already have a copy of this resource?” If so, it needs to determine whether it can simply use this copy, or whether it needs to ask the server if the resource has been modified since the browser cached a copy of this resource.  It asks the Authorization module “Do I need to include authentication credentials in this request?” If the browser has not already stored credentials for the appropriate domain, it may need to contact the User Interface module, which prompts the user for credentials.  It asks the State Mechanism module “Do I need to include Cookie headers in this request?” It must determine whether the requested URL matches domain and path patterns associated with previously stored cookies.
  • 15.
  • 16. Response Processing module  If the status code of the response is 401 Not Authorized, this means that the request lacked necessary authorization credentials. The Response Processing module asks the Authorization module whether any existing credentials might be used to satisfy the request. The Authorization module may, in turn, contact the User Interface module, which would prompt the user to enter authorization credentials. In either case, this results in the original request being retransmitted with an Authorization header containing the required credentials.  If the response contains Set-Cookie headers, the State Maintenance module must store the cookie information using the browser’s persistence mechanism.
  • 17. Content Interpretation module  If the response contains Content-Transfer-Encoding and/or Content-Encoding headers, the module needs to decode the body of the response.  The module examines the Cache-Control, Expires, and/or Pragma headers (depending on the HTTP version of the response) to determine whether the browser needs to cache the decoded content of the response.  The Content-Type header determines the MIME type of the response content. Different MIME types, naturally, require different kinds of content processing.  For MIME types that are not processed natively, browsers usually provide support mechanisms for the association of MIME types with helper applications and plug-ins.
  • 18. User Interface Module  As each of the requested resources arrives in sequence, it is passed to the User Interface module so that it may be incorporated in the final presentation.  The Networking module maintains its queue of requests and responses, ensuring that all requests have been satisfied, and resubmitting any outstanding requests.  Displays browser window for rendering the content received from Content Interpretation module.  Provides user access to browser functions through menus, shortcut keys, etc.
  • 19. Top Web Browsers  Google Chrome  Mozilla Firefox  Opera  Safari  Internet Explorer  Netscape Browser  Lynx
  • 20. Google Chrome  Popular Browser by Internet giant Google.  Focuses on enhanced performance of web applications.  Hundreds of useful extensions can be downloaded for free from Chrome Store and can be used for personal use.  A large array of apps and add ons available at Chrome Store.  These adds a considerable amount to the browsing experience of the users.  Phishing/ Malware Filter  Private browsing
  • 21. Mozilla Firefox  A web browser designed for simplicity, security, extensibility yet flexibility and power.  Available for Linux and android as well.  There are lots of plugins and extensions with some powerful developer tools.  Constant updates, high performance delivered and customizable interface is a bliss for advanced users.  Firefox allows an open architecture which accepts the installation of themes and extensions.  Themes give the browser a customizable new look.  Developers can write extensions to make the browser perform functions as desired like check your Gmail account when you open the browser, or block all ads.  Chat Extensions
  • 22. Opera Web Browser  Constantly evolving and improving and the most popular mobile browser, opera has came a long way from being a browser to a full fledged internet suite.  Free fast browser with good support for updates  Features like page zoom and developer shortcuts allow users to have unique experience.  There are some compatibility issues found in certain websites but with constant updates these problems are scarce.  Email suite  Bit Torrent
  • 23. Safari Web Browser  Safari is a web browser developed by Apple inc.  It is the most popular browser with MAC users.  Safari is a clean browser, very fast based on the WebKit rendering engine.  Safari comes with the features you want in a modern browser, like tabbed browsing, popup blocking and built-in search functionality.  It also has one of the best RSS-reading feature available online, it is easier to keep track a number of websites than using bookmarks.  Most Popular Macintosh Browser  Import Bookmarks from any browser
  • 24. Internet Explorer  Internet Explorer by Microsoft is the default browser for Windows operating system.  Its still very popular with many internet users. Startup speed is a big issue with internet explorer.  There are a lot of necessary features like Active X capabilities, SmartScreen Filters, a list of recommended sites and more.  Internet Explorer is still considered to be falling behind in the race, but latest editions promise fast load, packed with latest features.  We can wait and see if it comes back to top.
  • 25. s
  • 26. Lets try our normal thinking  If you had 5,623 participants in a tournament, how many games would need to be played to determine the winner?  You have two light bulbs at a 100-story building. You want to find the floor at which the bulbs will break when dropped. Find the floor using the least number of drops.  How can you drop a raw egg onto a concrete floor without cracking it?