Kurs WWW – czyli opowieści niesamoWWWite
Download
Report
Transcript Kurs WWW – czyli opowieści niesamoWWWite
Kurs WWW
Paweł Rajba
[email protected]
http://www.ii.uni.wroc.pl/~pawel/
O czym to będzie?
HTTP
HTML/XHTML
CSS
JavaScript
PHP
Java (JSP)
XML
Serwery WWW
ASP.NET
Literatura
Dokumenty RFC
http://www.ietf.org/rfc/
http://rfc.sunsite.dk/
W3 Konsorcjum
http://www.w3.org/
HTTP
RFC2616, RFC2817 – protokół HTTP 1.1
RFC1738, RFC2396 – URL, URI
Literatura c.d.
HTML 4
http://www.w3.org/TR/html4/
http://validator.w3.org/
http://webmaster.helion.pl/kurshtml/
CSS
http://www.w3.org/Style/CSS/
http://www.w3.org/TR/CSS2/
http://jigsaw.w3.org/css-validator/
Literatura c.d.
JavaScript
http://devedge.netscape.com/central/javascript/
PHP
http://www.php.net/
Java, JSP
http://java.sun.com/
http://java.sun.com/products/jsp/
Literatura c.d.
XML
http://www.w3.org/XML/
http://www.w3.org/TR/xmlbase/
http://www.w3.org/Style/XSL/
http://www.w3.org/TR/2004/REC-xml-20040204/
ASP.NET
http://www.microsoft.com/
http://msdn.microsoft.com/
Narzędzia
Macromedia Dreamweaver MX 2004
http://www.macromedia.com/
Microsoft FrontPage 2000
Microsoft Visual Studio .NET
http://www.microsoft.com/
HotDog 7.03
http://www.sausage.com/
Pajączek 5 NxG
http://www.creamsoft.com.pl/
Narzędzia c.d.
WebEdit 2002, EasyCSS 2003
http://www.harman2k.co.uk/
ConTEXT
http://fixedsys.com/context/
Adobe Photoshop 6
http://www.adobe.com/
GIMP 1.3
http://www.gimp.org/
http://www2.arnes.si/~sopjsimo/gimp/ [Win32]
Protokół HTTP/1.1
URI, URL, URN
URI, czyli Uniform Resource Identifier
URL, czyli Uniform Resource Locator
URN, czyli Uniform Resource Name
Spojrzenie
Klasyczne (URI = [URL lub URN])
Obecne (URI = URL)
Protokół HTTP/1.1 c.d.
Składnia URI
<scheme>://<authority><path>?<query>
Przykłady typowych schematów
http://localhost:80/index.php?z1=w1&z2=w2
ftp://user:[email protected]:21/dokument.txt
mailto:[email protected]
news://pl.comp.os.linux/
telnet://156.17.4.4/
Protokół HTTP/1.1 c.d.
Przykład schematu http
http://my.host.pl:8080/index.php?z1=w1&z2=w2
http: – schemat, rodzaj protokołu
//my.host.pl – autoryzacja, nazwa hosta
8080 – nr portu
/index.php – ścieżka do zasobu
z1=w1&z2=w2 – zapytanie
Protokół HTTP/1.1 c.d.
Metody protokołu HTTP
GET – pobiera zasoby,
HEAD – działa tak samo jak GET, ale zwraca
tylko sam nagłówek bez treści dokumentu,
POST – przesłanie danych do serwera
DELETE- żąda, aby serwer usunął zasób,
OPTIONS – pozwala klientowi ustalić opcje
i/lub wymagania związane z danym zasobem
(np. listę dostępnych metod).
Protokół HTTP/1.1 c.d.
Nagłówki ogólnego przeznaczenia
Cache-Control:
żądanie: no-cache|no-store – warunki
buforowania
odpowiedź: public|private – określa rodzaj
cache’a (wspólny, prywatny)
Connection: keep-alive|close – typ połączenia
Date: HTTP-date – data utworzenia
Pragma: no-cache – informacje dla serwerów
pośredniczących
Protokół HTTP/1.1 c.d.
Nagłówki klienta
Accept: typ/podtyp – akceptowane typy
danych
Accept-Charset: alfabet – akceptowany
zestaw znaków
Accept-Encoding: compress | gzip | deflate –
metoda kodowania
Accept-Language: język – akceptowany język
Host: nazwa-hosta[:port]
Protokół HTTP/1.1 c.d.
Nagłówki klienta c.d.
If-Modified-Since: HTTP-date – jeśli
dokument został zmodyfikowany od data
Range: bytes=początek-koniec – wybieramy
fragment dokumentu
Referer: URI – adres URL dokumentu
zawierającego odwołanie do adresu
żądanego dokumentu
User-Agent: nazwa – informacje o kliencie
Protokół HTTP/1.1 c.d.
Nagłówki serwera
Accept-Ranges: bytes | none – czy serwer
akceptuje żądania cześci dokumentu
Location: URI – nowy adres zasobu
Retry-After: HTTP-date | delta-miliseconds –
informuje po jakim czasie należy ponownie
pobrać zasób (razem z kodem 5xx lub 3xx)
Server: product – informacje o sofcie po
stronie serwera
Protokół HTTP/1.1 c.d.
Pola zawartości
Allow: GET, HEAD – dozwolone metody
Content-Encoding: gzip – rodzaj kodowania
Content-Language: en - język
Content-Length: liczba – wielkość dokumentu
Content-Range: początek-koniec/rozmiar –
pobrano bajty od początek do koniec, a
całość ma rozmiar rozmiar
Protokół HTTP/1.1 c.d.
Pola zawartości c.d.
Content-Type: text/html; charset=ISO-8859-2
– typ zawartości dokumentu
Expires: HTTP-date – moment, po którym
dokument jest już nieaktualny
Last-Modified: HTTP-date – data ostatniej
modyfikacji dokumentu
Protokół HTTP/1.1 c.d.
Kody odpowiedzi
1xx – informacyjne, żądanie zostało przyjęte
2xx – pomyślne, żądanie zostały poprawnie
przetworzone
3xx – przeadresowanie, w celu zakończenia
czynności trzeba podjąć dalsze kroki
4xx – błędny URL lub inny błąd występujący
po stronie klienta
5xx – błąd w pracy serwera
Protokół HTTP/1.1 c.d.
Przykładowa komunikacja
Żądanie:
swiatowit:pawel:~> telnet www.ii.uni.wroc.pl 80
Trying 156.17.4.1...
Connected to swiatowit.ii.uni.wroc.pl.
Escape character is '^]'.
GET /~pawel/index.html HTTP/1.1
Host: www.ii.uni.wroc.pl
Connection: keep-alive
Protokół HTTP/1.1 c.d.
Przykładowa komunikacja c.d.
I odpowiedź:
HTTP/1.1 200 OK
Date: Sat, 21 Feb 2004 19:34:11 GMT
Server: Apache/1.3.28 (Unix) mod_ssl/2.8.15
OpenSSL/0.9.6h PHP/4.3.4
Last-Modified: Tue, 08 Oct 2002 16:48:55 GMT
ETag: "bc6b-339-3da30c77"
Accept-Ranges: bytes
Content-Length: 825
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html
<!-- Treść dokumentu -->
HTML
Typy dokumentów HTML
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
HTML
Struktura dokumentu
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
<!–- Nagłówek dokumentu -->
</HEAD>
<BODY>
<!-- Treść dokumentu -->
</BODY>
</HTML>
HTML
Nagłówek, czyli znacznik HEAD
TITLE – tytuł dokumentu wyświetlany w
pasku przyglądarki
META – metainformacje
LINK – wzajemne relacje między
dokumentami
BASE – adres bazowy dla relatywnych
odwołań ze strony
HTML
Nagłówek, META
name, content – atrybuty zawierające
dodatkowe informacje o dokumencie
http-equiv, content – atrybuty zawierające
nagłówki serwera protokołu HTTP
lang – określa język wartości atrybutu content
scheme – określa dodatkowy kontekst, który
ułatwia interpretację zawartości content
HTML
Nagłówek, META, przykłady
<META name="Author" content="Paweł Rajba">
<META name="Keywords" content="Rajba,Paweł,java,jsp">
<META name="Description" content="Strona domowa">
<META name="Generator" content="Dreamweaver MX 2004">
<META name="Revisit-After" content="14 days">
<META name="Robots" content="">
Ogólna składnia content dla Robots
content = "ALL" | "NONE" | directives
directives = directive ["," directives]
direcitve = INDEX,NOINDEX,FOLLOW,NOFOLLOW
HTML
Nagłówek, META, BASE, przykłady
<META http-equiv="Content-Type"
content="text/html; charset=iso-8859-2">
<META http-equiv="Expires"
content="Wed, 26 Apr 2001 08:21:57 GMT">
<META http-equiv="Refresh" content="10">
<META http-equiv="Refresh„
content="10; URL=http://www.onet.pl/">
<META http-equiv="Pragma" content="no-cache">
<BASE href="http://www.ii.uni.wroc.pl/"
target="main_frame">
HTML
Nagłówek, LINK, atrybuty:
charset – kodowanie wskazywanego zasobu
href – adres zasobu
type – typ zawartości
rel – typ dokumentu wskazywanego
rev – typ dokumentu, z którego jest
odwołanie do bieżącego dokumentu
HTML
Nagłówek, LINK, typy dokumentów (rel)
Alternate – alternatywna wersja dokumentu,
często stosowana z atrybutem lang
StyleSheet – zewnętrzny arkusz styli
Start – strona startowa w kolekcji
dokumentów
Next – następna strona w kolekcji
Prev – strona poprzednia w kolekcji
Index – index kolekcji dokumentów
HTML
Nagłówek, LINK, typy dokumentów (rel) c.d.
Contents – spis treści (ang. Table of
Contents) dokumentów w kolekcji
Glosssary – słownik pojęć
Copyright – prawa autorskie dla dokumentu
Appendix – appendix dla kolecji dokumentów
Help – plik z dodatkową pomocą,
informacjami linkami itp.
HTML
Nagłówek, LINK, przykłady
<LINK href="style.css" type="text/css"
rel="StyleSheet">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
<TITLE>Chapter 2</TITLE>
<LINK rel="Index" href="../index.html">
<LINK rel="Next" href="Chapter3.html">
<LINK rel="Prev" href="Chapter1.html">
</HEAD>
...reszta dokumentu...
HTML
Przykładowy nagłówek:
<HEAD>
<TITLE>Strona domowa Pawła Rajby</TITLE>
<META name="Author" content="Paweł Rajba,
[email protected]">
<META name="Copyright" content="©
2004 Paweł Rajba">
<META name="Keywords" lang="pl"
content="Rajba,java,jsp,php,algorytmy,sieci">
<META name="Keywords" lang="en"
content="Rajba,java,jsp,php,algorithms,networks">
<META name="Description" content="Strona domowa Pawła
Rajby">
HTML
Przykładowy nagłówek c.d.:
<META scheme="Month-Day-Year" name="Date"
content="10-10-98">
<META name="Revisit-After" content="7 Days">
<META name="Robots" content="Index,Follow">
<META http-equiv="Content-Type" content="text/html;
charset=iso-8859-2">
<META http-equiv="Content-Language" content="pl">
<LINK href="contents.html" type="text/html"
rel="Contents" title="Spis treści">
<LINK href="style.css" type="text/css"
rel="StyleSheet">
<BASE href="http://www.ii.uni.wroc.pl/"
target="main_frame">
</HEAD>
HTML
Podstawowy zestaw atrybutów
id – identyfikator elementu w dokumencie; w
ramach dokumenty identyfikatory muszą być
różne
class – określa zestaw klas elementu
style – definiuje styl elementu
HTML
BODY, czyli treść dokumentu
bgcolor="kolor" – kolor tła
background="URI" – obrazek tła
text="kolor" – kolor tekstu
link="kolor" – kolor linków
vlink="kolor" – kolor odwiedzonych linków
alink="kolor" – kolor aktywnych linków
Wszystkie powyższe atrybuty mają status
Deprecated. W ich miejsce należy używać styli.
HTML
Grupowanie elementów
DIV – elementu typu block
SPAN – element typu inline
Atrybut: align, lang
HTML
Formatowanie tekstu
EM – wyróżnienie
STRONG – mocne wyróżnienie
DFN – definicja
CODE – fragment kodu programu
SAMP – wynik działania programu, skryptu,…
VAR – zmienna, argument programu
ABBR – skróty (np. WWW, HTTP, URI, …)
HTML
Formatowanie tekstu c.d.
TT – czcionka stałej szerokości
I – pochylenie
B – pogrubienie
BIG – "duży" font
SMALL – mały font
STRIKE lub S – przekreślenie (Deprecated)
U – podkreślenie (Deprecated)
HTML
Formatowanie tekstu c.d.
FONT – ustawia czcionkę
size – rozmiar, liczba od 1 do 7 lub relatywnie
np. +1, -3
color
face – lista nazw czcionek
Przykład:
<FONT face="Arial, Helvetica, sans-serif" size="+2"
color="navy">
HTML
Cytowania
BLOCKQUOTE – typu block
Q – typu inline
Atrybut: cite="URL"
Indeksy
SUB – dolny
SUP – górny
HTML
Elementy blokowe
H1-H6 – nagłówki tekstu
ADRESS – adres
P – akapit tekstu
PRE – preformatowany fragment tekstu
BR – złamanie linii
Atrybut: clear="left" | "right" | "both"
HR – linia pozioma
Atrybuty: align, noshade, size, width
HTML
Elementy blokowe c.d.
INS, DEL – elementy mające za zadanie
zaznaczać fragmenty tekstu, które zmieniły
się w kolejnej wersji dokumentu
Atrybuty
cite="URL" – dodatkowa informacja, która ma
pomóc wyjaśnić, dlaczego dokument został
zmieniony
datetime="datetime" – data zmiany dokumentu
HTML
Listy
UL – nienumerowane (Unordered Lists)
type="disc" | "circle" | "square"
compact – większy stopień upakowania
OL – nienumerowane (Ordered Lists)
type="1" | "A" | "a" | "i" | "I"
compact – większy stopień upakowania
Wszystkie powyższe atrybuty są Deprecated.
HTML
Listy c.d.
LI – element listy (List Item)
type=odpowiednio do UL lub OL
value="30" – numer elementu listy
compact – większy stopień upakowania
Wszystkie powyższe atrybuty są Deprecated.
HTML
Listy – przykład
Kod:
<OL start="5" type="A">
<LI>Pierwszy punkt</LI>
<LI value="30">Drugi punkt</LI>
<LI type="1">Trzeci punkt i tutaj value jest 31</LI>
</OL>
Da wynik:
E. Pierwszy punkt
AD. Drugi punkt
31. Trzeci punkt i tutaj value jest 31
HTML
Listy – przykład zagnieżdżania
<UL>
<LI>Dzień pierwszy</LI>
<LI>
<OL><LI>Jedzenie</LI>
<LI>Spanie</LI></OL>
</LI>
<LI>Wszystkie pozostałe dni</LI>
<LI>
<OL><LI>Jedzenie</LI>
<LI>Spanie</LI></OL>
</LI>
</UL>
HTML
Lista definicji
DL – definition list
DT – definition type
DD – definition data
HTML
Lista definicji - przykład
Kod:
<DL>
<DT>Kura</DT>
<DD>Zwierzątko małorolne</DD>
<DT>Łasica</DT>
<DD>Zwierzątko zupełnie nierolne</DD>
</DL>
Wynik:
Kura
Zwierzątko małorolne
Łasica
Zwierzątko zupełnie nierolne
HTML
Tabele – znaczniki TABLE, TR, TH, TD
Mały przykład na początek:
<table>
<tr><th>Nr indeksu</th><th>Ocena</th></tr>
<tr><td>91044</td><td>5.0</td>
<tr><td>91057</td><td>5.0</td>
<tr><td>91088</td><td>5.0</td>
<tr><td>91092</td><td>5.0</td>
</table>
HTML
Tabele, TABLE
summary="tekst"
– opis tabeli
width="50%" | "500"
– szerokość tabeli
border="2"
cellpadding="4"
cellspacing="1"
HTML
Tabele, TR – wiersz w tabeli
align="left" | "center" | "right" | "justify"
valign="top" | "middle" | "bottom"
Tabele, TH, TD – komórka w tabeli
align, valign - wyrównywanie
nowrap – blokuje automatyczne zawijanie wierszy
width="40" – szerokość kolumny
height="20" – wysokość kolumny
Powyższe atrybuty dla TH i TD są Deprecated.
HTML
Tabele
TH, TD c.d.
headers="a1 a2" – id komórek, którą są
nagłówkiem dla bieżącej komórki
scope="row" | "col" | "rowgroup" | "colgroup"
– określa, jaki jest zakres komórki nagłówka
rowspan="4" – łączy wiersze
colspan="2" – łączy kolumny
CAPTION – tytuł tabeli
HTML
Tabela, kolejny przykład
<table cellspacing="2" cellpadding="4"
border="1" bgcolor="aqua" width="80%"
summary="Oceny studentów z kursu WWW">
<tr><th id="n1" scope="col">Indeks</th>
<th id="n2" scope="col">Ocena</th>
<th id="n3" scope="col">Grupa</th></tr>
<tr><td headers="n1">91044</td>
<td headers="n2">5.0</td>
<td headers="n3" rowspan="2">Gr. 1</td></tr>
<tr><td headers="n1">91055</td>
<td headers="n2">5.0</td></tr>
<tr><td headers="n1 n2 n3" colspan="3">Razem</td></tr>
</table>
HTML
Tabela, kolejny przykład c.d.