SlideShare a Scribd company logo
Introduction to the Web
Prerequisites Basic computer skills Experience using the World Wide Web Experience developing object-oriented software
Learning Objectives Overview of Web and Internet technologies Review of existing Web programming technologies
Agenda Internet Technologies Programming Languages and Paradigms Programming the Web
Internet Technologies  The World Wide Web A way to access and share information Technical papers, marketing materials, recipes, ... A huge network of computers: the Internet Graphical, not just textual Information is linked to other information Application development platform Shop from home Provide self-help applications for customers and partners ...
Internet Technologies WWW Architecture Web Server PC/Mac/Unix  + Browser Client Server Request: http://www.msn.com/default.asp Response: <html>…</html> Network TCP/IP
Internet Technologies WWW Architecture Client/Server, Request/Response architecture You request a Web page e.g.  http://www.msn.com/default.asp HTTP request The Web server responds with data in the form of a Web page HTTP response Web page is expressed as HTML Pages are identified as a Uniform Resource Locator (URL) Protocol:  http Web server:  www.msn.com Web page:  default.asp Can also provide parameters:  ?name=Leon
Internet Technologies Web Standards Internet Engineering Task Force (IETF) http://www.ietf.org/   Founded 1986 Request For Comments (RFC) at  http://www.ietf.org/rfc.html   World Wide Web Consortium (W3C) http://www.w3.org   Founded 1994 by Tim Berners-Lee Publishes technical reports and recommendations
Internet Technologies Web Design Principles Interoperability:  Web languages and protocols must be compatible with one another independent of hardware and software.  Evolution:  The Web must be able to accommodate future technologies. Encourages simplicity, modularity and extensibility. Decentralization:  Facilitates scalability and robustness.
Internet Technologies Hypertext Markup Language (HTML) The markup language used to represent  Web pages for viewing by people Designed to display data, not store/transfer data Rendered and viewed in a Web browser Can contain  links  to images, documents,  and other pages Not extensible Derived from Standard Generalized Markup Language (SGML) HTML 3.2, 4.01, XHTML 1.0
Internet Technologies HTML Forms Enables you to create interactive  user interface elements Buttons Text boxes Drop down lists Check boxes User fills out the form and submits it Form data is sent to the Web server via HTTP when the form is submitted
Internet Technologies Hypertext Transport Protocol (HTTP) The top-level protocol used to request and return data  E.g. HTML pages, GIFs, JPEGs, Microsoft Word documents, Adobe PDF documents, etc. Request/Response protocol Methods:  GET ,  POST ,  HEAD , … HTTP 1.0: simple  HTTP 1.1: more complex
Internet Technologies HTTP Request GET /default.asp HTTP/1.0 Accept: image/gif, image/x-bitmap, image/jpeg, */* Accept-Language: en User-Agent: Mozilla/1.22 (compatible; MSIE 2.0; Windows 95) Connection: Keep-Alive If-Modified-Since: Sunday, 17-Apr-96 04:32:58 GMT Method File HTTP version Headers Data – none for GET Blank line
Internet Technologies HTTP Response HTTP/1.0 200 OK Date: Sun, 21 Apr 1996 02:20:42 GMT Server: Microsoft-Internet-Information-Server/5.0  Connection: keep-alive Content-Type: text/html Last-Modified: Thu, 18 Apr 1996 17:39:05 GMT Content-Length: 2543 <HTML> Some data... blah, blah, blah </HTML> HTTP version Status code Reason phrase Headers Data
Internet Technologies HTTP Server Status Codes Description Code Internal Server Error 500 Not Found 404 Forbidden – not authorized 403 Unauthorized 401 Bad Request – not understood 400 Moved Temporarily 302 Moved Permanently 301 Created 201 OK 200
Internet Technologies HTTP HTTP is a stateless protocol Each HTTP request is independent of previous and subsequent requests HTTP 1.1 introduced  keep-alive  for efficiency Statelessness has a big impact on how scalable applications are designed
Internet Technologies Cookies A mechanism to store a small amount of information (up to 4KB) on the client A cookie is associated with a specific web site Cookie is sent in HTTP header Cookie is sent with each HTTP request Can last for only one session (until browser is closed) or can persist across sessions Can expire some time in the future
Internet Technologies HTTPS A secure version of HTTP  Allows client and server to exchange data with confidence that the data was neither modified nor intercepted Uses Secure Sockets Layer (SSL)/ Transport Layer Security (TLS)
Internet Technologies URIs, URLs and URNs Uniform Resource Identifier (URI = URL or URN) Generic term for all textual names/addresses Uniform Resource Locator (URL) The set of URI schemes that have explicit instructions on how to access the resource over the Internet,  e.g.  http ,  ftp ,  gopher Uniform Resource Name (URN)  1) A URI that has an institutional commitment to availability, etc. 2) A particular scheme intended to identify resources     e.g.   urn:schemas:httpmail:subject
Internet Technologies Multipurpose Internet Mail Extensions (MIME) Defines types of data/documents text/plain text/html image/gif image/jpeg audio/x-pn-realaudio audio/x-ms-wma video/x-ms-asf application/octet-stream
Internet Technologies MIME Specifies character sets, e.g. ASCII Supports multi-part messages Originally designed for email, but also used in other places, such as HTTP
Internet Technologies Browsers Client-side application Requests HTML from Web server and renders it Popular browsers: Netscape Internet Explorer Opera others Also known as a User Agent
Internet Technologies Clients & Servers Client and Server computers both have: CPU Memory I/O  Disks Network Bus Multi-tasking operating system Applications
Internet Technologies Clients & Servers Clients Generally supports a single user Optimized for responsiveness to user User interface, graphics Servers Supports multiple users Optimized for throughput More: CPUs (SMP), memory, disks (SANs), I/O Provide services (e.g. Web, file, print, database,  e-mail, fax, transaction, telnet, directory)
Internet Technologies Proxy Servers & Firewalls Proxy Server  A server that sits between a client (running a browser) and the Internet Improves performance by caching commonly used Web pages Can filter requests to prevent users from accessing certain Web sites Firewall A server that sits between a network and the Internet to prevent unauthorized access to the network from the Internet
Internet Technologies Networks Network = an interconnected collection of  independent computers Why have networks? Resource sharing Reliability Cost savings Communication Web technologies add: New business models: e-commerce, advertising Entertainment Applications without a client-side install
Internet Technologies Networks Network scope internet: a collection of connected networks Internet: a specific world-wide network based on TCP/IP, used to connect companies, universities, governments, organizations and individuals.  Originated as ARPANET, funded by the US DoD. intranet: a network based on Internet technologies that is internal to a company or organization extranet: a network based on Internet technologies that connects one company or organization to another
Internet Technologies Networks Network technology is largely determined  by scale: Local Area Network (LAN): Span up to a few kilometers.  Bus vs. ring topologies Wide Area Networks (WAN): Can span a country or continent.  WANs use routers as intermediate nodes to connect transmission lines
Internet Technologies Networks Network technology Broadcasting Packets of data are sent from one machine and received by all computers on the network Multicast: packets are received by a subset of the machines on a network Point-to-point Packets have to be routed from one machine to another; there many be many paths In general, geographically localized networks use broadcasting, while disperse networks use  point-to-point
Internet Technologies Networks Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer Internet Layer Application Layer Telnet FTP SMTP DNS RIP SNMP HTTP IP Host-to-Host Transport Layer TCP UDP Token Ring Ethernet ATM Frame Relay Network Interface Layer OSI Model Layers TCP/IP Protocol Architecture Layers TCP/IP Protocol Suite ARP ICMP IGMP
Internet Technologies Network Protocol Stack HTTP TCP IP Ethernet HTTP TCP IP Ethernet
Internet Technologies Networks - Internet Layer Internet Protocol (IP) Responsible for getting packets from source to destination across multiple hops Not reliable IP address: 32 bit value usually written in dotted decimal notation as four 8-bit numbers  (0 to 255); e.g. 130.50.12.4
Internet Technologies Networks - Transport Layer Provides efficient, reliable and  cost-effective service Uses the Sockets programming model Ports identify application Well-known ports identify standard services  (e.g. HTTP uses port 80, SMTP uses port 25) Transmission Control Protocol (TCP) Provides reliable, connection-oriented byte stream UDP Connectionless, unreliable
Internet Technologies Networks - Application Layer Telnet: Remote sessions File Transfer Protocol (FTP) Network News Transfer Protocol (NNTP) Simple Network Management Protocol (SNMP) Simple Mail Transfer Protocol (SMTP) Post Office Protocol (POP3) Interactive Mail Access Protocol (IMAP)
Internet Technologies Networks -  Domain Name System (DNS) Provides user-friendly domain names,  e.g.  www.msn.com  Hierarchical name space with limited root names DNS servers map domain names to  IP addresses .com .net .gov .edu .org .mil .jp .de
Internet Technologies Extensible Markup Language (XML) Represents hierarchical data A meta-language: a language for defining  other languages Extensible Useful for data exchange and transformation Simplified version of SGML
Agenda Internet Technologies Programming Languages and Paradigms Programming the Web .NET Overview
Programming Languages Machine code Assembly language High-level languages Fortran, LISP, Cobol C, Pascal, Basic, Smalltalk C++, Eiffel Java, C# Scripting languages Shell scripts, Perl, TCL, Python, JavaScript, VBScript
Programming Paradigms Unstructured programming Structured programming Object-oriented programming Component-based programming Event-based programming
Programming Paradigms Unstructured Programming See “Go To Statement Considered Harmful” at  http://www.acm.org/classics/oct95/
Programming Paradigms Structured Programming Sequence Conditional  if then else switch Looping for i from 1 to n do while do until Functions Exceptions
Programming Paradigms Object-Oriented Programming Objects have data and behavior Data: members, fields, variables, slots, properties Behavior: methods, functions, procedures Using objects is easy First instantiate the type of object desired Then call its methods and get/set its properties Designing new types of objects can be hard Design goals often conflict: simplicity, functionality, reuse, performance
Programming Paradigms Object-Oriented Programming Key object-oriented concepts Identity Encapsulation  Data + behavior Information hiding (abstraction) Classes vs. instances Polymorphism Interfaces Delegation, aggregation Inheritance Patterns
Programming Paradigms Component-Based Programming Components Independent modules of reuse and deployment Coarser-grained than objects  (objects are language-level constructs) Includes multiple classes Often language-independent In the general case, the component writer and the component user don’t know each other, don’t work for the same company, and don’t use the same language
Programming Paradigms Component-Based Programming Component Object Model (COM) Initial Microsoft standard for components Specifies a protocol for instantiating and using components in-process, across processes or  across machine boundaries Basis for ActiveX, OLE, and many other technologies Can be created in Visual Basic, C++, .NET, … Java Beans Java standard for components Not language-independent
Programming Paradigms Event-Based Programming When something of interest occurs, an event is raised and application-specific code is executed Events provide a way for you to hook in your own code into the operation of another system Event = callback User interfaces are all about events onClick ,  onMouseOver ,  onMouseMove … Events can also be based upon time or interactions with the network, operating system, other applications, etc.
Agenda Internet Technologies Programming Languages and Paradigms Programming the Web .NET Overview
Programming the Web Client-Side Code What is client-side code? Software that is downloaded from Web server to browser and then executes on the client Why client-side code? Better scalability: less work done on server Better performance/user experience Create UI constructs not inherent in HTML Drop-down and pull-out menus Tabbed dialogs Cool effects, e.g. animation Data validation
Programming the Web Client-Side Technologies DHTML/JavaScript COM ActiveX controls COM components Remote Data Services (RDS) Java Plug-ins Helpers Remote Scripting
Programming the Web Dynamic HTML (DHTML) Script that is embedded within an HTML page Usually written in JavaScript (ECMAScript, JScript) for portability Internet Explorer also supports VBScript and other scripting languages Each HTML element becomes an object that has associated events (e.g.  onClick ) Script provides code to respond to browser events
Programming the Web DHTML The DHTML Document Object Model (DOM) window history document location screen all location children selection forms body links text button radio textarea select password file checkbox submit reset option navigator frames event
Programming the Web ActiveX Based on COM Native only to Internet Explorer Supported in Netscape with a plug-in Good when you know your users (e.g. intranet) or can specify which browser to use Small, efficient code
Programming the Web Java Applets Based on Java bytecode Held great promise as a portable, pain-free way to download client-side code:  “ Write once, run anywhere” Fairly safe: code runs in a “sandbox” Compatibility and performance issues have prevented common usage
Programming the Web Server-Side Code What is server-side code? Software that runs on the server, not the client Receives input from URL parameters HTML form data Cookies HTTP headers Can access server-side databases, e-mail servers, files, mainframes, etc. Dynamically builds a custom HTML response  for a client
Programming the Web Server-Side Code Why server-side code? Accessibility You can reach the Internet from any browser, any device, any time, anywhere Manageability Does not require distribution of application code Easy to change code Security Source code is not exposed Once user is authenticated, can only allow certain actions Scalability Web-based 3-tier architecture can scale out
Programming the Web Server-Side Technologies Common Gateway Interface (CGI) Internet Server API (ISAPI) Netscape Server API (NSAPI) Active Server Pages (ASP) Java Server Pages (JSP) Personal Home Page (PHP) Cold Fusion (CFM) ASP.NET
Programming the Web  Active Server Pages (ASP) Technology to easily create server-side applications ASP pages are written in a scripting language, usually VBScript or JScript An ASP page contains a sequence of static HTML interspersed with server-side code ASP script commonly accesses and updates data in a database

More Related Content

PDF
Summer Training In Dotnet
PPT
Introduction To Dotnet
PPT
Net framework
PPT
.net framework
PPT
Visual studio
PPT
Session2(Mod)
PPT
ASP.NET 01 - Introduction
PPTX
What is dotnet (.NET) ?
Summer Training In Dotnet
Introduction To Dotnet
Net framework
.net framework
Visual studio
Session2(Mod)
ASP.NET 01 - Introduction
What is dotnet (.NET) ?

What's hot (20)

PPT
Introduction to Visual Studio.NET
PPT
Introduction to .NET Framework
PPT
Nakov - .NET Framework Overview - English
PPT
Visual Studio.NET
PPTX
dot net technology
PPT
DOT Net overview
PPTX
Asp.net and .Net Framework ppt presentation
PPTX
Synapse india sharing info on dotnet framework part1
PPT
.Net Overview -- Training (Lesson 1)
PPTX
Introduction to .NET Framework and C# (English)
PPT
PPTX
Dotnet Basics Presentation
PPT
Working in Visual Studio.Net
PPT
Net framework
PPT
Architecture of .net framework
PPS
dot NET Framework
PPSX
Introduction to .net framework
PPTX
Dotnet Frameworks Version History
PPT
Introduction to .Net
PPTX
4. features of .net
Introduction to Visual Studio.NET
Introduction to .NET Framework
Nakov - .NET Framework Overview - English
Visual Studio.NET
dot net technology
DOT Net overview
Asp.net and .Net Framework ppt presentation
Synapse india sharing info on dotnet framework part1
.Net Overview -- Training (Lesson 1)
Introduction to .NET Framework and C# (English)
Dotnet Basics Presentation
Working in Visual Studio.Net
Net framework
Architecture of .net framework
dot NET Framework
Introduction to .net framework
Dotnet Frameworks Version History
Introduction to .Net
4. features of .net
Ad

Similar to Introduction to the web (20)

PPTX
The Internet
PPT
WebEssentials-client server, communication
PPTX
Web Technologies- lecture1&2.Web Technologies- lecture1&2.pptxpptx
PPTX
The Internet and web technologies have revolutionized the way we communicate,...
PPT
WebEssentials_technologies Html5 css ppt
PPTX
Web Unit 1. it is very good material for web development
PPT
Ch02 e commerce
PPTX
Web Fundamentals differentprotoclos used in transmission of data .pptx
PPTX
UNIT 1 (8).pptx
PPTX
An Introduction To World Wide Web
PPTX
WEB-SYSTEM-AND-TECHNOLOGIES-INTRODUCTION-1.pptx
PPTX
Schneider 2. E-Business Technology.pptx file
PPTX
INTERNET TECHNOLOGY
PPTX
Web Technologies Introduction to web technologies
PPT
The Internet, Intranet and Extranet
PPTX
Assignment 01
PDF
WT_TOTAL.pdf
PPTX
How does the web or internet work
PPTX
How Internet Works
The Internet
WebEssentials-client server, communication
Web Technologies- lecture1&2.Web Technologies- lecture1&2.pptxpptx
The Internet and web technologies have revolutionized the way we communicate,...
WebEssentials_technologies Html5 css ppt
Web Unit 1. it is very good material for web development
Ch02 e commerce
Web Fundamentals differentprotoclos used in transmission of data .pptx
UNIT 1 (8).pptx
An Introduction To World Wide Web
WEB-SYSTEM-AND-TECHNOLOGIES-INTRODUCTION-1.pptx
Schneider 2. E-Business Technology.pptx file
INTERNET TECHNOLOGY
Web Technologies Introduction to web technologies
The Internet, Intranet and Extranet
Assignment 01
WT_TOTAL.pdf
How does the web or internet work
How Internet Works
Ad

Recently uploaded (20)

PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
Big Data Technologies - Introduction.pptx
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
A Presentation on Artificial Intelligence
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPT
Teaching material agriculture food technology
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Big Data Technologies - Introduction.pptx
NewMind AI Monthly Chronicles - July 2025
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Spectral efficient network and resource selection model in 5G networks
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
A Presentation on Artificial Intelligence
Chapter 3 Spatial Domain Image Processing.pdf
Network Security Unit 5.pdf for BCA BBA.
Diabetes mellitus diagnosis method based random forest with bat algorithm
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Mobile App Security Testing_ A Comprehensive Guide.pdf
Electronic commerce courselecture one. Pdf
NewMind AI Weekly Chronicles - August'25 Week I
Reach Out and Touch Someone: Haptics and Empathic Computing
Unlocking AI with Model Context Protocol (MCP)
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Teaching material agriculture food technology

Introduction to the web

  • 2. Prerequisites Basic computer skills Experience using the World Wide Web Experience developing object-oriented software
  • 3. Learning Objectives Overview of Web and Internet technologies Review of existing Web programming technologies
  • 4. Agenda Internet Technologies Programming Languages and Paradigms Programming the Web
  • 5. Internet Technologies The World Wide Web A way to access and share information Technical papers, marketing materials, recipes, ... A huge network of computers: the Internet Graphical, not just textual Information is linked to other information Application development platform Shop from home Provide self-help applications for customers and partners ...
  • 6. Internet Technologies WWW Architecture Web Server PC/Mac/Unix + Browser Client Server Request: http://www.msn.com/default.asp Response: <html>…</html> Network TCP/IP
  • 7. Internet Technologies WWW Architecture Client/Server, Request/Response architecture You request a Web page e.g. http://www.msn.com/default.asp HTTP request The Web server responds with data in the form of a Web page HTTP response Web page is expressed as HTML Pages are identified as a Uniform Resource Locator (URL) Protocol: http Web server: www.msn.com Web page: default.asp Can also provide parameters: ?name=Leon
  • 8. Internet Technologies Web Standards Internet Engineering Task Force (IETF) http://www.ietf.org/ Founded 1986 Request For Comments (RFC) at http://www.ietf.org/rfc.html World Wide Web Consortium (W3C) http://www.w3.org Founded 1994 by Tim Berners-Lee Publishes technical reports and recommendations
  • 9. Internet Technologies Web Design Principles Interoperability: Web languages and protocols must be compatible with one another independent of hardware and software. Evolution: The Web must be able to accommodate future technologies. Encourages simplicity, modularity and extensibility. Decentralization: Facilitates scalability and robustness.
  • 10. Internet Technologies Hypertext Markup Language (HTML) The markup language used to represent Web pages for viewing by people Designed to display data, not store/transfer data Rendered and viewed in a Web browser Can contain links to images, documents, and other pages Not extensible Derived from Standard Generalized Markup Language (SGML) HTML 3.2, 4.01, XHTML 1.0
  • 11. Internet Technologies HTML Forms Enables you to create interactive user interface elements Buttons Text boxes Drop down lists Check boxes User fills out the form and submits it Form data is sent to the Web server via HTTP when the form is submitted
  • 12. Internet Technologies Hypertext Transport Protocol (HTTP) The top-level protocol used to request and return data E.g. HTML pages, GIFs, JPEGs, Microsoft Word documents, Adobe PDF documents, etc. Request/Response protocol Methods: GET , POST , HEAD , … HTTP 1.0: simple HTTP 1.1: more complex
  • 13. Internet Technologies HTTP Request GET /default.asp HTTP/1.0 Accept: image/gif, image/x-bitmap, image/jpeg, */* Accept-Language: en User-Agent: Mozilla/1.22 (compatible; MSIE 2.0; Windows 95) Connection: Keep-Alive If-Modified-Since: Sunday, 17-Apr-96 04:32:58 GMT Method File HTTP version Headers Data – none for GET Blank line
  • 14. Internet Technologies HTTP Response HTTP/1.0 200 OK Date: Sun, 21 Apr 1996 02:20:42 GMT Server: Microsoft-Internet-Information-Server/5.0 Connection: keep-alive Content-Type: text/html Last-Modified: Thu, 18 Apr 1996 17:39:05 GMT Content-Length: 2543 <HTML> Some data... blah, blah, blah </HTML> HTTP version Status code Reason phrase Headers Data
  • 15. Internet Technologies HTTP Server Status Codes Description Code Internal Server Error 500 Not Found 404 Forbidden – not authorized 403 Unauthorized 401 Bad Request – not understood 400 Moved Temporarily 302 Moved Permanently 301 Created 201 OK 200
  • 16. Internet Technologies HTTP HTTP is a stateless protocol Each HTTP request is independent of previous and subsequent requests HTTP 1.1 introduced keep-alive for efficiency Statelessness has a big impact on how scalable applications are designed
  • 17. Internet Technologies Cookies A mechanism to store a small amount of information (up to 4KB) on the client A cookie is associated with a specific web site Cookie is sent in HTTP header Cookie is sent with each HTTP request Can last for only one session (until browser is closed) or can persist across sessions Can expire some time in the future
  • 18. Internet Technologies HTTPS A secure version of HTTP Allows client and server to exchange data with confidence that the data was neither modified nor intercepted Uses Secure Sockets Layer (SSL)/ Transport Layer Security (TLS)
  • 19. Internet Technologies URIs, URLs and URNs Uniform Resource Identifier (URI = URL or URN) Generic term for all textual names/addresses Uniform Resource Locator (URL) The set of URI schemes that have explicit instructions on how to access the resource over the Internet, e.g. http , ftp , gopher Uniform Resource Name (URN) 1) A URI that has an institutional commitment to availability, etc. 2) A particular scheme intended to identify resources e.g. urn:schemas:httpmail:subject
  • 20. Internet Technologies Multipurpose Internet Mail Extensions (MIME) Defines types of data/documents text/plain text/html image/gif image/jpeg audio/x-pn-realaudio audio/x-ms-wma video/x-ms-asf application/octet-stream
  • 21. Internet Technologies MIME Specifies character sets, e.g. ASCII Supports multi-part messages Originally designed for email, but also used in other places, such as HTTP
  • 22. Internet Technologies Browsers Client-side application Requests HTML from Web server and renders it Popular browsers: Netscape Internet Explorer Opera others Also known as a User Agent
  • 23. Internet Technologies Clients & Servers Client and Server computers both have: CPU Memory I/O Disks Network Bus Multi-tasking operating system Applications
  • 24. Internet Technologies Clients & Servers Clients Generally supports a single user Optimized for responsiveness to user User interface, graphics Servers Supports multiple users Optimized for throughput More: CPUs (SMP), memory, disks (SANs), I/O Provide services (e.g. Web, file, print, database, e-mail, fax, transaction, telnet, directory)
  • 25. Internet Technologies Proxy Servers & Firewalls Proxy Server A server that sits between a client (running a browser) and the Internet Improves performance by caching commonly used Web pages Can filter requests to prevent users from accessing certain Web sites Firewall A server that sits between a network and the Internet to prevent unauthorized access to the network from the Internet
  • 26. Internet Technologies Networks Network = an interconnected collection of independent computers Why have networks? Resource sharing Reliability Cost savings Communication Web technologies add: New business models: e-commerce, advertising Entertainment Applications without a client-side install
  • 27. Internet Technologies Networks Network scope internet: a collection of connected networks Internet: a specific world-wide network based on TCP/IP, used to connect companies, universities, governments, organizations and individuals. Originated as ARPANET, funded by the US DoD. intranet: a network based on Internet technologies that is internal to a company or organization extranet: a network based on Internet technologies that connects one company or organization to another
  • 28. Internet Technologies Networks Network technology is largely determined by scale: Local Area Network (LAN): Span up to a few kilometers. Bus vs. ring topologies Wide Area Networks (WAN): Can span a country or continent. WANs use routers as intermediate nodes to connect transmission lines
  • 29. Internet Technologies Networks Network technology Broadcasting Packets of data are sent from one machine and received by all computers on the network Multicast: packets are received by a subset of the machines on a network Point-to-point Packets have to be routed from one machine to another; there many be many paths In general, geographically localized networks use broadcasting, while disperse networks use point-to-point
  • 30. Internet Technologies Networks Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer Internet Layer Application Layer Telnet FTP SMTP DNS RIP SNMP HTTP IP Host-to-Host Transport Layer TCP UDP Token Ring Ethernet ATM Frame Relay Network Interface Layer OSI Model Layers TCP/IP Protocol Architecture Layers TCP/IP Protocol Suite ARP ICMP IGMP
  • 31. Internet Technologies Network Protocol Stack HTTP TCP IP Ethernet HTTP TCP IP Ethernet
  • 32. Internet Technologies Networks - Internet Layer Internet Protocol (IP) Responsible for getting packets from source to destination across multiple hops Not reliable IP address: 32 bit value usually written in dotted decimal notation as four 8-bit numbers (0 to 255); e.g. 130.50.12.4
  • 33. Internet Technologies Networks - Transport Layer Provides efficient, reliable and cost-effective service Uses the Sockets programming model Ports identify application Well-known ports identify standard services (e.g. HTTP uses port 80, SMTP uses port 25) Transmission Control Protocol (TCP) Provides reliable, connection-oriented byte stream UDP Connectionless, unreliable
  • 34. Internet Technologies Networks - Application Layer Telnet: Remote sessions File Transfer Protocol (FTP) Network News Transfer Protocol (NNTP) Simple Network Management Protocol (SNMP) Simple Mail Transfer Protocol (SMTP) Post Office Protocol (POP3) Interactive Mail Access Protocol (IMAP)
  • 35. Internet Technologies Networks - Domain Name System (DNS) Provides user-friendly domain names, e.g. www.msn.com Hierarchical name space with limited root names DNS servers map domain names to IP addresses .com .net .gov .edu .org .mil .jp .de
  • 36. Internet Technologies Extensible Markup Language (XML) Represents hierarchical data A meta-language: a language for defining other languages Extensible Useful for data exchange and transformation Simplified version of SGML
  • 37. Agenda Internet Technologies Programming Languages and Paradigms Programming the Web .NET Overview
  • 38. Programming Languages Machine code Assembly language High-level languages Fortran, LISP, Cobol C, Pascal, Basic, Smalltalk C++, Eiffel Java, C# Scripting languages Shell scripts, Perl, TCL, Python, JavaScript, VBScript
  • 39. Programming Paradigms Unstructured programming Structured programming Object-oriented programming Component-based programming Event-based programming
  • 40. Programming Paradigms Unstructured Programming See “Go To Statement Considered Harmful” at http://www.acm.org/classics/oct95/
  • 41. Programming Paradigms Structured Programming Sequence Conditional if then else switch Looping for i from 1 to n do while do until Functions Exceptions
  • 42. Programming Paradigms Object-Oriented Programming Objects have data and behavior Data: members, fields, variables, slots, properties Behavior: methods, functions, procedures Using objects is easy First instantiate the type of object desired Then call its methods and get/set its properties Designing new types of objects can be hard Design goals often conflict: simplicity, functionality, reuse, performance
  • 43. Programming Paradigms Object-Oriented Programming Key object-oriented concepts Identity Encapsulation Data + behavior Information hiding (abstraction) Classes vs. instances Polymorphism Interfaces Delegation, aggregation Inheritance Patterns
  • 44. Programming Paradigms Component-Based Programming Components Independent modules of reuse and deployment Coarser-grained than objects (objects are language-level constructs) Includes multiple classes Often language-independent In the general case, the component writer and the component user don’t know each other, don’t work for the same company, and don’t use the same language
  • 45. Programming Paradigms Component-Based Programming Component Object Model (COM) Initial Microsoft standard for components Specifies a protocol for instantiating and using components in-process, across processes or across machine boundaries Basis for ActiveX, OLE, and many other technologies Can be created in Visual Basic, C++, .NET, … Java Beans Java standard for components Not language-independent
  • 46. Programming Paradigms Event-Based Programming When something of interest occurs, an event is raised and application-specific code is executed Events provide a way for you to hook in your own code into the operation of another system Event = callback User interfaces are all about events onClick , onMouseOver , onMouseMove … Events can also be based upon time or interactions with the network, operating system, other applications, etc.
  • 47. Agenda Internet Technologies Programming Languages and Paradigms Programming the Web .NET Overview
  • 48. Programming the Web Client-Side Code What is client-side code? Software that is downloaded from Web server to browser and then executes on the client Why client-side code? Better scalability: less work done on server Better performance/user experience Create UI constructs not inherent in HTML Drop-down and pull-out menus Tabbed dialogs Cool effects, e.g. animation Data validation
  • 49. Programming the Web Client-Side Technologies DHTML/JavaScript COM ActiveX controls COM components Remote Data Services (RDS) Java Plug-ins Helpers Remote Scripting
  • 50. Programming the Web Dynamic HTML (DHTML) Script that is embedded within an HTML page Usually written in JavaScript (ECMAScript, JScript) for portability Internet Explorer also supports VBScript and other scripting languages Each HTML element becomes an object that has associated events (e.g. onClick ) Script provides code to respond to browser events
  • 51. Programming the Web DHTML The DHTML Document Object Model (DOM) window history document location screen all location children selection forms body links text button radio textarea select password file checkbox submit reset option navigator frames event
  • 52. Programming the Web ActiveX Based on COM Native only to Internet Explorer Supported in Netscape with a plug-in Good when you know your users (e.g. intranet) or can specify which browser to use Small, efficient code
  • 53. Programming the Web Java Applets Based on Java bytecode Held great promise as a portable, pain-free way to download client-side code: “ Write once, run anywhere” Fairly safe: code runs in a “sandbox” Compatibility and performance issues have prevented common usage
  • 54. Programming the Web Server-Side Code What is server-side code? Software that runs on the server, not the client Receives input from URL parameters HTML form data Cookies HTTP headers Can access server-side databases, e-mail servers, files, mainframes, etc. Dynamically builds a custom HTML response for a client
  • 55. Programming the Web Server-Side Code Why server-side code? Accessibility You can reach the Internet from any browser, any device, any time, anywhere Manageability Does not require distribution of application code Easy to change code Security Source code is not exposed Once user is authenticated, can only allow certain actions Scalability Web-based 3-tier architecture can scale out
  • 56. Programming the Web Server-Side Technologies Common Gateway Interface (CGI) Internet Server API (ISAPI) Netscape Server API (NSAPI) Active Server Pages (ASP) Java Server Pages (JSP) Personal Home Page (PHP) Cold Fusion (CFM) ASP.NET
  • 57. Programming the Web Active Server Pages (ASP) Technology to easily create server-side applications ASP pages are written in a scripting language, usually VBScript or JScript An ASP page contains a sequence of static HTML interspersed with server-side code ASP script commonly accesses and updates data in a database

Editor's Notes

  • #3: This module assumes that you understand the fundamentals of working with computers and using the World Wide Web. The sections on Web programming technology assume an understanding of software development, particularly using object-oriented languages such as C++, Visual Basic, or Java.
  • #4: This module is designed to provide you with a basic background in Internet/Web technologies and current technologies for creating Web-based applications. It also provides an overview of the .NET development platform, the details of which comprise the remainder of the course.
  • #6: The Web can be viewed from many different perspectives.
  • #7: This is the basic architecture of the web. A browser running on a client machine makes a request to a server using the HTTP protocol over TCP/IP. The server responds with an HTML page, which is rendered in the browser.
  • #9: The Internet Engineering Task Force (IETF) is a large open international community of network designers, operators, vendors, and researchers concerned with the evolution of the Internet architecture and the smooth operation of the Internet. It is open to any interested individual. It has overseen the development of many Internet standards (e.g. TCP/IP, DNS). The World Wide Web Consortium (W3) develops common protocols (e.g. HTML, XML) to promote the evolution and interoperability of the Web.
  • #11: Objects such as images, audio, video, and documents are not actually enclosed in the HTML Web page, but are referenced by the page. When you tell your browser to display a Web page, it may have to make multiple requests to the server (or possibly different servers) to get all the referenced objects. Example: Get default.asp may result in additional requests for the following files: Get image1.gif Get image2.jpeg Get video1.mpeg …
  • #27: Not too long ago it was quite reasonable to ask “Why do we need networks?” Now the question seems silly!
  • #31: This figure depicts the different layers used in networking protocols.
  • #32: Physically, a request goes down the protocol stack on the client, across the network to the server, then up the server’s protocol stack (solid arrows). Logically, however, the corresponding layers on each machine “talk” to each other (dashed arrows).
  • #41: In reality, the “go to” statement is not inherently “evil”, but should be used in a structured manner. C# supports “go to”s, but only in a limited way.
  • #42: Structured programming addresses the problems involved in writing a single procedure. It doesn’t help too much when large-scale systems are involved.
  • #43: Object-oriented programming actually builds upon structured programming. Structured programming techniques are used within individual methods.
  • #45: Components build upon object-oriented concepts.
  • #55: This course will focus on server-side .NET technologies.