Transcript Motivation

Overview
•
•
•
•
•
•
•
Internet
Internet Protocols
Fundamentals about HTTP Communication
HTTP-Server, mode of operation
Static/Dynamic Webpages
HTML
PHP programming
Computer Net Lab/Praktikum Datenverarbeitung 2
1
Internet
Server
Internet
Text, Audio, Video
and Graphics
Connection
via
TCP/IP-Protocol
Client
Computer Net Lab/Praktikum Datenverarbeitung 2
2
History
• The WWW is 18 years old
• On the 30th April 1993 the originator of the WWW Tim BernersLee declared: Everyone is allowed to use the World Wide Web
and all possibilities it offers without any licenses. Eine gute Idee.
Computer Net Lab/Praktikum Datenverarbeitung 2
3
Internet Services
•
•
•
•
•
•
•
E-Mail
WWW
Chat
Internet News
FTP
Telnet
Applications
Computer Net Lab/Praktikum Datenverarbeitung 2
Internet
4
Internet Protocols
•
•
•
•
•
HTTP
HTTPS
FTP
SMTP
NNTP
Server
Internet
Data
Connection via
Internet Protocol
Client
Computer Net Lab/Praktikum Datenverarbeitung 2
5
Protocols
Application
Transport
HTTP FTP SMTP
DNS SNMP RIP
TCP
UDP
IP
Internet
Phys. Network
Ethernet
Token-Ring
Computer Net Lab/Praktikum Datenverarbeitung 2
ATM
6
http (Hypertext Transfer Protocol)
• Two Types of http messages: Request, Response
• Requests:
–
–
–
–
Request method i.e.: Get, Post
wanted URL
HTTP-Protocol version (actual 1.1)
Headerinfo i.e.: which documents could be received by the client
• Responses:
– Status messages i.e.: 200 : OK, 404: File Not Found
– Headerinfo i.e.: Content-Length, Content-Type (Text, Html, etc.)
– The requested document
Computer Net Lab/Praktikum Datenverarbeitung 2
7
http (Interaction)
•
HTTP Interaction Principles :
– Connection establishment
TCP-Connection from Client to Server (usually Port 80 on the Server)
– Request from Client to Server
Method selection
additional parameters for the method
– Response from Server to Client
Result as a status code
additional parameters on the result
– Connection termination
usually ending the connection
newer versions (newer then HTTP/1.1) can keep connection longer alive
Computer Net Lab/Praktikum Datenverarbeitung 2
8
http (Methods)
•
•
•
•
•
•
•
OPTIONS requests server features
GET fetch a resource from server
HEAD provides only meta information about a resource
PUT saves a resource
POST sends a data set to a resource (CGI-Script)
DELETE deletes a resource
TRACE allows tracking of the processing of requests
Computer Net Lab/Praktikum Datenverarbeitung 2
9
https (1)
• Widely used security technology
• http-Server accepts ssl (secure socket-layer) connection
• Identification of secure connection via
https://url
• SSL connection uses port 443
• Transmitted data are quasi tap-proof (key length)
• Higher working load on server, because encryption causes
additional computing time
Computer Net Lab/Praktikum Datenverarbeitung 2
10
https (2)
HTTPS
Application
Security
SSL
Transport
TCP
IP
Internet
Phys. Network
Ethernet
Token Ring
Computer Net Lab/Praktikum Datenverarbeitung 2
ATM
11
Client Server Principle
Client with
Webbrowser
Request over
Webserver
http request
Results
HTTP
http answer
IP-Adresse
TCP/IP
TCP/IP
Netzwerk
Computer Net Lab/Praktikum Datenverarbeitung 2
12
URL
• URL = unified resource locator
• The access to the server is done by the URL
• Format:
access_method://computerername:port/document?querystring
• Example:
http://www.uni-duisburg.de/netlab/student.php?matr=123456
– access method: http
– computer name: fb9dv.uni-duisburg.de
– port: standard port (80 for HTTP), here not specified
– document: netlab/students.html (path/filename)
– Query string: matr=123456
Computer Net Lab/Praktikum Datenverarbeitung 2
13
Domain names
• Domain name: fb9dv.uni-duisburg.de
– de: first layer name (top-level-domain)
– uni-duisburg: second layer name
– fb9dv: third layer name
de
uni-duisburg.de
fb9dv.uni-duisburg.de
iis.uni-duisburg.de
Computer Net Lab/Praktikum Datenverarbeitung 2
14
Port communication
• communication via TCP/IP operates by IP-Addresses and Ports
16
• each IP-Adresse has 2 potential ports
• The ports below 1024 are standardized (standard ports), which
are allocated to dedicated services, i.e.:
23 telnet
25 smtp
134.91.100.1
80 http
443 https
23 25 80
. . . . . . . 30000
.
Computer Net Lab/Praktikum Datenverarbeitung 2
15
Query GET/POST
• Data transfer to server
• Data are computed by the server and the resulted page is sent to
the client
• Two procedures: Get and Post method
• Get: Query-String is specified within the url
http://www.uni-duisburg.de/student.php?name=peter
• Post: Data are transmitted in HTTP query’s body (not in url)
Example: form data
Computer Net Lab/Praktikum Datenverarbeitung 2
16
HTTP-Server (1)
• Document Root Folder
root directory where all files for the website are stored
• Documents are organized in directories
• Access rights are considered
read, write, delete
public accessed web pages have to be readable by everyone, in
terms of access rights
• Definition of standard documents like index.html, start.htm
• Modular structured, additional services like php-Modul can be
integrated
• Multiple configurations i.e.
- directory level control
- allow access only from specific IP-Addresses
Computer Net Lab/Praktikum Datenverarbeitung 2
17
HTTP-Server (2)
•
•
Apache-Server configuration is done using the file httpd.conf. This file is read
in and evaluated when starting the servers
Contains information about the Apache Web-Server itself, about logs and
additional configuration files. Examples:
– ServerRoot
The statement ServerRoot defines the path to the top level directory,
which includes configuration folders and files, log-files and documents.
– DocumentRoot
The document folder is the directory, where the server tries to locate the
file, in case no path was specified within the url. Only one DocumentRoot
can be defined in the resource list of the Apache Web-Servers.
– UserDir
UserDir makes it possible for the web-server to access documents out of
the user’s home directory.
Example: http:/server/~username/document.htm
Computer Net Lab/Praktikum Datenverarbeitung 2
18
HTTP-Server (3)
Configuration panel for IIS (Windows 2000)
Computer Net Lab/Praktikum Datenverarbeitung 2
19
Static Internet Pages
• Pages (content) are already available before they are requested
• Pages are quickly available
• The Server does not need any additional services (applications)
like: Interpreter, Database.
• Interaction with Server is limited to links
• Pages can be computed, respectively displayed, on the client
computer, without any additional procedures
Computer Net Lab/Praktikum Datenverarbeitung 2
20
HTML (1)
•
•
•
•
•
HTML (Hypertext Markup Language)
Markup language: it describes the logical part of a text oriented document.
HTML offers the possibility to define typical elements of a text oriented
document, like: header, paragraphs, lists, tables or graphical references.
Advantages:
– HTML is a so called clear text format (can be edited with every text editor)
– Easy to learn
Disadvantages:
– No separation between form and content
– Design and Interaction possibilities are limited
Computer Net Lab/Praktikum Datenverarbeitung 2
21
HTML (2)
<html>
<head>
<title>Beispiel 1</title>
</head>
<body>
Textfeld<br>
</body>
</html>
Browser
Computer Net Lab/Praktikum Datenverarbeitung 2
22
Dynamic Internet Pages (Server1)
•
•
•
•
Page content is generated (immediately) after request
Access may be slower, due to the need of page generation
System has to have adequate resources
Optional applications possible
– Database access
– Graphics generation
– Access of processes (application), which offer interfaces
• General 2 methods
– GGI (Common Gateway Interface)
i.e.: perl, c++
– As a modul (server extension)
i.e.: php
Computer Net Lab/Praktikum Datenverarbeitung 2
23
Dynamic Internet Pages (Server2)
Server
Client
CGI
Request
Generated
HTML-File
Computer Net Lab/Praktikum Datenverarbeitung 2
DB
Generated
HTML-File
24
Dynamic Internet Pages (Client)
• DHTML
• Browser can execute (interpret) scripts, which are included in
HTML-Files.
• By the use of a script language a dynamic page can be created
on the client.
• Example: JavaScript (Browser independent)
Alternatively JavaScript can be embedded in the HTML-File or it
can be located in a separate file. JavaScript is interpreted by the
web browser at runtime. Therefore modern web browser have an
interpreter software integrated.
Example
Computer Net Lab/Praktikum Datenverarbeitung 2
25
Sessions
• HTTP is a stateless protocol
• After the request (and response) for a web page the connection
between client and server is terminated
• Server do not have a history list or anything similar, which means
that two consecutive requests from the same client are treated
as two different independent requests
• How is this problem solved? i.e. online shops
Computer Net Lab/Praktikum Datenverarbeitung 2
26
Sessions (2)
• Implementation of a mechanism, which generates (on the server)
an unique session-ID at the first request. It will be sent with each
further client request to the server.
• Session ID is transmitted
– Within the URL, which means each link, used within a
session, includes the session-ID
– With use of cookies
max 4 KB text files, which are initiated by the server and sent
to the client. They can be used by the client on demand.
Computer Net Lab/Praktikum Datenverarbeitung 2
27
Php
•
•
•
•
•
•
•
•
PHP is an interpreted language
Platform independent (Windows/UNIX)
Easy Syntax (C-similar)
Easy to integrate in http-Servers (Apache, IIS)
Powerful functions (database access, graphical libraries, etc)
Free Software (no license costs)
Frequently used (as well by public providers)
A lot of ready-to-use modules (forums, web pages, sample scripts)
Computer Net Lab/Praktikum Datenverarbeitung 2
28
PHP: Structure
• PHP can be embedded in HTML documents or used as pure
PHP files.
– The PHP code is between two tags:
<?php
and
?>
– The file name has in both cases the extension .php
• Each command ends in PHP by a semicolon „;“ or by the PHP
end tag.
• Example
Computer Net Lab/Praktikum Datenverarbeitung 2
29
PHP: Comments
• Comments in PHP are characterized as follows:
– By the symbol # or //
Denotes the following text, until the end of the line as a
comment.
– by /* … */
Hereby the enclosed text is denoted as a comment.
Computer Net Lab/Praktikum Datenverarbeitung 2
30
PHP: Variables
• PHP uses an automatic data type conversion (i.e. integer to
string, etc.).
• Definition:
– Variables
$variable_name=“value“
– Arrays
$Array_name = array {
value1,
value2,
…
}
Computer Net Lab/Praktikum Datenverarbeitung 2
31
PHP: Control Structures
IF (condition) {
# instructions, if condition is true
}
ELSEIF (further conditions) {
# instructions, if the first condition was false and this condition is
true
}
…
ELSE {
# instructions, if all conditions are false
}
Computer Net Lab/Praktikum Datenverarbeitung 2
32
PHP: Loops
•
WHILE-loop
WHILE (condition) {
# instructions, execute while condition is true
}
•
FOR-loop
FOR (start value; condition; instruction) {
# instructions
}
Computer Net Lab/Praktikum Datenverarbeitung 2
33
PHP: Functions
FUNCTION function_name (variables as parameters) {
# instructions
# optional: RETURN (return value);
}
Computer Net Lab/Praktikum Datenverarbeitung 2
34
PHP: Text Output
• TEXT (HTML-Code) generation with PHP using the command
„PRINT“
commands:
– PRINT („output text“);
– PRINT ($variable);
– PRINT ($variable.“output text“);
Computer Net Lab/Praktikum Datenverarbeitung 2
35
PHP: File Operations
• Open file for writing
• Save data in file
• Read data from file
Important: adequate file permissions are required!!!
Computer Net Lab/Praktikum Datenverarbeitung 2
36
PHP: hand over data
• The array $HTTP_POST_VARS contains all the variables
handed over via POST method. i.e.: from a form via POST.
• The Array $HTTP_GET_VARS contains all the variables handed
over via GET method. i.e.: from a form via GET.
• Example
Computer Net Lab/Praktikum Datenverarbeitung 2
37
Sample Program
Source-Code
of the example
Computer Net Lab/Praktikum Datenverarbeitung 2
38
Links about PHP/HTML
•
PHP developers homepage
http://www.php.net
•
selfhtml: Excellent document (tutorial) about HTML and more
http://selfaktuell.teamone.de/
Computer Net Lab/Praktikum Datenverarbeitung 2
39