HTTP
Wymień najważniejsze metody (rodzaje żądań) HTTP.
Get, post , head
Co to znaczy, że protokół HTTP jest bezstanowy?
Bezstanowy – nie zachowuje żadnych informacji o zrealizowanej
transakcji
Na czym polega różnica między metodami (rodzajami żądań) GET oraz HEAD protokołu 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
Na czym polega różnica między metodami (rodzajami żądań) GET oraz POST protokołu HTTP.
Jakie były najważniejsze przejawy i skutki tzw. pierwszej wojny przeglądarek?
Kim były strony tzw. pierwszej wojny przeglądarek? Kto i dlaczego tę wojnę wygrał?
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
Jaki wpływ na rozwój języka HTML oraz CSS miały wojny przeglądarek, pierwsza i druga?
I wojna Efekt: całkowita dominacja IE, zastój w rozwoju przeglądarek i
standardów HTML
II wojna Zgodność ze standardami i likwidacja monopoli;
paradoksalnie, IE przeważa ponieważ nie respektuje
standardów W3C
HTML
Do czego służy język HTML i jakie możliwości daje twórcom stron WWW?
• 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, …)
Co oznacza określenie "strukturalny HTML"?
Jaka jest relacja między językami SGML i HTML?
HTML wywodzi się z języka SGML
Jakie są najważniejsze różnice między językami HTML i XHTML?
• 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
Z jakich najważniejszych części składa się dokument HTML?
Cały dokument reprezentowany jest przez jeden element
(html), składający się z nagłówka (head) i ciała (body).
Dokument HTML składa się z dwóch elementów:
• Wskazania DTD
• Elementu (znacznika) html
Element html i jego zawartość powinna być zgodna z DTD.
Do czego służy DTD w dokumencie HTML? W jaki sposób brak DTD wpływa na działanie przeglądarki?
Określenie typu dokumentu (DTD, document type
declaration) informuje przeglądarkę o tym, który z wariantów
języka html/xhtml jest używany.
• Determinuje to sposób interpretacji dokumentu.
• Jeżeli DTD nie zostanie podany (lub zawiera błędy),
przeglądarka pracuje w trybie kompatybilności (tzw. tryb quirks,
tryb dziwactw, pozwalający w miarę prawidłowy sposób
prezentacji starych dokumentów HTML);
przeglądarka może ignorować niektóre znaczniki lub atrybuty
znaczników bądź interpretować je niestandardowo, ale też
może uwzględniać znaczniki i atrybuty obecnie nieużywane.
Jakie informacje są umieszczane w elemencie <head> dokumentu HTML?
Nagłówek zawiera dane ważne dla przeglądarki
(np. sposób kodwania znaków, tytuł strony)
i wyszukiwarek (np. słowa kluczowe, język dokumentu).
Jaki wpływ ma zawartość elementu <head> dokumentu HTML na działanie wyszukiwarek internetowych?
Jakie są popularne standardy kodowanie polskich znaków w dokumentach HTML? Które z nich są formalnie poprawne?
Jedyne
poprawne to ISO 8859-2 (tzw. latin 2) oraz Unicode, w tym
popularny UTF-8. Sposób znany z Windows (CP1250) nie jest
uznanym standardem międzynarodowym
Scharakteryzuj atrybuty elementów HTML: id oraz name.
Scharakteryzuj atrybuty elementów HTML: class oraz style.
Scharakteryzuj elementy <h1> ... <h6> HTML.
Scharakteryzuj elementy <ol>, <ul> oraz <li> HTML.
Listy numerowane: Ol
Listy wypunktowane: ul
poszczególne elementy są typu li;
Podaj przykłady elementów strukturalnych blokowych i liniowych HTML. Na czym polega różnica między nimi?
Elementy blokowe wyświetlane są w prostokątnym obszarze,
zajmującym całą szerokość bloku, do którego należą;
niektóre elementy blokowe mogą zawierać inne bloki
Elementy liniowe nie mają własnego prostokątnego bloku,
wyświetlane są między innymi elementami liniowymi bloku
swojego właściciela
Do czego (do jakich zasobów) może odsyłać element <a> języka HTML?
Z jakich elementów HTML składa się (w najprostszym przypadku) tabela?
• table, tr, td – tabel
CSS
Do czego służą arkusze CSS? Jaki jest cel wprowadzenia arkuszy CSS do dokumentów HTML?
to język służący do formatowania dokumentów
WWW, utworzonych w językach HTML oraz XHTML.
• CSS stworzono w celu odseparowania formy prezentacji
dokumentu (CSS) od jego struktury i zawartości (HTML)
Jakie są zalety stosowania arkuszy CSS w porównaniu do formatowania dokumentów WWW poprzez atrybuty elementów HTML?
• Ułatwienie modyfikacji formy i treści WWW,
Zmiana formy sprowadza się do zmiany CSS (nie HTML).
Zmiana treści nie wymaga formatowania HTML (jest CSS).
Na czym polega kaskada stylów, wymieniana w nazwie arkuszy CSS?
Kaskada stylów polega na możliwości definiowania stylu w kilku
miejscach i określeniu priorytetów poszczególnych arkuszy
(na wypadek gdyby reguły były sprzeczne)
Jakie są metody dołączania stylów do poszczególnych elementów HTML (tj. w jakich miejscach dokumentu można to zrobić i w jaki sposób) ?
• Element link w nagłówku HTML:
<link rel="stylesheet" type="text/css"
href="style.css">
• Element style w nagłówku HTML:
<style type="text/css">
<!--
-->
</style>
Wyjaśnij różnicę pomiędzy układami selektorów CSS: "div, p", "div p" oraz "div > p".
E > F – element F zawarty bezpośrednio w elemencie E
E F – element F zawarty w elemencie E,
bezpośrednio lub pośrednio
• E, F – elementy E oraz F, niezależnie od położenia względem
siebie oraz innych elementów
Podaj interpretację układu selektorów CSS: h2 + ol.contens li
Podaj interpretację układu selektorów CSS: div h3 + p.comment
Do czego odnoszą się selektory CSS: p.index oraz p#index? Na czym polega różnica między zakresami ich stosowania?
Do czego odnoszą się selektory CSS: a:link, a:hover oraz a:visited?
• E:hover element (łącze) wskazany, ale nie aktywowany
Co to znaczy, że styl CSS może być przypisany do medium? Jakie rodzaje mediów zdefiniowane w CSS?
Arkusze CSS mogą definiować różne sposoby formatowania,
zależnie od medium prezentacji. Wyróżnia się media:
• all – wszystkie media (wartość domyślna)
• screen – ekran komputera
• print – drukarka
• projection – rzutnik (projektor)
• handheld – urządzenia przenośne (mały ekran i przepustowość)
• tv – ekran o małej rozdzielczości, bez przewijania
• speech – syntezator mowy
• braille – urządzenia z pismem Brailla
Jakie atrybuty czcionki można formatować za pomocą CSS?
- font-family: rodzaj, rodzaj, rodzaj-ogólny
- font-size: wielkość [em, pt, px, %] | small | medium| large
- line-height: wielkość [em, pt, px, %]
- font-style: normal | italic
- font-weight: normal | bold | liczba
- font-variant: normal | smallcaps
Jakie atrybuty tekstu można formatować za pomocą CSS?
- color: RGB
- text-decoration: none | underline | line-through |overline
- text-transform: none | capitalize | uppercase | lowercase
- text-align: left | right | center | justify
- text-indent: wielkość
- line-height: wielkość
- word-spacing: normal | wielkość
- letter-spacing: normal | wielkość
PHP
Na czym polega różnica między statycznymi a dynamicznymi stronami WWW?
Zamiast plików HTML na serwerze umieszczone są skrypty
generujące dokumenty HTML
• Zawartość dokumentu HTML zwracanego do przeglądarki może
być uzależniona od wielu czynników, np. parametrów
wybranych przez użytkownika w oknie przeglądarki, zawartości
baz danych, odpowiedzi innych serwerów na zapytania itp.
Wymień przykładowe zastosowania dynamicznych serwisów WWW.
Sklepy internetowe, fora dyskusyjne
W jakich sytuacjach można stosować serwisy statyczne WWW? Jakie zalety ma serwis statyczny w porównaniu z dynamicznym?
• Dokumenty HTML umieszczone na serwerze; zmiana zawartości
witryny WWW wymaga modyfikacji plików HTML; niewielkie
obciążenie serwera
Jakie platformy programistyczne są najczęściej wykorzystywane do tworzenia dynamicznych serwisów WWW?
• Dedykowane serwery
Programy obsługujące komunikację TCP/IP na porcie 80 TCP,
dowolny język (np. BCB, Delphi lub MS VS + pakiet InDy)
• Skrypty CGI (Common Gateway Interface)
skrypty (Perl, Python) lub programy (dowolny język)
• PHP
• JSP (Java Server Pages), JSF (Java Server Faces)
znaczniki (nie HTML)
• ASP.NET (Active Server Pages)
Wymień najważniejsze cechy języka PHP
• Język skryptowy – programy PHP nie są kompilowane do kodu
binarnego, lecz interpretowane na bieżąco podczas
wykonywania
• Działa po stronie serwera – skrypt PHP generuje dokument
HTML, wyświetlany przez przeglądarkę – nie wymaga
określonej przeglądarki, jej wersji lub wtyczek
• Język obiektowy, z potężnymi bibliotekami (w tym PEAR) oraz
obsługą baz danych i dokumentów XML
• Opracowany specjalnie do tworzenia dynamicznych stron WWW
– wbudowana obsługa HTTP (w tym odczyt i generowanie
nagłówków, przekazywanie parametrów dla metod GET i POST,
obsługa plików Cookie i sesji, …), możliwość osadzania HTML
Na czym polega różnica pomiędzy operatorami == oraz ===?
== równe
=== identyczne
$p = 15 == "15"; // TRUE
$q = 15 === "15"; // FALSE
Na czym polega różnica pomiędzy łańcuchami tekstowymi ograniczonymi cudzysłowami oraz apostrofami?
– nie da się włączyc wartości zmiennej:
$s = 100;
echo 'Val: {$x}'; // Val: {$x}
Niezależnie od sposobu rozwijania zmiennych (tj. $x albo {$x}),
PHP nie zastąpi nazwy zmiennej jej wartością.
• Łańcuchy ograniczone cudzysłowami – interpreter wyłapuje
nazwy zmiennych i zastępuje ich wartościami:
Podaj składnię i przykład użycia instrukcji warunkowej if-else.
if (warunek)
instrukcja1
else
instrukcja2
Podaj składnię i przykład użycia instrukcji iteracyjnej while.
while (warunek)
instrukcja
Podaj składnię i przykład użycia instrukcji iteracyjnej for.
for ($i=-5; i<=5; $i++)
{instrukcja}
Co oznacza pojęcie tablica asocjacyjna? Podaj przykład zapisu i odczytu elementu tablicy w PHP.
W języku PHP tablice mają inny charakter: są to tablice
asocjacyjne (inaczej odwzorowania), składające się z par
klucz-wartość (ang. key-value), generalnie dowolnego typu
Podaj składnię i przykład użycia instrukcji iteracyjnej foreach.
foreach (tablica as [klucz => ] wartość)
instrukcja
Do czego służy funkcja var_dump()? Podaj przykład użycia.
• var_dump – drukuje (do HTML) typ i wartość zmiennej
$x = 7;
var_dump($x); // int 7
Do czego służy funkcja isset()? Podaj przykład użycia.
• isset($x) – sprawdza, czy wskazana zmienna istnieje
$x = 7;
$e = isset($x); // TRUE
Do czego służy funkcja echo()? Podaj przykład użycia.
• echo
echo string arg1, [string arg2, …];
drukuje do HTML wartości kolejnych argumentów
echo "suma: $s";
Na czym polega różnica pomiędzy funkcjami echo() oraz print()
zasadnicza różnica
polega na tym , że print akceptuje tylko jeden argument;
Formularze
Z jakich elementów składa się (w najprostszym przypadku) formularz HTML?
Wymagany jest jeden element blokowy (np. div, table, fieldset)
obejmujący całą zawartość formularza. Aby formularz można
było wysłać do serwera, niezbędny jest element typu submit.
Formularz powinien też zawierać pola danych, np. typu input.
Scharakteryzuj atrybuty action oraz method formularza HTML.
method – sposób wysłania do serwera (POST albo GET),
action – URL skryptu, do którego zostanie wysłany formularz,
Scharakteryzuj elementy <fieldset> oraz <legend> formularzy HTML.
• Reprezentuje zbiór powiązanych ze sobą elementów
formularza;
wyświetlany jako owalna ramka, z opcjonalnym podpisem w
postaci elementu legend:
• Wyświetla opis dla elementu fieldset
Wymień rodzaje kontrolek, jakie można umieszczać w formularzach HTML.
• Pola tekstowe, jedno- i wielolinijkowe
• Przyciski
- przycisk submit – wysyła zawartość formularza do serwera,
- przycisk reset – przywraca wartości początkowe danych,
- inne przyciski – działanie zależne od skojarzonego skryptu,
wykonywanego po stronie przeglądarki
• Pola wyboru
• Przyciski radiowe
• Listy rozwijane
• Pola wyboru pliku
• Pola ukryte
• Obiekty osadzone
Scharakteryzuj atrybuty name oraz value kontrolek wykorzystywanych w formularzach HTML, np. dla <input type="checkbox" ...>
name – nazwa, pod jaką zawartość będzie wysłana do serwera
value – wartość początkowa (znaczenie zależnie od typu)
Jaki jest związek atrybutu name kontrolek wykorzystywanych w formularzach ze skryptami PHP odczytującymi dane formularzy?
• name – dla kontrolek, które wysyłają dane do serwera
– określa nazwę, pod jaką zawartość kontrolki (value) zostanie wysłana.
Brak atrybutu name powoduje, że zawartość kontrolki w ogóle
nie jest wysłana;
Scharakteryzuj element HTML <input>. Wymień rodzaje kontrolek, w które zmienia się <input> zależnie od atrybutu type.
• Reprezentuje pole danych:
<input type="…" name="…">
- text – pole edycyjne, jednolinijkowe pole tekstowe
- password – jak text, ale wpisywane znaki są maskowane
- checkbox – pole wyboru (opcje niezależne od siebie)
- radio – przycisk radiowy (opcje nawzajem wykluczające się)
- submit – przycisk wysyłania formularza do serwera
- reset – przycisk przywracający domyślne wartości kontrolek
- file – kontrolka wyboru pliku (pole edycyjne + przycisk)
- hidden – pole ukryte
- image – graficzny odpowiednik submit
- button – przycisk skryptu wykonywanego przez przeglądarkę
Scharakteryzuj element <input type="text" ...> formularza HTML.
• Jednolinijkowe pole edycyjne do wpisania tekstu:
Scharakteryzuj element <input type="password" ...> formularza.
• Jednolinijkowe pole edycyjne do wpisania hasła:
Scharakteryzuj element <input type="checkbox" ...> formularza.
• Pole edycyjne opcji niezależnych od siebie:
Scharakteryzuj element <input type="radio" ...> formularza.
• Pole edycyjne opcji niezależnych od siebie:
Scharakteryzuj element <input type="submit" ...> formularza.
• Przycisk wysyłania formularza:
Scharakteryzuj element <select ...> formularza.
• Tworzy zwykłą lub rozwijaną listę wyboru:
Scharakteryzuj element <textarea ...> formularza.
• Tworzy wielolinijkowe pole tekstowe:
Do czego w formularzach jest wykorzystywany element <label>?
• Umożliwia tworzenie hierarchicznego menu:
Wymień różnice (możliwości, sposób przesyłania, sposób odczytywania danych, ...) pomiędzy formularzami przesyłanymi metodą GET i POST.
• Dane z formularza są odczytywane z żądania (met. GET) albo
z nagłówka HTTP (met. POST) i dostępne w skrypcie, na kilka
możliwych sposobów:
- zmienne $name
- tablice $HTTP_GET_VARS albo $HTTP_POST_VARS
- tablice $_GET albo $_POST
- tablica $_REQUEST
Niezależnie od użytej metody, wszystkie wartości są
przekazywane jako łańcuchy tekstowe.
W jaki sposób przesyłane są dane formularzy dla metody GET (albo: POST) i jakie ma to konsekwencje?
Jakie są sposoby odczytania (w skrypcie PHP) danych formularza przesłanego metodą GET (albo: POST)? Które z nich nie są zalecane ze względów bezpieczeństwa?
- zmienne $name nie zalecane
- tablice $HTTP_GET_VARS albo $HTTP_POST_VARS
- tablice $_GET albo $_POST
- tablica $_REQUEST nie zalecane
Jakie mogą być powody przesyłania formularzy metodą GET zamiast POST (albo: POST zamiast GET)?
Wymień wady i zalety przesyłania danych formularza metodą GET (albo: POST).
Get
• Cechy:
+ debugowanie, kontrola działania skryptów
– spacje i znaki spoza ASCII są kodowane ("+", "%HH")
– poufne dane są widoczne (bezpieczeństwo!)
– żądania są zapisywane w historii (bezpieczeństwo!)
– nie można przesyłać plików na serwer
Post
• Cechy:
+ poufne dane nie są widoczne ani zapisywane w historii
+ można przesyłać pliki na serwer
– dane nie są szyfrowane (pełne bezpieczeństwo -> HTTPS)
Jakie błędne założenia na temat danych formularza przesyłanych do serwera mogą stać się powodem nieprawidłowego działania witryny albo nawet ułatwić hakerowi atak na serwer?
Jakie działania należy podjąć podczas obsługi formularzy, aby zmniejszyć ryzyko nieprawidłowego działania witryny oraz skuteczności ataku na serwer?