Zacznijmy od tego czym jest klient i serwer:
- klient - w przypadku aplikacji internetowej jest to przeglądarka, pozwala wyświetlać interfejs aplikacji i wysyłać komendy do serwera w celu ich przetworzenia
- serwer - zwraca żądane przez klienta strony; odpowiedź z serwera zawiera kod HTML który determinuje sposób wyświetlenia żądania klienta
Zarówno klient jak i serwer komunikują się ze sobą za pomocą protokołu HTTP. Protokół ten używa portu 80, lub jeżeli serwer używa certyfikatu SSL - HTTPS na porcie TCP 443.
Proces uzyskiwania połączenia:
- Użytkownik wprowadza w przeglądarce adres żądanej strony
- Przeglądarka za pomocą protokołu HTTP wysyła żądanie GET do serwera
- Serwer WWW otrzymuje zapytanie i rozpoczyna je przetwarzać
- Jeżeli zapytanie jest poprawne, serwer zwraca odpowiedź wraz z kodem statusu 200. W przeciwnym przypadku, np. jeżeli adres strony jest błędny, zwraca status błędu 404.
- Przeglądarka internetowa użytkownika otrzymuje odpowiedź wraz z kodem statusu. Jeżeli kod jest równy 200 wyświetla zwróconą stronę. Jeżeli kod błędu jest inny, np. 404 wyświetla błąd.
Rola serwera:
- Walidacja przychodzącego żądania (requestu)
- Uwierzytelnienie - jeżeli serwer używa certyfikatu SSL
- Uwierzytelnienie użytkownika jeżeli aplikacja wymaga podania użytkownika i hasła
- Autoryzacja użytkownika - sprawdzenie czy ma dostęp do żądanych treści
- Przetworzenie żądania
- Obsługa błędów
- Wynik odpowiedzi może zostać zapamiętany w pamięci (cache) co pozwoli przetworzyć kolejne, takie samo zapytanie znacznie szybciej
- Kompresja wyniku w celu zredukowania ilości przesyłanych danych
- Logowanie danych zapytania, statystyk
Rola klienta:
- Przesyłanie żądań do serwera
- Uwierzytelnianie serwera gdy ten dysponuje certyfikatem SSL
- Przetworzenie odpowiedzi z serwera i wyświetlenie odpowiedzi
- Uruchamianie skryptów po stronie przeglądarki (JavaScript)
Niektóre komendy HTTP:
- GET - pobieranie danych
- POST - wysyłanie danych do serwera (np. pola formularza)
- PUT - pozwala tworzyć dane bezpośrednio na serwerze (o ile użytkownik ma do tego prawo)
- DELETE - usuwa dane po stronie serwera (o ile użytkownik ma do tego prawo)
- HEAD - zwraca metadane strony bez jej pobierania; jeżeli strona została zapisane w pamięci (cache) po stornie przeglądarki, można wykorzystać HEAD w celu weryfikacji czy dane po stronie serwera się zmieniły
- OPTIONS - zwraca listę obsługiwanych komend przez serwer
- TRACE - diagnostyka i śledzenie wysłanego żądania
- CONNECT - tworzy tunel, np. gdy chcemy użyć serwera proxy
Kody statusów podzielone są na grupy:
- 1xx - informacje - żądanie zostało dostarczone do serwera i wciąż jest przetwarzane
- 2xx - żądanie zostało poprawnie przetworzone
- 3xx - żądanie przekierowania - klient musi użyć innego adresu aby otrzymać żądane dane
- 4xx - błąd klienta - w żądaniu (requescie) albo serwer nie wie jak przetworzyć zapytanie
- 5xx - błędy serwera; serwer nie jest w stanie przetworzyć zapytania
Pełną listę kodów odpowiedzi można sprawdzić w Wikipedii.
Brak komentarzy:
Prześlij komentarz