1. Protokoły Co programy wykorzystują do komunikacji przez sieć? Co to jest protokół komunikacyjny? wykorzystują protokoły komunikacyjne zestaw regół dotyczących komunikacji Do czego służą protokoły warstwy aplikacyjnej? do definiowania semantyki komunikatów wymienianych pomiędzy programami Przykłady protokołów warstwy aplikacyjnej HTTP FTP SMTP POP3 Do czego wykorzystywany jest protokół HTTP? 1) komunikacji pomiędzy przeglądarką internetową a serwerem www 2) komunikacji między fragmentami oprogramowania po stronie serwera Klasy w javie InetAddress - przechowuje adres NetworkInterface - reprezentuje interfejs sieciowy Socket - końcówka połączenia Co to jets ramkowanie? Jakie są typy ramkowania? Kto otwiera połączenie HTTP? Co zawiera żądanie HTTP? Co zawiera odpowiedź HTTP? Jak działa serwer iteracyjny? Jakie są podejścia do serwera współbieżnego? ServerSocket - służy do nasłuchiwania ramkowanie to sposób na określenie rozmiaru danych przesyłanych przez protokół delimiter based - określony znak kończący blok danych explicit length - na początku przesyłany jest rozmiar dalszej części połączenie otwierane jest przez klienta -linia żądania zakończona CRLF -dowolna ilość nagłówków, z których każdy jest zakończony CRLF -pustej linii CRLF -treśći (jej długość musi zostać podana w nagłówku Content-length) -linia statusu zakończona CRLF -dowolna ilość nagłówków, z których każdy zakończony jest CRLF -pustej linii CRLF -treść (jej długość możę być określona przy pomocy Content-length lub przez zamknięcie połączenia z klientem) w trakcie obsługiwania jednego klienta reszta czeka w kolejce client per thread - każdy klient dostaje nowy
wątek thread pool - istnieje pula wątków i klient dostaje wątek z puli lub czeka egzekutor - podobne do puli wątków 2. Java bazy danych JDBC Czego wymaga JDBC do połączenia z baządanych? Jakie są typy sterowników JDBC? Java DataBase Connectivity wymagane jest dostarczenie przez producenta bazy sterownika (zestaw klas zapewniających implementację zdefiniowanych w standardzie interfejsów) Trzeba później zarejestrować sterownik w klasie DriverManager Typ 1 - JDBC-ODBC bridge + nie wymaga sterownika od producenta bazy - wolne i wymaga oprogramowania po stronie klienta -nie można korzystaćwielowątkowo Typ 2 - wywołania natywne sterownika +szybsze -wymaga dodatkowej biblioteki nie javowej Typ 3 - sterownik implementuje API używane przez dodatkową aplikację middleware +warstwa izolacji +100% java -wymagane oprogramowanie middleware Do czego służy klasa DriverManager? Co to jest DataSource?... Co to jest DAO typ 4 - sterownik dla Javy implementuje API używane przez serwer baz danych +100% java +nie wymaga żadnego dodatkowego oprogramowania zajmuje się zarządzaniem sterownikami. Żeby połączyć się z bazą trzeba zarejestrować w niej sterownik. (DriverManager.registerDriver(Driver drivername);) DataSource reprezentuje pulę połączeń do zastosowania w aplikacjach wielowątkowych (Data Access Object) wzorzec projektowy (fasada) dla dość skomplikowanego API JDBC.
3. Protokoły kontynuacja Jakie są możliwości kodowania przesyłanych danych? Protokół HTTP jest protokołem tekstowym, jakie sątego zalety i wady? Jaki nagłówek mówi o kodowaniu zawartości? little endian - od najmniej znaczących big endian - od najbardziej znaczących + brak problemów z kodowaniem - większa ilość przesyłanych danych Content-Type Jakie znaki są zarezerwowane w URI?! * ' ( ) ; : @ & = + $, /? % # [ ] Do czego służy HTTP Dlaczego HTTP nie jest w stanie stwierdzić że poszczególne żądania należą do danej konwersacji między klientem a serwerem? Co to jest URI? Jak zbudowane jest URI? służy do wymiany danych w sieci. Jest protokołem request-response, klient wysyła żądanie na co serwer odsyła mu odpowiedź bo HTTP jest bezstanowy ujednolicony identyfikator zasobu, URI nie musi pozwolić na znalezienie zasobu scheme://authority/path?query#fragment wymagame jest scheme i path, jeżeli nie ma authority to path nie może zaczynać się od // scheme - nieistotna wielkość znaków, poza literami mogą pojawić się. + - authority - zaczyna się od // i kończy /? lub # [userinfo@] host [: port] path - jeżeli authority jest puste to nie może zaczynać się od //, separatorem w path jest / może dodatkowo zawierać ; i = query - zaczyna się od? a kończy # lub końcem URI, spacja jest kodowana jako + Co to jest URN? Co to jest URL? Jakie są operacje na URI/URL? fragment - zaczyna się od #, określa część, podzbiór, miejsce w zasobie albo sposób jego reprezentacji nazwa zasobu lokator zasobu, pozwala znaleźć zasób. Nie ma ograniczenia na długość, ale serwer może ustalić własne ograniczenie Resolution - określenie mechanizmu dostępu do zasobu Dereferencing - wykorzystanie mechanizmu dostępu do zasobu
Co może się znajdować w nagłówku HTTP? Jakie są metody HTTP? Retrieval - pobranie zasobu znacznik czasu informacja o kodowaniu informacja o kompresji/ podziale na części produkt waga język entity tag OPTIONS - pytanie o opcje komunikacji odpowiedz jest przesylana w nagłówkach lub treści zawartości GET - pobieranie zasobu nagłówek if-* warunkowe GET - przeglądarka ma zasób w cache nagłówek Range - częściowe GET - chcemy pobrać tylko część zasobu HEAD - podobne do GET ale klient nie oczekuje zawartości POST - prośba o zaakceptowanie danych będących treścią (np. utworzenie nowego zasobu) PUT - prośba o zapamiętanie zasobu, np zapisanie na serwerze pliku (różnica między PUT i POST to URI, dla POST URI to zasób przetwarzający a dla PUT to zasób przesyłany) DELETE - prośba o usunięcie zasobu TRACE - sprawdzenie jaką ścieżkąp=szło żądanie Jakie są bezpieczne metody HTTP? (Metody bezpieczne nie modyfikują nic na serwerze) Jakie są idempotentne metody HTTP? (wykonane N>0 identycznych żądań będzie miało taki sam efekt jak wykonanie jednego żądania) Jakie są kody statusu odsyłane w odpowiedzi HTTP? CONNECT - prośba o połączenie z innym hostem i odgrywanie roli tunelu OPTIONS GET HEAD TRACE OPTIONS GET HEAD PUT DELETE TRACE kody informacyjne 1xx kody powowdzenia 2xx
kody przekierowania 3xx kody błędu aplikacji klienta 4xx kody błędu serwera 5xx (więcej w pliku kody.txt) 4. Protokoły kontynuacja, zawartość Jakie są różnice pomiędzy HTML a XHTML? Jakie są plusy HTML? Jakie są plusy XHTML? W jakim nagłówku przesyłany jest typ MIME? Wersje HTML 4.01 HTML powinen być wysyłany jako text/html a XHTML jako application/xhtml+xml zasady XHTML są bardziej surowe -znaczniki i atrybuty małymi literami -wszystkie elementy muszą być zamknięte -atrybuty w cudzysłowiach -każdy atrybut musi mieć nazwę i wartość -bardziej surowe zasady zagnieżdżania -znaki < > & ' " muszą być reprezentowane przez encje -do identyfikowania <a> <form> <img> <map> nie należy używać atrybutu name tylko id -bardziej zwięzły -nie ma tak ścisłych wymagań dotyczących składni -bardziej przenośny -łatwiejszy w parsowaniu Content-Type strict - nie zezwala na elementy i atrybuty ze starszych wersji transitional - zawiera wszystkie elementy i atrybuty ze starszych wersji Do czego służy deklaracja DOCTYPE? Jakie są tryby pracy przeglądarki? Jakie są cechy HTML 5? frameset - dla struktury dokumentu opartej na ramkach podajemy w niej link do pliku DTD oraz publicznie znany identyfikator typu dokumentu plik DTD zawiera zestaw reguł służących do walidacji dokumentu. html xhtml html quirks mode nie wymaga aby kod HTML był dobrze uformowanym XMLem
dużo wymogów dotyczących poprawnosci dokumentów i ich dokładniejsze sprawdzanie możliwość zastosowania narzędzi pochodzących z xml wsparcie przestrzeni nazw brak wersji (strict, frameset, transitional) Jakie są nowości w HTML5? dobrze tolerowany przez starsze przeglądarki -nowe znaczniki do tworzenia struktury: hgroup, figure, figcaption, dialog, dt, dd, mark, time, details -dodatkowa informacja o elementach struktury: section, article, aside, header, footer, nav, figure -nowe atrybuty: datetime, datetime-local, date, month, week, time, number, range, email, url -baza danych w przeglądarce -elementy canvas -elementy video Z czego składa się dokument? Jakie są różnice pomiędzy class a id w CSS Jakie style są dziedziczone w CSS Do czego dopasowuje się szerokość a do czego wysokość? Jak można wpłynąć na układ strony w CSS? -placeholder, autofocus w formularzach treść - html struktura -html, css, JavaScript prezentacja - css zachowanie - skrypty id powinno być unikatowe w dokumencie, class może się powtarzać, w atrybucie class może być kilka wartości oddzielonych spacją do id odwołujemy się przez # a do class przez. związane z fontem i kolorem pierwszego planu są dziedziczone z rodzica i nadpisują szerokość - do rodzica wysokość - do zawartości float - wymusza aby element był doklejony do marginesu clear - wymusza aby element był pod poprzedzającym go elementem mającym właściwość float
6. Python Jak nazwya się wzorzec realizowany przez Django? Jakie są zadania poszczególnych elementów MVT? Model View Template model - przechowywanie danych w aplikacji,pobieranie ich z bazy i zapisywanie do bazy view - funkcje pythona, określanie co należy wyświetlić template - definiuje wygląd i sposób przedstawiania danych zwracanych przez widok 9. Maven Co to jest maven? Co to jest archetyp w mavenie? Jakim poleceniem buduje się projekt w mavenie? Co to jest plik pom.xml? Jaki archetyp służy do tworzenia aplikacji webowych? narzędzie do zarządzania projektami i bibliotekami dla javy archetyp to struktura projektu mvn clean install taki makefile dla mavena maven-archetype-webapp 10. Serwlety Jakie są możliwe podejścia do przechowywania sesji? Model Serwletu Konteksty Co to są atrybuty żądania? Cykl życia serwletu można przechwoywać cały stan sesji i przesyłać do serwera, lub można przechowywać tylko id sesji 1. odebranie żądania 2. analiza żadania i wybranie serwletu 3. przetwarzanie żądania przez serwlet 4. odesłanie odpowiedzi kontekst strony kontekst żądania kontekst sesji kontekst aplikacji są to pary nazwa/wartość związane z żądaniem 1. kontener tworzy serwlet przez newinstance 2. konteer wywołuje metodę init(servletconfig
config) 3. kontener wywołuje nadpisaną metodę init 4. dla każdego żądania kontener wywołuje metodę service, któa wywołuje odpowiednie doxxx 5. kontener żeby zakończyć serwlet wywołuje destroy() 11. Serwlety kontynuacja Co może zawierać aplikacja webowa? W jakim pliku znajduje się aplikacja webowa? Do których plików ma dostęp klient w warze? Czym jest atrybut? Z czym może być powiązany atrybut? Co to jets filtr? serwlety pliki JSP dodatkowe klasy statyczne zasoby plik konfiguracyjny w pliku war do wszystkich poza timi z folderów WEB-INF i META-INF atrybut może być dowolnym obiektem - z żądaniem - z sesją - z kontekstem filtr to obiekt przechwytujący żądania. Filtr może wstępnie obrobić żądanie albo zdecydować o nie przesyłaniu go do aplikacji 12. JSP i MVC Co może znajdować się na stronie JSP? - ukryte komentarze - deklaracje - wyrażenia - skryptlety - dyrektywy