Żądania i odpowiedzi w protokole HTTP
Załóżmy, że użytkownik chce otworzyć w przeglądarce pewną stronę pewnej witryny. Aby to zrobić, użytkownik albo przechodzi przez pewny link, albo wpisuje adres URL strony w pasek adresowy przeglądarki. Przy czym oba sposoby są technicznie równoważne.
Następnie przeglądarka wysyła do serwera żądanie (request), w którym prosi serwer o zwrócenie strony pod wskazanym adresem URL. Serwer otrzymuje żądanie przeglądarki, formułuje odpowiedź (response) i wysyła ją z powrotem do przeglądarki.
Żądanie i odpowiedź są po prostu ciągami znaków, sformatowanymi w specjalny sposób. Zasady formatowania tych ciągów reguluje protokół HTTP.
Zatem cała interakcja klienta i serwera sprowadza się do przerzucania wiadomości, podobnie jak piłeczki w grze w ping-ponga.
Przy czym inicjacja żądania jest obowiązkowa. Oznacza to, że serwer zawsze wysyła odpowiedź na żądanie przeglądarki. Nie może być tak, że serwer coś wyśle do przeglądarki sam, bez poprzedzającego żądania przeglądarki.