Hej! Zbliża się Test 3 dla Zespołu Bugs 1? Bez obaw, przygotowałem dla Ciebie mały przewodnik, który pomoże Ci wszystko uporządkować i podejść do testu z pewnością siebie. Pamiętaj, że najważniejsze to zrozumienie materiału, a nie tylko nauczenie się go na pamięć. Skupmy się na najważniejszych aspektach!
Architektura aplikacji internetowych
Rozważmy architekturę aplikacji internetowych. To fundament działania wszystkiego, co widzisz w przeglądarce. Musisz rozumieć, jak poszczególne elementy współpracują ze sobą.
Model Klient-Serwer
Podstawą jest model klient-serwer. Klient (na przykład Twoja przeglądarka) wysyła żądanie do serwera, a serwer odpowiada, przesyłając dane. Pomyśl o tym jak o rozmowie: Ty zadajesz pytanie, a ktoś inny (serwer) na nie odpowiada.
Przykład: Kiedy wpisujesz adres strony internetowej w przeglądarce, przeglądarka wysyła żądanie do serwera, na którym ta strona jest hostowana. Serwer przetwarza żądanie i wysyła z powrotem kod HTML, CSS i JavaScript, które przeglądarka interpretuje i wyświetla.
Warstwy Architektury
Aplikacje internetowe często dzielą się na warstwy, co ułatwia zarządzanie i rozwój. Najczęściej spotykane warstwy to:
- Warstwa prezentacji (UI/UX): To, co widzisz i z czym wchodzisz w interakcję (HTML, CSS, JavaScript).
- Warstwa logiki biznesowej: Tutaj dzieją się wszystkie "magiczne" operacje, np. obliczenia, walidacje (Java, Python, C#).
- Warstwa danych: Przechowuje i zarządza danymi (bazy danych jak MySQL, PostgreSQL, MongoDB).
Zrozumienie przepływu danych między warstwami jest kluczowe. Upewnij się, że wiesz, która warstwa odpowiada za co i jak się komunikują.
Protokół HTTP
HTTP (Hypertext Transfer Protocol) to język, którym posługują się klient i serwer. Musisz znać podstawowe metody HTTP i kody statusu.
Metody HTTP
Do najważniejszych należą:
- GET: Pobieranie danych z serwera.
- POST: Wysyłanie danych do serwera (np. podczas wypełniania formularza).
- PUT: Aktualizacja zasobu na serwerze.
- DELETE: Usuwanie zasobu z serwera.
Każda metoda ma swoje zastosowanie i znaczenie. Zastanów się, kiedy użyłbyś każdej z nich.
Kody Statusu HTTP
Są to komunikaty, które serwer wysyła klientowi, informując o wyniku żądania. Najważniejsze kategorie kodów to:
- 2xx (Sukces): Wszystko poszło dobrze (np. 200 OK).
- 3xx (Przekierowanie): Klient musi podjąć dodatkową akcję, aby zakończyć żądanie (np. 301 Moved Permanently).
- 4xx (Błąd klienta): Błąd po stronie klienta (np. 404 Not Found, 400 Bad Request).
- 5xx (Błąd serwera): Błąd po stronie serwera (np. 500 Internal Server Error).
Zrozumienie kodów statusu pomaga w diagnozowaniu problemów z aplikacją.
Testowanie API
Testowanie API (Application Programming Interface) jest kluczowe dla zapewnienia, że Twoja aplikacja działa poprawnie. Skup się na testach jednostkowych, integracyjnych i end-to-end.
Rodzaje testów API
- Testy jednostkowe: Sprawdzają pojedyncze funkcje lub moduły API.
- Testy integracyjne: Sprawdzają, czy różne komponenty API współpracują ze sobą poprawnie.
- Testy end-to-end: Sprawdzają cały przepływ żądania przez API, od klienta do bazy danych i z powrotem.
Narzędzia do testowania API
Przydatne narzędzia to:
- Postman: Popularne narzędzie do wysyłania żądań HTTP i sprawdzania odpowiedzi.
- Swagger/OpenAPI: Specyfikacja do opisywania API i generowania dokumentacji oraz testów.
- Rest Assured (Java): Biblioteka do pisania testów API w Javie.
Naucz się korzystać z przynajmniej jednego z tych narzędzi. Zrozum, jak wysyłać żądania z różnymi parametrami i sprawdzać odpowiedzi.
Bezpieczeństwo Aplikacji Internetowych
Bezpieczeństwo to priorytet! Musisz znać podstawowe zagrożenia i sposoby ich zapobiegania.
Najczęstsze Zagrożenia
- SQL Injection: Atak polegający na wstrzykiwaniu złośliwego kodu SQL do zapytania bazy danych.
- Cross-Site Scripting (XSS): Atak polegający na wstrzykiwaniu złośliwego kodu JavaScript do strony internetowej.
- Cross-Site Request Forgery (CSRF): Atak polegający na zmuszaniu użytkownika do wykonania niechcianej akcji na stronie internetowej, na której jest zalogowany.
- Ataki typu Denial of Service (DoS): Ataki mające na celu uniemożliwienie dostępu do serwera poprzez przeciążenie go żądaniami.
Sposoby Ochrony
- Walidacja danych wejściowych: Sprawdzanie, czy dane wprowadzane przez użytkownika są poprawne i bezpieczne.
- Enkodowanie danych wyjściowych: Przetwarzanie danych, które mają być wyświetlone na stronie internetowej, aby zapobiec XSS.
- Używanie tokenów CSRF: Dodatkowe zabezpieczenie przed CSRF.
- Regularne aktualizacje oprogramowania: Naprawianie luk w zabezpieczeniach.
Zastanów się, jak można zapobiegać każdemu z tych zagrożeń w praktyce.
Podsumowanie
Przygotowując się do Testu 3, skup się na:
- Zrozumieniu architektury aplikacji internetowych (model klient-serwer, warstwy).
- Znajomości protokołu HTTP (metody, kody statusu).
- Testowaniu API (rodzaje testów, narzędzia).
- Zabezpieczeniach aplikacji internetowych (zagrożenia i sposoby ochrony).
Pamiętaj, najważniejsze to zrozumienie koncepcji, a nie tylko nauczenie się faktów na pamięć. Powodzenia na teście! Wierzę w Ciebie!

