hello world - boun.edu.tr

Download Report

Transcript hello world - boun.edu.tr

TC KIMLIK CHECKSUM
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long
long
long
long
long
long
long
long
long
int
ETM 555
long
long
long
long
long
long
long
long
long
i ;
tcKimlikNoNumber ;
d[10] ;
tmp1 = 0 ;
tmp = 0 ;
odd_sum = 0 ;
even_sum = 0 ;
total = 0 ;
chkDigit1 = 0 ;
chkDigit2 = 0 ;
1
for(tcKimlikNoNumber = 19000000000 ; tcKimlikNoNumber < 20000000000 ;
tcKimlikNoNumber++) {
tmp =tcKimlikNoNumber / 100 ;
tmp1 = tcKimlikNoNumber / 100 ;
for (i = 9; i > 0; i--) {
d[i] = tmp1 % 10 ;
tmp1 = tmp1 / 10 ;
}
odd_sum = d[9] + d[7]+ d[5]+ d[3]+ d[1];
even_sum = d[8] + d[6] + d[4] + d[2];
total = odd_sum * 3 + even_sum;
chkDigit1 = (10 - (total % 10)) % 10;
odd_sum = chkDigit1 + d[8] + d[6] + d[4] + d[2];
even_sum = d[9] + d[7] + d[5] + d[3] + d[1];
total = odd_sum * 3 + even_sum;
chkDigit2 = (10 - (total % 10)) % 10;
tmp = tmp * 100 + chkDigit1 * 10 + chkDigit2;
if (tmp != tcKimlikNoNumber) {
/* printf("Gecersiz TC Kimlik Numarasi: %lld\n",tcKimlikNoNumber) ;
;
}
else {
printf("Gecerli TC Kimlik Numarasi: %lld\n",tcKimlikNoNumber) ;
}
}
*/
return(0) ;
}
ETM 555
2
HTML
• Hypertext Markup Language
• Identifies the elements of a page so that a browser such as MS Internet
Explorer or Netscape can render that page on the computer screen
• Static page description
• WYSIWYG web page authoring tools
- MS Frontpage
- Dreamweaver
- Home Site
ETM 555
3
HTML Example Source
<HTML>
<HEAD>
<TITLE> Hello </TITLE>
</HEAD>
<BODY>
<P> Hello world </P>
</BODY>
</HTML>
ETM 555
4
HTML Form Example
<HTML><HEAD>
<TITLE> Hello </TITLE>
</HEAD>
<BODY>
<FORM METHOD="GET" ACTION="http://localhost/cgi-bin/ex.cgi >
<INPUT TYPE="text" NAME="word">
<INPUT TYPE="submit" VALUE="Submit word">
</FORM>
</BODY>
</HTML>
ETM 555
5
GET and POST METHODS
• GET method passes form input as part of the URL to the server side
program:
http://www.yahoo.com/cgi-bin/process.cgi?firstname=ali&last=veli
• POST method passes input to the standard input of the server side
program:
firstname=ali
last=veli
ETM 555
6
HTML5
• HTML5 is the next generation of HTML
• HTML5 will be the new standard for HTML, XHTML, and the HTML
DOM.
• The previous version of HTML came in 1999. The web has changed a lot
since then.
• HTML5 is still a work in progress. However, most modern browsers have
some HTML5 support.
• Examples:
– http://html5demos.com/
ETM 555
7
HTML5
• Some of the most interesting new features in HTML5:
– The canvas element for drawing
– The video and audio elements for media playback
– Better support for local offline storage
– New content specific elements, like article, footer, header, nav, section
– New form controls, like calendar, date, time, email, url, search
ETM 555
8
JAVASCRIPT
• Scripting language
• Browser contains Javascript interpreter which processes the commands
in the script
• Processed by client
ETM 555
9
Javascript Example Source
<HTML>
<HEAD>
<TITLE> Hello </TITLE>
<SCRIPT LANGUAGE= "Javascript" >
function sayhello()
{
document.writeln("<p> Hello world </p>") ;
}
</SCRIPT>
</HEAD>
<BODY ONLOAD= "sayhello()" > </BODY>
</HTML>
ETM 555
10
CSS (Cascading Style Sheets)
• Allow you to specify the style of your page elements (spacing, margins
etc) separately from the structure of your documents (section headers,
body, text, links etc)
• “Separation of Structure from Content” allows greater manageability
and makes changing the style of the document easier.
ETM 555
11
CSS Example Source
• inline style (w/o CSS)
<HTML>
<HEAD> <TITLE> Hello </TITLE> </HEAD>
<BODY>
<P STYLE= “font-size: 20 pt” > Hello world </P>
</BODY></HTML>
ETM 555
12
CSS Example Source
• css style sheet
<HTML>
<HEAD>
<TITLE> Hello </TITLE>
<STYLE TYPE = “text/css”>
P {font-size: 20 pt }
</STYLE>
</HEAD>
<BODY>
<P > Hello world </P>
</BODY></HTML>
ETM 555
13
CSS Example Source
• importing the css file:
<HTML>
<HEAD>
<TITLE> Hello </TITLE>
<LINK REL = “stylesheet” TYPE=“text/css” HREF = “styles.css”
</HEAD>
<BODY>
<P > Hello world </P>
</BODY></HTML>
ETM 555
14
XML-Extensible Markup Language
• HTML markup is for displaying information
• XML markup is for describing data of virtually any type
• XML enables creation of new markup languages to markup anything
imaginable (such as mathematical formulas, records etc)
• In XML, new tags can be created
• Data is structured in a hierarchical manner
ETM 555
15
XML example
<? xml version = “1.0”>
<person>
<firstname> Ali </firstname>
<lastname> Veli </lastname>
<married> yes </married>
<wife>
<firstname> Ayse </firstname>
<lastname> Mehmet </lastname>
</wife>
</person>
ETM 555
16
XML Document Model
•
A “document model” is used to enforce structure within a
document
•
Two types of document models for XML:
– DTD – Document Type Definition
– XML Schema
•
Document models are not required in XML
ETM 555
17
Validating Parsers
•
A validating parser will check an XML document’s structure
against a DTD or XML Schema
•
•
Documents that conform to a document model are “valid”
Validating parsers will report an error if the document does not
conform to it’s document model, even if it is well-formed
ETM 555
18
DTD Example: XML File
•
•
•
•
•
•
•
•
1
2
3
4
5
6
7
8
•
•
•
•
•
•
9
10
11
12
13
14
ETM 555
<?xml version=”1.0” standalone=”yes”?>
<emails>
<message num=”a1” to=”joe&#64;acmeshipping.com”
from=”brenda&#64;xyzcompany.com” date=”02/09/01”>
<subject title=”Order 10011”/>
<body>
Joe,
Please let me know if order number 10011 has
shipped.
Thanks,
Brenda
</body>
<reply status="yes"/>
</message>
</emails>
19
DTD Example: Internal DTD
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE emails [
<!ELEMENT emails
(message+)>
<!ELEMENT message
(subject?, body, reply*)>
<!ATTLIST message
num
ID
#REQUIRED
to
CDATA
#REQUIRED
from
CDATA
#FIXED
“brenda&#64;xyzcompany.com”
date
CDATA
#REQUIRED>
<!ELEMENT subject
EMPTY>
<!ATTLIST
subject
title
CDATA
#IMPLIED>
<!ELEMENT body ANY>
<!ELEMENT
reply
EMPTY>
<!ATTLIST reply
status
(yes | no)
"no">
]>
ETM 555
20
XML Schema
•
XML Schema specification released by the W3C in May 2001, and
contains two parts:
– Part I - structure
– Part II - data types
•
•
Developed as an alternative to DTD’s and is much more powerful
Features:
– Pattern matching
– Rich set of data types
– Attribute grouping
– Supports XML namespaces
– Follows XML syntax
ETM 555
21
XML Schema Example
1 <?xml version=”1.0”?>
2 <message
3
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
4
xsi:noNamespaceSchemaLocation = "message_schema.xsd">
5
<to>Joe Poller</to>
6
<from>Brenda Lane</from>
7
<date_sent/>
8
<subject>Order 10011</subject>
9
<body>
10
Joe,
11
Please let me know if order number 10011 has
shipped.
12
Thanks,
13
Brenda
14
</body>
15 </message>
ETM 555
22
XML Schema Example
1
2
3
4
5
6
7
8
9
10
12
12
13
14
<?xml version=”1.0”?>
<xsd:schema xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>
<xsd:element name=”message”>
<xsd:complexType>
<xsd:sequence>
<xsd:element name=”to” type=”xsd:string”
minOccurs-“1”
maxOccurs=”unbounded”/>
<xsd:element name=”from” type=”xsd:string” minOccurs=”1”/>
<xsd:element name=”date_sent” type=”xsd:date”/>
<xsd:element name=”subject” type=”xsd:string”/>
<xsd:element name=”body” type=”xsd:string”/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
ETM 555
23
ASP/PHP
•
Javascript is client side scripting language
• ASP/PHP are server side scripting languages
• ASP/PHP process pages on the server and return the results in the form
of HTML source to the client (browser)
• ASP is Microsoft product
ETM 555
24
PHP Example 1
<html>
<body>
<?php $db = mysql_connect("localhost", "root");
mysql_select_db("mydb",$db);
$result = mysql_query("SELECT * FROM employees",$db);
printf(“<p>First Name: %s</p>\n",
mysql_result($result,0,"first"));
printf(“<p>Last Name: %s</p>\n",
mysql_result($result,0,"last"));
printf(“<p>Address: %s</p>\n",
mysql_result($result,0,"address"));
printf(“<p>Position: %s</p>\n",
mysql_result($result,0,"position"));
?>
</body>
</html>
ETM 555
25
PHP Example 2
<html> <body>
<?php if ($submit) { // process form
$db = mysql_connect("localhost", "root");
mysql_select_db("mydb",$db);
$sql = "INSERT INTO employees (first,last,address,position) VALUES
('$first','$last','$address','$position')";
$result = mysql_query($sql);
echo "Thank you! Information entered.\n";
} else{ // display form
?>
<form method="post" action="<?php echo $PHP_SELF?>">
First name:<input type="Text" name="first"><br>
Last name:<input type="Text" name="last"><br>
Address:<input type="Text" name="address"><br>
Position:<input type="Text" name="position"><br>
<input type="Submit" name="submit" value="Enter information">
</form>
<?php
} // end if
?>
</body> </html>
ETM 555
26
PHP-MYSQL PROGRAMMING
MYSQL Commands
CREATE TABLE tablename ( columnname typ modifiers,
columnname typ modifiers,
…..)
SELECT fieldname1, fieldname2,.. FROM tablename WHERE criteria
SELECT fieldname1, fieldname2,.. FROM tablename ORDER BY
fieldname ASC
DSC
ETM 555
27
PHP-MYSQL PROGRAMMING
INSERT INTO tablename (fieldname1, fieldname2,…) VALUES
(‘value1’, ‘value2’, … )
UPDATE tablename SET fieldname1=‘value1’, fieldname2=‘value2’
WHERE criteria
DELETE FROM tablename WHERE criteria
ETM 555
28
CGI
• Common Gateway Interface
• Protocol to enable running programs on the web server
•These programs produce HTML output which is sent to the client (browser)
•Programs can be written in any language (most popular is PERL)
ETM 555
29
PERL
•
Practical Extraction and Report Language
•
Became popular with CGI programs
•
High level – rich and easy to use pattern matching, text processing
operators
• Lots of free PERL modules (packages) are available that make
programming easy:
-networking modules
-Html/XMP parser, CGI modules
• Extremely useful for developing automated pograms that surf the Internet
ETM 555
30
Automated Web Page Downloader
#!/usr/local/bin/perl
use LWP::UserAgent ;
use HTML::TokeParser ;
$options{"agent"} = "Mozilla/4.6 [en] (X11; I; SunOS 5.7 sun4u)";
my $agent
= new LWP::UserAgent(%options);
my $request = new HTTP::Request('GET' => $ARGV[0] ) ;
my $response = $agent->request($request) ;
if ( $response->is_success() ) {
print($response->content()) ;
} else {
print("Error: " . $reponse->status_line() . "\n" ) ;
die ;
}
ETM 555
31
CGI Life Cycle
• Server receives a request for a CGI program
• Server creates a new process to run the CGI program
• Server passes information to the program:
– via environment variables and standard input.
ETM 555
32
CGI – Based Web Server
Main Process
Request for CGI1
Child process for CGI1
Request for CGI2
Child process for CGI2
Request for CGI1
Child process for CGI1
ETM 555
33
Problems with CGI
• Expensive to create a process for each request:
– requires time and significant server resources,
– limits the # of requests a server can handle concurrently
• Stateless: No history remembered
– A big problem for web-based development
– Solutions: cookies
– Still expensive
ETM 555
34
Problems with CGI
• Once the CGI program starts:
– It cannot interact with the web server
– It takes advantage of the server's abilities once it begins execution
• Reasons: the program is running in a separate process.
• Example, a CGI script cannot write to the server's log file.
ETM 555
35
Ways to Improve CGI Performance
• FastCGI
• mod_perl
• Other solutions
ETM 555
36
FastCGI
•
•
•
•
Developed by a company “Open Market”
FastCGI creates a single persistent process for each FastCGI program
It eliminates the need to create a new process for each request.
See: http://www.fastcgi.com/
ETM 555
37
FastCGI
•
No need to start multiple processes for different requests for the same
fastcgi program
• Still needs one process for each cgi program.
• It does nothing to help the FastCGI program to interact more closely
with the server.
– Not implemented by some of the more popular servers, i.e.,
Microsoft's Internet Information Server.
• Not very portable
ETM 555
38
FastCGI – Based Web Server
Main Process
Request for CGI1
Single Child process for
CGI1
Request for CGI2
Request for CGI1
ETM 555
Single Child process for
CGI2
39
Mod_perl
• Used in the Apache web server
• mod_perl is a module that embeds a copy of the Perl interpreter into the
Apache httpd executable
•
•
•
•
Providing complete access to Perl functionality within Apache
CGI scripts are precompiled by the server and executed without forking,
Thus running much more quickly and efficiently.
http://perl.apache.org/
ETM 555
40
Server Extension APIs
• Proprietary server extension APIs
for example:
– Netscape provides an internal API called NSAPI
– Microsoft provides ISAPI
– Exist within the main process of a web server
ETM 555
41
Server Extension APIs
Advantages
• Using one of these APIs, one can write server extensions that enhance or
change the base functionality of the server
• Allowing the server to handle tasks that were once assigned to external
CGI programs.
• Use linked C or C++ code
– Thus can run extremely fast; and
– make full use of the server's resources.
ETM 555
42
Web Server with Server Extension API
Main Process
Request for
ServerExtension1
ServerExtension1
Request for
ServerExtension2
ServerExtension2
Request for
ServerExtension1
ETM 555
43
Server Extension APIs
Disadvantages
• Difficult to develop and maintain
• Pose significant security and reliability hazards
– a crashed server extension can bring down the entire server.
• Proprietary server extensions are tied to the server API on a particular OS
– Not very portable
ETM 555
44
JAVA
• Introduced by SUN Microsystems
• Object oriented programming language
• Java compiler creates bytecodes that are interpreted by java
bytecode interpreter
• Portable bytecode
• Java can be used to create dynamic content on web pages
• Java applets: are programs that can be embedded in HTML
documents. Browser (i.e. client) executes the applets.
ETM 555
45
JAVA Servlets
• A servlet is a server-side version of an applet
• Servlets are executed on the server under the control of web server
• Servlets are called from HTML just as with applets
• Servlet receive a request and returns a response to the client in the form
of an HTML source
• Often used as alternative to CGI programs
• Some advantages:
- CGI programs start, execute and stop providing no way to save
information whereas servlet continue to run (hence capable of saving
information)
- Large set of APIs
- Can be faster than CGI
ETM 555
46
Java Servlet Based Web Server
Main Process
Request for
Servlet1
thread
Request for
Servlet2
thread
Servlet1
thread
JVM
Servlet2
Request for
Servlet1
ETM 555
47
AJAX Technologies
(Asynchronous Javascript and XML)
•
Ajax programming uses combination of :
– XHTML/HTML and CSS for formatting.
– DOM accessed with a client-side scripting language such as
JavaScript to dynamically display and interact with the
information presented.
– XMLHttpRequest object is used to exchange data
•
asynchronously with the web server without leaving the
current page
– XML is used for transferring data between the server and
client, (any other format can also be used).
Example: Gmail uses ajax technologies
ETM 555
48
JQUERY
•
•
•
•
•
jQuery is a library of JavaScript Functions.
jQuery greatly simplifies JavaScript programming
jQuery is easy to learn
jQuery is a lightweight "write less, do more" JavaScript library
http://jquery.com/
ETM 555
49
JQUERY
• The jQuery library contains the following features:

HTML element selections

HTML element manipulation

CSS manipulation

HTML event functions

JavaScript Effects and animations

HTML DOM traversal and modification

AJAX

Utilities
ETM 555
50
Web Services Technologies
•
•
•
•
XML-RPC
SOAP
WSDL
UDDI
ETM 555
51
WSDL
( Web Services Description Language )
•
WSDL is a document written in XML which describes a web
service. It specifies the location of the service and the
operations (or methods) the service provides.
ETM 555
52
XML-RPC
•
XML-RPC uses a simple XML application to express function
calls (requests) and returned values (responses) between clients
and servers.
•
The heart of an XML-RPC message is the way data is encoded
into XML.
ETM 555
53
SOAP
( Simple Object Access Protocol )
SOAP :
•
•
•
•
•
•
•
•
•
XML based protocol to let applications exchange information over HTTP
Protocol for accessing a Web Service.
A communication protocol
For communication between applications
Provides a format for sending messages
Designed to communicate via Internet
Platform independent
Language independent
Simple and extensible
ETM 555
54
WSDL
( Web Services Description Language )
•
WSDL is a document written in XML which describes a web
service. It specifies the location of the service and the
operations (or methods) the service provides.
ETM 555
55
UDDI
( Universal Description, Discovery and Integration )
•
UDDI is a directory service where businesses can register and
search for web services.
 UDDI communicates via SOAP
 Web service interfaces in UDDI is described by WSDL
ETM 555
56