http, html, url, java socket - engr.uvic.caseng450/slides/1-seng450-http-socket.pdf · 5. socket...

25
HTTP, HTML, URL, Java Socket

Upload: others

Post on 30-Aug-2019

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

HTTP, HTML, URL, Java Socket

Page 2: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

Agenda1. Architecture overview

2. URL

3. HTTP

4. HTML

5. Java Socket

Page 3: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

1. Architectural Overview 

(1)

(a) A Web page (b) The page reached by clicking on Department of Animal Psychology.

Page 4: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

1. Architectural Overview (2)

The parts of the Web model.

Page 5: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

1. Architectural Overview (3):The Client Side

(a) A browser plug-in. (b) A helper application.

Page 6: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

1. Architectural Overview (4): The Server Side

A multithreaded Web server with a front end and processing modules.

Page 7: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

2. URLs – Uniform Resource Locaters

Some common URLs.

Page 8: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

3. HTTP Methods (1)The built-in HTTP request methods.

Page 9: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

3. HTTP Methods (2)The status code response groups.

Page 10: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

3. HTTP Message Headers (3)

Some HTTP message headers.

Page 11: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

3. Example HTTP 

Usage (4) 

The start of the output of

Page 12: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

4. HTML – HyperText Markup Language (1)

(a) The HTML for a sample Web page. (b) The formatted page.

(b)

Page 13: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

4. HTML (2)

A selection of common HTML tags. some can have additional parameters.

Page 14: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

4. HTML(3): Overview of Forms

<FORM action=‘url’ method=‘get’>…

Textarea

Menus

Input• Button types

• Text (and password) type

• Hidden type

• Radio

Page 15: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

4. HTML(4): A simple form

Page 16: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

4. HTML(5): A simple form

<html>

<head><title>First Form</title></head>

<body>

</body>

<h1>First Form</h1>

<form name ='firstForm' method='get‘ action='http://localhost:8088/'>

address:

<input type='text' name='addr'><p>

message:

<textarea name='message' rows=5 cols=40>

Enter message here

</textarea><p>

<input type='submit'>

</form>

</html>

Page 17: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

4. HTML (6): FormsThe FORM tag

– Method attribute

– Action attribute

– Enctype attribute

– Name attribute?

Form Elements in general– output name-value pairs

Page 18: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

4. HTML (7): Form output

Page 19: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

4. HTML(8): Form Elements

Text Area• Rows & cols

• name attribute

• no value attribute

Menu (<select>)<select name=‘options’ size=5 multiple>

<option value=‘red’ selected>

• drop-down vs. list box use

Page 20: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

4. HTML(9): Input typesButton types

• Submit– value attribute

– name attribute

• Reset

• button– onclick attribute: executes JS code

– can do anything the other buttons can do and more

– uses?

Page 21: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

4. HTML(10): Input types (cont)

Text type• Maxlength, Size

• Value – default value

Password type

Checkbox type• Value – return value

• key is undefined if not checked

• checked – default value

Page 22: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

4. HTML(11): Input types (cont)

Radio type• name attribute determines grouping

• value – return value

Hidden type

File upload• method must be post

• enctype must be multipart/form-data

Server side image map

Page 23: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

5. Socket (1)  • Software interface designed to

communicate between the user program and TCP/IP protocol stack

• Implemented by a set of library function calls

• Socket is a data structure inside the program

• Both client and server programs communicate via a pair of sockets

Page 24: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

5. Socket (2): FrameworkApplication ProgramApplication Program

Socket LayerSocket Layer

TCPTCP UDPUDP

IPIP

User SpaceUser Space

Kernel SpaceKernel Space

Physical Network Physical Network (driver)(driver)

Page 25: HTTP, HTML, URL, Java Socket - engr.uvic.caseng450/slides/1-SENG450-HTTP-Socket.pdf · 5. Socket (1) • Software interface designed to communicate between the user program and TCP/IP

5. Socket (3): Socket Families

There are several significant socket domain families:

Internet Domain Sockets (AF_INET)

-implemented via IP addresses and port numbers

Unix Domain Sockets (AF_UNIX)

-implemented via filenames (think “named pipe”)

Novell IPX (AF_IPX)

AppleTalk DDS (AF_APPLETALK)

Java Socket forms another layer of Abstraction!