Java: A to Z
Delivered By:
Alexander Day Chaffee, Purple Technology
Original Creator of Gamelan
([Link] - EarthWeb)
alexc@[Link]
Copyright © 1997-8 Alex Chaffee
Purple Technology
Java Training and Consulting
All levels of courses
[Link]
Copyright © 1997-8 Alex Chaffee
What is Java?
An island
Largest island of the equatorial achipelago of
Indonesia
Famous for beaches and coffee Copyright © 1997-8 Alex Chaffee
What is Java?
A programming language
Developed by Sun Microsystems
Open specification
Copyright © 1997-8 Alex Chaffee
What is Java?
An architecture
Virtual Machine
Copyright © 1997-8 Alex Chaffee
What is Java?
A platform
Libraries / APIs
Applications
Applets
Copyright © 1997-8 Alex Chaffee
What is Java?
An Operating System (OS)
Tailored for NCs and Embedded Systems
Not an OS for PCs
Copyright © 1997-8 Alex Chaffee
What is Java?
A really good buzzword
Coined by Kim Polese
Copyright © 1997-8 Alex Chaffee
Why Java?
High Productivity
Low Cost
Run Anywhere
N-tier Applications
Copyright © 1997-8 Alex Chaffee
Where is Java?
Server-side programming
Enterprise computing
Distributed computing
Client-side multimedia
Copyright © 1997-8 Alex Chaffee
Where is Java heading?
Clients (Network, Distributed Computing
with Nodes)
Servers (Web servers, collaboration
services)
Embedded (TV Set-top, cell phones, smart
cards)
Copyright © 1997-8 Alex Chaffee
Facts and Figures
Copyright © 1997-8 Alex Chaffee
Number of Java Developers
(IDC)
Copyright © 1997-8 Alex Chaffee
Real-world Java Examples
Copyright © 1997-8 Alex Chaffee
Andersen Consulting
60,000 employees who travel to client sites
VERY heterogeneous computing
environments
On-line travel system for their in-house
needs
Privileges according to employee status
Andersen Consulting (cont.)
"Java is absolutely ready for prime time. It's
the most bulletproof language we've used.
We don't have to worry about memory
leaks. If we had done this in C, we would
still be debugging."
-Elmer Baldwin, President, via World
Network.
Copyright © 1997-8 Alex Chaffee
CSX railway shipping
Find out which train(s) have your freight on
map of USA
Click on train and see what freight belongs
to your company
Saving CSX $10M in next year
Copyright © 1997-8 Alex Chaffee
CSX railway shipping (cont.)
CSX, using Java, has halved the time to
write code and moved to a zero cost
software distribution model.
At the same time, CSX has moved to a
multi-client environment, improved
satisfaction, expanded reach and self-
enabled the customer
Copyright © 1997-8 Alex Chaffee
CSX (cont.)
"Java is CSX's enterprise computing solution Java
is deployed everywhere and at every level of CSX.
And we are working on architecturally purifying
CSX development," said Marshall Gibbs, assistant
VP of enterprise solutions at CSX Technology in
Jacksonville, FL, the IT unit of CSX Corp. "Our
ROI on projects where we use Java has increased
by 10 percent."
Copyright © 1997-8 Alex Chaffee
Dun & Bradstreet
On-line office supply catalogue for in-house
use
Privileges according to status at company
Copyright © 1997-8 Alex Chaffee
Federal Express
"Java is our primary targeted application
platform for internal apps." says FedEx CIO
Dennis Jones. "No internal application
work is occurring for the client aside from
Java development."
Using Symantec Café
Copyright © 1997-8 Alex Chaffee
Ford Motor Credit Company.
"Ford Credit is using Java and the Internet
to better serve our customers. Ford Credit is
currently using Java to provide customers a
convenient way to access account
information - 24 hours a day, 7 days a
week." -Terry Bone, Ford Motor Credit
Company
Copyright © 1997-8 Alex Chaffee
National Library of Medicine
(NIH)
Using Java for health and information
professionals to access database
Users' displays tailored to suit information
(instead of line-oriented displays)
"The development of Java saved us the cost of
developing to platform-specific window
environments and greatly speeded up our delivery
of a working prototype version of HSTAT (roughly
six months from design to delivery)."
Copyright © 1997-8 Alex Chaffee
First Union Corp.
"Java gives us greater selection of what
applications we can use. Well over 90% of
development is Java based," said Michael
Love, vice president of the smart card
initiative at First Union Corp in Charlotte,
NC.
Copyright © 1997-8 Alex Chaffee
Java Foundations
Copyright © 1997-8 Alex Chaffee
What is a computer?
CPU
Memory
Input/output devices
What is a programming
language?
Set of instructions for computer
Stored in memory, executed by CPU
Grammar
Examples
Perl
C
C++
BASIC
LISP
Lifecycle of a program
Source code
Compiler
Object code
Linker
Executable code
What is a Script?
A script is a program, but not all programs
are scripts
Scripting Languages:
Lingo
Perl
JavaScript
TCL
Script vs. Program
Scripts are…
smaller
easier learning curve
less scalable
number of developers per script is usually one
more task-specific
usually tailored to a specific program or function
fewer functions available
Script vs. Program
Programs are…
usually larger
more powerful
more task-independent
more scalable
programs can have dozens of programmers
more code libraries
can produce their own graphical user interface
Lifecycle of a script
Source code
Interpreter
Perl
Right on the line between scripting and
programming language
Possible to write large programs in Perl
Not a good idea
Many libraries available for Perl
Not very good GUI support
Contains compiler and interpreter
Java Code
Simple Object Oriented
Distributed Interpreted
Robust Safe
Secure Architecture Neutral
Portable High Performance
Multi-Threaded Dynamic (GC)
Copyright © 1997-8 Alex Chaffee
Boy Scout Code
trustworthy loyal
helpful friendly
courteous kind
obedient cheerful
thrifty brave
clean reverent
Copyright © 1997-8 Alex Chaffee
History
Green Project / FirstPerson / Oak
Consumer electronics
Set-top boxes
James Gosling, Patrick Naughton
Copyright © 1997-8 Alex Chaffee
History
LiveOak (1993)
Arthur van Hoff
WebRunner (1994)
Patrick Naughton, Jonathan Payne
Java
Kim Polese
Copyright © 1997-8 Alex Chaffee
History
Fall 1994: WebRunner written
Spring 1995: Java/HotJava announced at
SunWorld ‘95
Fall 1995: Java Day New York
Birth of Gamelan
Spring 1996: First JavaOne (San Francisco)
Copyright © 1997-8 Alex Chaffee
What is an Operating System?
A program that runs other programs
Sits between programs and devices
Manages scheduling of concurrent
programs
Provides API to applications
Application Program Interface
What is a Platform?
Combination of OS, API, installed
programs, and hardware
Sometimes means one of those things,
sometimes means many
Platform Independent: Why?
Write once, run anywhere
One code base to develop
Upwardly compatible with new technology
Writing code that will run on machines that
haven't been invented yet
Cross-compatible with existing installed base
E.g. all the computers on the Web
Copyright © 1997-8 Alex Chaffee
Cross-Platform
Write-Once-Run-Anywhere
AIX, HP-UX, MacOS, OS2, Win95, WinNT,
Netware, UnixWare, Irix, Solaris, and others
Copyright © 1997-8 Alex Chaffee
Platform Independent: How?
Application Application Application
Virtual Machine
Windows MacOS Unix
Copyright © 1997-8 Alex Chaffee
Java Class Lifecycle
Source -> Bytecode -> Interpreter
Copyright © 1997-8 Alex Chaffee
Java Class Lifecycle
Source File Java Virtual Machine (JVM)
(.java) ClassLoader
Compiler Bytecode Verifier
(javac)
Interpreter Just-in-time
compiler
Class File
(.class)
Network Security Manager
or
File System
= security gateway Operating System
Security Architecure
Has to go through Verifier on one side and
Security Manager on the other
Sandbox
Cryptography / signed applets
Copyright © 1997-8 Alex Chaffee
Secure
Java:
Adjustable security: “untrusted” through levels
of trust
ActiveX:
Binary trust: all or nothing
Copyright © 1997-8 Alex Chaffee
Java vs. ActiveX
Java ActiveX
File IO yes yes
Network IO yes yes
Applet Caching yes yes
Erase hard disk no yes
Upload confidential information
no yes
Copyright © 1997-8 Alex Chaffee
Object-Oriented
Encourages more flexible and reliable
designs
Fosters reuse of code and design
Reduces maintenance costs
Copyright © 1997-8 Alex Chaffee
Automatic Memory
Management
Greatly improves developer productivity
Reduces “memory leakage” problems
Copyright © 1997-8 Alex Chaffee
Powers of ten
Cost of fixing problems
Design = $1
Development = $10
Debugging = $100
Deployment = $1000
Brooks, The Mythical Man Month
Java helps at early stages
Problems are caught early
Copyright © 1997-8 Alex Chaffee
Distributed Computing
Applications reside where they’re needed
saving valuable desktop space
Accessible from any connected location
Native support for distributed app
development ([Link], RMI, CORBA,
DCOM)
Copyright © 1997-8 Alex Chaffee
Server-side strength
Built-in support for networking makes
development easy
Copyright © 1997-8 Alex Chaffee
3-tier and n-tier development
Flexible implementations separate user
interface from business logic and from
database storage
Copyright © 1997-8 Alex Chaffee
Client-side Java
Copyright © 1997-8 Alex Chaffee
Applications
Installed locally
Like any other application (Word, Photoshop)
Run as a local process
Can make network connections freely
No security restrictions
Still safety restrictions (e.g. can’t write to
random memory)
Copyright © 1997 Alex Chaffee
Applets
Live inside a browser
Stored as class files on a Web server
Are delivered through the internet or intranet
On-demand, when needed
Run inside a Java-enabled web browser
Always downloads the latest version
Sometimes cached locally, but not reliably
Copyright © 1997 Alex Chaffee
Applet Security
Security restrictions
Are secure
Limited or no access to the local machine
(“client”)
Applets (Diagram)
Browser Web Server
Here is my face:
[Link]
[Link]
Copyright © 1997 Alex Chaffee
Sockets and Ports (Diagram)
port 13 Time Service
Client Web Service
port 80
Socket Socket
Server
Copyright © 1997 Alex Chaffee
Applet as Input Form
Interactive
Verify input
Can send data to CGI or to custom server
More efficient use of client and server
resources
Copyright © 1997 Alex Chaffee
Applet Security Model
a/k/a “The Sandbox”
Can’t access local files
Can’t launch local applications
Can only connect to “applet host,” i.e. the
host from which the applet itself was
downloaded
Can’t accept connections, i.e. can’t act as a
server
Copyright © 1997 Alex Chaffee
Applet Tag
<APPLET CODE=Animator HEIGHT=100
WIDTH=100>
<PARAM NAME=speed VALUE=50>
</APPLET>
Browser Virtual Machine
Every browser has its own VM
Starts up either at launch or the first time
Java is needed
“Starting Java...”
Browser compatibility
Every version of Java is slightly different
Browsers, yuck
Navigator 2.x, 3.x, 4.x
Internet Explorer 3.x, 4.x
HotJava
We need...
Copyright © 1997-8 Alex Chaffee
The Activator
Copyright © 1997-8 Alex Chaffee
Activator, a/k/a Java Plug-in
uses latest JRE
to deploy Java on intranets
eventually, on Internet
Not a perfect solution
Copyright © 1997-8 Alex Chaffee
Microsoft's Java
Copyright © 1997-8 Alex Chaffee
Java vs. HTML
HTML is a presentation format
Was never meant to be used for interactive
applications
Latency, or turn-around time, is too high
Dynamic HTML is really just window
dressing
Copyright © 1997-8 Alex Chaffee
Java vs. HTML
Java is a full-fledged application language
High-level of interaction with low-latency
More powerful and easier to use interfaces
Flexible enough to play any part in a
solution
Copyright © 1997-8 Alex Chaffee
Java can do it all
Server-side or back-end processing
Middleware to transport and translate
information
Front-end user interface
Adapts to client: from PC’s, NC’s to Hand-
held devices
Copyright © 1997-8 Alex Chaffee
Marimba Castanet
Marimba Castanet delivers applications
Changes nature of software
No more upgrades! Just automatic updates
[Link]
Founded by four original Java team
members
Copyright © 1997-8 Alex Chaffee
Java vs. JavaScript
Totally different technologies
JavaScript
Browser scripting language
Integrated with HTML page
Similar syntax
Java and Multimedia
Java and Streaming
Streaming - starting to play a sound or
video before it has completely downloaded
A few streaming players written in Java
Flash
Shockwave
Multimedia FAQ
Is Java low-bandwidth
friendly?
Con:
Startup time
Need to load class files as well as media files
Pro:
Complete control over what media you
download at what time
Class files usually small
Is there an authoring
environment to help you write
Java?
A few packages allow you to create
animations or ads and output class files
There are plenty of IDEs that require you to
write code
Many IDEs use Java Beans to make
programming more visual
How does one with no
programming knowledge
oversee a Java based project?
What are some simple uses of
Java on a Web site?
Playing a sound
Displaying an animation
better to use GIF89
Interactive form
better to use JavaScript
Interactive banner ad
What's a good price to pay for
a Java programmer you aren't
sleeping with?
$50-$150 / hr
Is Java good for developing
games?
Sure, if you keep the window small
MPlayer
[Link]
Will Java be around 2 years
from now?
Absolutely
Can you show me some kewl
stuff done in Java?
[Link]
[Link]
[Link]
Server-side Java
Copyright © 1997-8 Alex Chaffee
Servlets
Cross-platform server-side scripting
Like CGI, only cooler
Copyright © 1997-8 Alex Chaffee
Java Web Server
Server written in Java
Runs servlets
Cheap
Copyright © 1997-8 Alex Chaffee
Java Application Server
Based on Java Web Server
High-performance
Enterprise Java Beans
Copyright © 1997-8 Alex Chaffee
Enterprise Java Beans
Framework for enterprise servers
Adds transactions, persistence,
multithreading to server
Deals with tough issues, keeping server-
side business objects simple
Many EJB servers (IBM, Weblogic,
JavaSoft, etc.)
Copyright © 1997-8 Alex Chaffee
Java Components
Copyright © 1997-8 Alex Chaffee
Spaghetti Code
Business logic mingled with systems code
Ported to legacy systems
Complex to develop
Expensive to maintain
Copyright © 1997-8 Alex Chaffee
Java Beans
Marketable software parts
Business applications as reusable
components
Leverages legacy systems
Easy to build/extend
Easy to distribute
Copyright © 1997-8 Alex Chaffee
What is a component?
Software “part”
Self-contained, independent
Plug-and-play, drag-and-drop
Interact and interoperate with other components
Assemble components to create an application
Ready for use by visual programming tools
Marketable
Copyright (c) 1997 Alex Chaffee
Split Development
JavaBeans producers
Create components for user-interface and
business-logic
JavaBeans consumers
Use JavaScript Applet Embedding for web
pages
Use JavaStudio and other visual development
tools
Copyright © 1997-8 Alex Chaffee
Commercial User-Interface
JavaBeans
JScape ([Link])
KL Group ([Link])
Lotus Kona project ([Link])
Rogue Wave
Dundas
Many more: see
[Link]
Copyright © 1997-8 Alex Chaffee
Enterprise Java Beans
Adds business services to Java
Transactions, naming, etc.
Simplified development
don’t need to worry about threading, locking,
transaction issues
IBM heavily involved
Copyright © 1997-8 Alex Chaffee
Java Myths
Copyright © 1997-8 Alex Chaffee
Myth: Java is Proprietary
Truly open standards
Developed in collaboration with other partners
IBM, Symantec, Intel, Oracle, …
Long period of public comment and revision
Several "clean-room" implementations underway
Kaffe
Sun does not compete with application developers
Or does it? (Java Application Server, HotSpot)
Java is an ISO Publically Available Standard
approved 20 to 2
Copyright © 1997-8 Alex Chaffee
Myth: Java has poor
performance
Video Games
Frag Island – Quake Rendering Engine
([Link]
Warp - Karl Hornell is God
([Link]
Built-in Multi-threading improves
performance
Copyright © 1997-8 Alex Chaffee
Myth: Java has poor
performance
Interpreter is fine for IO-bound apps (including UI)
Very fast with Just-in-time (JIT) compilers
Now available on most platforms
HotSpot
Object-oriented optimization
Generational Garbage Collection
malloc/free test: JVM 18 sec, MSJVM 8 sec, C++ 6 sec,
HotSpot 2 sec.
Many other enhancements
Copyright © 1997-8 Alex Chaffee
Myth: Java has poor
performance
Compile to native code where possible
Compile server-side applications directly to
the platform on which they’ll be used
SuperCede and Symantec Café/Visual Café
support this
Note: lose some benefits of Java (notably
dynamic linking)
Copyright © 1997-8 Alex Chaffee
Myth: Java is immature
Compiler Bugs
Almost none in real-world experience
Java Compatibility Test required by all
JavaVM licensees
Copyright © 1997-8 Alex Chaffee
Myth: Java is immature
Class Library Bugs
AWT in JDK 1.1 much improved
JFC takes Java UI to the next level
Copyright © 1997-8 Alex Chaffee
Myth: Java is immature
Java Virtual Machine problems
Most are from implementations in browsers
They lag behind JDK releases
Affects “cross-platform” compatibility
100% Pure Java crusade, run seamlessly across
platforms
Activator
Copyright © 1997-8 Alex Chaffee
Myth: Write once, run
anywhere
Should be, “Write once, debug everywhere,
run anywhere”
Need a good debugger (like Café)
Copyright © 1997-8 Alex Chaffee
Java Myths: NCs vs. PCs
PC vs NC: reality both will co-exist and
overlap in functionality
Network and server load issues: reality
careful system administration and caching
required
Don't need to throw everything away and
start from scratch
Copyright © 1997-8 Alex Chaffee
Myth: Java vs. Microsoft
Java works great under Microsoft OS
IIS has full Java integration for ASPs
Copyright © 1997-8 Alex Chaffee
Java Libraries and APIs
Copyright © 1997-8 Alex Chaffee
Java API Strategy
Copyright © 1997-8 Alex Chaffee
Core Libraries (APIs)
UI
JFC
IO
Net
JDBC
RMI
Copyright © 1997-8 Alex Chaffee
Extended APIs
Electronic Commerce
Network Management
Security
JavaBeans - GUI Components
Enterprise Java - Enterprise Wide Backend Database
Connectivity
Server - Web Server or Distributed Applications
JavaMedia - Multimedia
Copyright © 1997-8 Alex Chaffee
User Interface: AWT
Based on native widgets
Native look-and-feel
Simple components
Copyright © 1997-8 Alex Chaffee
Swing/JFC
Builds on AWT and IFC
Pluggable look and feel
Rich set of pre-defined components
Fully customizable
Simplify commercial GUI development
Open component market
Copyright © 1997-8 Alex Chaffee
Swing GUI
Copyright © 1997-8 Alex Chaffee
AFC / WFC
Microsoft's alternative
Write once, run on Windows
Out as of March 11, 1998
Copyright © 1997-8 Alex Chaffee
Standard Extensions
Servlets
InfoBus
Java Help
JavaMail
Copyright © 1997-8 Alex Chaffee
Java and Business
JDBC
JNDI (Java Naming and Directory
Interface)
Java Transaction Services
Enterprise Java Beans
Copyright © 1997-8 Alex Chaffee
Distributed Computing
Copyright © 1997-8 Alex Chaffee
[Link]
uses TCP/IP
works on all Java platforms
all open protocols of the Internet
HTTP, FTP, SMTP, IMAP
Source code:
Socket s = new Socket
(“[Link]”,80);
Copyright © 1997-8 Alex Chaffee
Other Network Technologies
RMI
CORBA
JDBC
Other Java
Initiatives/Environments
Copyright © 1997-8 Alex Chaffee
JavaPC
Turn old PCs into NCs
Copyright © 1997-8 Alex Chaffee
Personal Java
Tailored for products such as mobile
phones, set top boxes, screenphones, mid-
range mobile phones
Designed to fit in devices with 2 Mb or less
Copyright © 1997-8 Alex Chaffee
Embedded Java
tailored for small memory, high volume
products
Tailored for products such as industrial
controllers, pagers, routers, switches
Designed to fit in devices < .5 Mb ROM
Doesn't require general purpose applet
downloading capabilities
Includes the Java VM and core set of APIs
Copyright © 1997-8 Alex Chaffee
Java Card
Use in Smart Cards
Java Ring
Dallas Semiconductor
32K program RAM, 6K data RAM
Serial port interface
Contains private key crypto
Runs off the “1” bits
Auto-zeroing RAM
Copyright © 1997-8 Alex Chaffee
Other Companies
Copyright © 1997-8 Alex Chaffee
Netscape
First Java licensee
Recently announced they're canceling their
Java program
Java will still work in Netscape with
Activator etc.
Also working (halfheartedly) on Javagator
Copyright © 1997-8 Alex Chaffee
Microsoft
COM integration
IIS
AFC / WFC
Visual J++ 6.0
SDKJ 3.0 just released in beta
Write once, run on Windows
Did someone say “lawsuit?”
Copyright © 1997-8 Alex Chaffee
Symantec
First with first out with dev tools, an IDE, a
RAD IDE, a JIT, and a database-oriented
product
Developing JFC core technologies
Developing JFC look-and-feels
Just-in-time compiler keeps getting better
Enhancing debugger support
Copyright © 1997-8 Alex Chaffee
IBM
VisualAge for Java - nice RAD tool
San Francisco
Enterprise Java Beans
Licensing picoJava
Copyright © 1997-8 Alex Chaffee
Developing Java
Copyright © 1997-8 Alex Chaffee
Developing Java:IDEs
Best ones are on PC
Symantec Café
Borland JBuilder
Microsoft Visual J++
Copyright © 1997-8 Alex Chaffee
Developing Java: Java Studio
Copyright © 1997-8 Alex Chaffee
Conclusion
Copyright © 1997-8 Alex Chaffee
[APPLAUSE]
Copyright © 1997-8 Alex Chaffee
[DINNER]
Copyright © 1997-8 Alex Chaffee
Relevant Web Site Resources
Javasoft & Sun: [Link] &
[Link]
[Link]: [Link]
Symantec: [Link]
IBM: [Link]/java
Borland: [Link]
SuperCede: [Link]
Purple Tech: [Link]
Copyright © 1997-8 Alex Chaffee
Credits
Purple Technology
Java Training and Consulting
Symantec Corp.
Java Development Tools
Advanced Web Technologies
Java-only training, mentoring, and consulting company
Sun Microsystems
JavaOne presentations: Lew Tucker, Alan Baratz, James Gosling
Personal Thanks
Lew Tucker, Gerry Seidman, Ian McFarland
Copyright © 1997-8 Alex Chaffee
Appendix: Networking Basics
Copyright © 1997 Alex Chaffee
Networking Basics
TCP/IP vocabulary and concepts
WWW vocabulary and concept
Copyright © 1997 Alex Chaffee
Telnet Application
Demo of time service (port 13)
Demo of login service (port 23)
Demo of HTTP service (port 80)
Copyright © 1997 Alex Chaffee
A Network Is...
node
any device on the network
host
a computer on the network
address
computer-readable name for host
host name
human-readable name for host
Copyright © 1997 Alex Chaffee
A Network Does...
datagram (or “packet”)
little bundle of information
sent from one node to another
protocol
roles, vocabulary, rules for communication
IP
the Internet Protocol
Copyright © 1997 Alex Chaffee
TCP/IP: The Internet Protocol
Application Layer (HTTP, FTP, SMTP)
Transport Layer (TCP, UDP)
Internet Layer (IP)
Physical Network
Copyright © 1997 Alex Chaffee
TCP/UDP/IP
IP
raw packets
the “Internet Layer”
TCP
data stream
reliable, ordered
the “Transport Layer”
UDP
user datagrams (packets)
unreliable, unordered
the “Transport Layer”
Copyright © 1997 Alex Chaffee
The Three ‘I’s
internet
any IP-based network
Internet
the big, famous, world-wide IP network
intranet
a corporate LAN-based IP network
extranet
accessing corporate data across the Internet
Copyright © 1997 Alex Chaffee
IP Addresses
IP Address: identifies a host
4 bytes = 2^32 = 4,294,967,296
DNS: converts host names / domain names
into IP#s
Copyright © 1997 Alex Chaffee
IPv6
aka IP: the Next Generation
16-byte addresses
2^128 =
340,282,366,920,938,460,000,000,000,000,
000,000,000
No Y2K problem: InetAddress Class hides
implementation
Copyright © 1997 Alex Chaffee
Sockets and Ports
Port: a meeting place on a host
one service per port
1-1023 = well-known services
1024+ = experimental services, temporary
Socket: a two-way connection
Copyright © 1997 Alex Chaffee
Sockets and Ports (Diagram)
port 13 Time Service
Client Web Service
port 80
Socket Socket
Server
Copyright © 1997 Alex Chaffee
Well-Known Ports
20,21: FTP
23: telnet
25: SMTP
43: whois
80: HTTP
119: NNTP
1099: RMI
Copyright © 1997 Alex Chaffee
The World Wide Web
Runs on the Internet
Uses HTTP protocol
Invented by Tim Berners-Lee (and a cast of
thousands)
Copyright © 1997 Alex Chaffee
URL
protocol://host[:port][/path/][file][#anchor]
[Link]
[Link]
[Link]
Copyright © 1997 Alex Chaffee
HTTP
port 80 default
Client:
GET path HTTP/1.0
Header: value
blank line
Server:
HTTP/1.0 OK 200
Header: value
blank line
data
telnet demo again
Copyright © 1997 Alex Chaffee
HTML
Text file
“Tags” - markup commands embedded in
text
e.g.
This is <B>bold</B> and this is
<I>italics</I>
Copyright © 1997 Alex Chaffee