100 kb
Transkrypt
100 kb
Języki programowania
wysokiego poziomu
WWW
Zawartość
Protokół HTTP
Języki HTML i XHTML
Struktura dokumentu html:
• DTD i rodzaje html; xhtml
• Nagłówek html
- kodowanie znaków, język …
• Ciało html
Sposób formatowania tekstu
• Nagłówki, paragrafy i podstawowe formatowanie
• Listy wypunktowane i numerowane
• Hiperłącza
Protokół HTTP
HTTP (ang. Hypertext Transfer Protocol)
protokół przesyłania dokumentów hipertekstowych WWW.
Za pomocą protokołu HTTP przeglądarka wysyła żądanie do
serwera i otrzymuje odpowiedź.
Najważniejsze cechy:
• Znormalizowany sposób komunikacji, umożliwia komunikowanie
się komputerów niezależnie od platformy
• Ma formę transakcji, składających się z żądania (request) oraz
odpowiedzi (response)
• Bezstanowy – nie zachowuje żadnych informacji o zrealizowanej
transakcji; Stanowość zapewnia najczęściej mechanizm sesji
kontrolowanej przez serwer, do czego wykorzystuje się
mechanizm ciasteczek (cookies) zapisywanych przez klienta
Protokół HTTP
Żądanie HTTP ma postać:
Metoda Zasób Wersja-http
Nagłówek
Nagłówek
[pusta linia]
Zawartość (jeżeli potrzebna)
Przykład:
GET / HTTP/1.1
Host: www.domena.com
Connection: keep-alive
Protokół HTTP
Odpowiedź HTTP ma postać:
Wersja-http Kod-odpowiedzi Uzasadnienie
Nagłówek
Nagłówek
[pusta linia]
Zawartość (jeżeli potrzebna)
Przykład:
HTTP/1.1 200 OK.
Server: Apache
Content-type: text/html
[Dokument HTML]
Protokół HTTP
Zdefiniowano 8 metod (rodzajów żądań) HTTP:
• GET – pobranie wskazanego przez URI zasobu;
najczęściej wykorzystywany
• POST – przesłanie danych od klienta do serwera, np. danych
formularza; dane przekazywane są do wskazanego zasobu,
tj. skryptu CGI, PHP, …
• HEAD – pobranie informacji o wskazanym zasobie
• PUT – umieszczenie zasobu (pliku) na serwerze
• DELETE – usunięcie zasobu z serwera
• OPTIONS – informacje o kanale komunikacyjnym
• TRACE – do celów diagnostycznych
• CONNECT – dotyczące tunelowania
Protokół HTTP
Serwer HTTP musi obowiązkowo odpowiadać tylko na dwa
rodzaje żądań:
• GET
• HEAD
Dodatkowo, jeżeli aktywny jest mechanizm dynamicznego
tworzenia stron WWW, na żądanie
• POST
Pozostałe mogą nie działać, serwer odpowiada wówczas
kodem 501:
HTTP/1.1 501 Not Implemented
Protokół HTTP
Ważniejsze kody odpowiedzi serwera HTTP:
• 200 OK – serwer przesyła żądany dokument w zawartości
• 204 No contenet – serwer zrealizował żądanie, jednak nie
wymaga ono przesłania zawartości
• 301 Moved prmanently – zasób został przeniesiony
• 401 Unauthorized – dostęp do zasobu wymaga autoryzacji
• 403 Forbidden – serwer zrozumiał zapytanie, jednak dostęp do
zasobu jest zabroniony
• 404 Not found – serwer nie odnalazł zasobu
• 500 Internal Server Error – serwer nie może zrealizować
żądania z powodu błędów w oprogramowaniu (np. CGI)
• 501 Not implemented – metoda nie jest obsługiwana (np. PUT)
• 503 Service unavailable – usługa niedostępna (przeciążenie)
Przeglądarki internetowe
Aplikacje służące do pobierania i wyświetlania dokumentów z
serwerów WWW (protokoły HTTP i HTTPS, dokumenty HTML i
XHTML, wraz z osadzonymi arkuszami CSS, obrazkami itd.)
•
•
•
•
•
•
•
•
•
•
•
1990
1993
1993
1994
1994
1995
1998
2000
2002
2003
2008
WordWideWeb – program Tima Bernersa-Lee,
Lynx – przeglądarka tekstowa na platformę UNIX,
Mosaic – pierwsza graficzna przeglądarka; pierwowzór IE i NN
Opera – komercyjna od 1996, darmowa od 2005
Netscape Navigator – pierwsza komercyjna przeglądarka
MS Internet Explorer – udostępniona w Win95
Mozilla – upubliczniona wersja NN
Konqueror – na platformę Linux
FireFox – wywodzi się z Mozilli, obecnie druga na rynku
Safari – wywodząca się z Konquerora
Google Chrome – wywodzi się z KHTML (jak Konqueror)
Przeglądarki internetowe
Lynx
Internet Explorer
Mosaic
Netscape Navigator
Mozilla
Sea Monkey
Firefox
Konqueror
Safari
Opera
Przeglądarki internetowe
Wojny przeglądarek
• Pierwsza wojna przeglądarek: 1997-1999
MS Internet Explorer vs Netscape Navigator
Niestandardowe rozszerzenia ("fajniejsze" strony WWW);
początkowo wygrywa NN, przeważa fakt, że IE jest darmowy
Efekt: całkowita dominacja IE, zastój w rozwoju przeglądarek i
standardów HTML
Przeglądarki internetowe
Wojny przeglądarek
• Druga wojna przeglądarek: 2002-?
MS Internet Explorer vs (Firefox + Safari + Opera)
Zgodność ze standardami i likwidacja monopoli;
paradoksalnie, IE przeważa ponieważ nie respektuje
standardów W3C
Język HTML
HTML (ang. Hypertext Markup Language)
język znaczników hipertekstowych – obecnie dominujący
język stron internetowych.
• Opisuje strukturę informacji zawartych w dokumencie
(nagłówki, akapity listy, tabele, …)
• Umożliwia określenie sposobu prezentacji poszczególnych
elementów dokumentu
(wyrównanie, obramowanie, odstępy, czcionka, kolor, …)
• Umożliwia osadzanie w dokumencie dodatkowych elementów
(grafika, animacje, aplety, formularze, …)
• Umożliwia osadzanie w dokumencie skryptów, wpływających na
zachowanie przeglądarki
(JavaScript, VB Script, …)
Język HTML
Wersje języka HTML
• 1980 – prototyp hipertekstowego systemu informacyjnego
• 1989 – propozycja hipertekstowego systemu opartego na sieci
Internet, projekt W3 (WordWildWeb)
• 1991 – pierwsza publicznie dostępna specyfikacja HTML
(22 znaczniki, z czego 13 jest używanych w HTML 4.01)
• 1993 – propozycja (draft) opublikowana przez IETF (Internet
Engineering Task Force)
• 1995 – HTML 2.0, pierwsza oficjalna specyfikacja IETF
• 1996 – HTML 3.0; powstaje W3C
• 1997 – HTML 4.0
• 1998 – HTML 4.01
• 2008 – wersja robocza (working draft) HTML 5.0
Język HTML
HTML wywodzi się z języka SGML (ang. Standard Generalized
Markup Language).
• SGML jest językiem służącym do definiowania dowolnych
znaczników i ustalania zasad ich poprawnego użytkowania.
• Ze względu na złożoność standardu SGML bardzo mało narzędzi
implementuje pełen standard. W związku z trudnościami
implementacyjnymi powstał język i standard XML będący
początkowo podzbiorem reguł SGML.
• Ważnym elementem dokumentów SGML jest definicja typu
dokument (DTD, Document Type Definition), tj. formalna
definicja składni oraz struktury dokumentu;
Język HTML
Przykładowy fragment SGML:
Język XHTML
XHTML (ang. Extensible Hypertext Markup Language)
rozszerzalny język znaczników hipertekstowych – uważany za
następcę języka HTML, intensywnie promowany.
• Oparty na XML (zamiast SGML);
• Obsługa przestrzeni nazw XML
- możliwość stosowania rozszerzeń (np. SVG, MathML, …)
• Bardziej restrykcyjne reguły
- obowiązkowe znaczniki zamykające
- rozróżniane małe i wielkie litery
Łatwiejsza walidacja dokumentów (ale nie weryfikacja)
• Inny typ MIME zawartości
application/xhtml+xml zamiast text/html
Język XHTML
Wersje języka XHTML
• 2000 – XHTML 1.0, zatwierdzony jako rekomendacja W3C;
Odpowiedni przeredagowany HTML 4.0 (zgodność z XML);
Trzy warianty (Strict, Transitional, Frameset) – jak HTML 4.0
• 2001 – XHTML 1.1, rekomendowany jako następna HTML,
mający go zastąpić
• 2005 – XHTML 2.0, wersja robocza (draft)
• 2008 – XHTML 5, wersja robocza (draft) języka HTML 5 w
wariancie opartym na XML