Computer Network Lab 2017 Fachgebiet Technische Informatik, Joachim Zumbrägel Overview Internet Internet Protocols Fundamentals about HTTP Communication HTTP-Server, mode of operation Static/Dynamic Webpages HTML PHP programming 1
Internet Server Internet Data: Text, Audio, Video, Graphics,etc Connection via TCP/IP-Protocol Client History The WWW is 26 years old On the 30 th April 1993 Tim Berners-Lee declared: Everyone is allowed to use the WWW and all possibilities it offers without any licenses. A good idea. 2
Internet Services E-Mail WWW Chat Internet News FTP ssh/telnet Cloud Applications Internet Protocols HTTP HTTPS FTP SMTP NNTP. Data Server Client Internet Connection via Internet Protocol 3
Protocols Application HTTP FTP SMTP DNS SNMP RIP Transport TCP UDP Internet IP Phys. Network Ethernet Token-Ring ATM HTTP (Hyper Text Transfer Protocol) Two Types of 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 4
HTTP (interactions) HTTP Interaction Principles : Connection establishment TCP-Connection from Client to Server (usually Port 80 on the Server) Request from Client to Server Method selection and additional parameters for the method Response from Server to Client Result as a status code additional parameters for the result Connection termination usually ending the connection newer versions (newer then HTTP/1.1) can keep connection longer alive HTTP (Request 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 DELETE deletes a resource TRACE allows tracking of the processing of requests 5
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 HTTPS (2) Application HTTPS Security SSL Transport TCP Internet IP Phys. Network Ethernet Token Ring ATM 6
Client Server Principle Client with Webbrowser Request over http request Webserver TCP/IP Results http answer IP-Adresse TCP/IP HTTP Network 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-due.de/netlab/student.php?matr=123456 access method: http computer name: www.uni-due.de port: standard port (80 for HTTP), here not specified document: netlab/students.php(path/filename) Query string: matr=123456 7
Domain Names Domain name: ti.uni-due.de de: first layer name (top-level-domain) uni-due: second layer name ti: third layer name de uni-due.de ti.uni-due.de IP-Addresses and Ports TCP/IP operates by IP-Addresses and Ports each IP-Adresse has 2 16 potential ports The ports below 1024 are standardized (standard ports), which are allocated to dedicated services, i.e.: 23 telnet 25 smtp 80 http 443 https 23 25 80 443....... 30000. 8
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 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 like: 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 9
HTTP-Server (2) Apache-Server configuration is done using the file httpd.conf. This file is read in and evaluated when starting the server. 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 HTTP-Server (3) 10
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 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, like: headers, paragraphs, lists, tables, 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 11
HTML (2) <html> <head> <title>beispiel </title> </head> <body> Textfeld<br> </body> </html> Browser Dynamic Internet Page (server 1) 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 12
Dynamic Internet Page (server 2) Client Request PHP Modul DB Generated HTML-File Generated HTML-File Dynamic Internet Page (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) JavaScript is interpreted by the web browser at runtime. Therefore modern web browser have an interpreter software integrated. Example 13
Sessions (1) 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 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. 14
PHP PHP is an interpreter language Platform independent (Windows/UNIX) Easy Syntax (C-similar) Easy to integrate in http-servers (Apache, IIS) Powerful functions (database access, etc.) Free Software (no license costs) Frequently used (as well by public providers) A lot of ready-to-use modules (forum, samples) HP POP: 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. 15
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,, valuen} 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 } 16
PHP: Loops WHILE-loop WHILE (condition) { # instructions, execute while condition is true } FOR-loop FOR (start value; condition; instruction) { # instructions } PHP:Functions FUNCTION function_name (variables as parameters) { # instructions # optional: RETURN (return value); } 17
PHP: Text String concatenation via. Output (TEXT) generation with PHP using the command print or echo Example: $str1 = Hello ; $str2 = Students ; $str1and2 = $str1.$str2; echo($str1and2.<br>); print ($str1and2. are you fine? ); Output visible in your browser => Hello Students Hello Students are you fine? PHP: File operations Open file for writing Save data in file Read data from file Important: adequate file permissions are required!!! Example for reading the content of a file, each line of the file is stored in a separate array field: $filedata = file ( filename ); 18
PHP: hand over data Remember, you can send data from the browser to the server via 2 different methods in http: post or get 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 PHP: Example Source-Code of the example 19
Links PHP developers homepage http://www.php.net selfhtml: Excellent document (tutorial) about HTML and more http://www.selfhtml.org/ 20