HTTP jest protokołem bezstanowym, więc samo przejście na kolejną stronę nie "pamięta" automatycznie danych z poprzedniego żądania. Mechanizm sesji pozwala utrzymać stan użytkownika pomiędzy wieloma żądaniami i podstronami. W PHP, aby móc korzystać z danych sesji (np. tablicy $_SESSION), należy najpierw zainicjować lub wznowić sesję funkcją session_start().
Dlatego poprawna jest odpowiedź: "wielostronicowej witryny, która wymaga dostępu do danych przy przechodzeniu pomiędzy stronami." – to dokładnie opisuje przypadek użycia sesji: przenoszenie danych użytkownika między kolejnymi odsłonami i skryptami.
Pozostałe odpowiedzi są mylące:
- "wczytywania danych z plików zewnętrznych." – wczytywanie plików realizuje się innymi mechanizmami (np. funkcjami do odczytu plików lub dołączaniem plików). Sesja nie służy do pobierania danych z pliku, tylko do przechowywania danych związanych z użytkownikiem w trakcie jego wizyty.
- "dowolnej witryny, która obsługuje ciasteczka." – obsługa ciasteczek nie oznacza automatycznie potrzeby sesji. Sesja może wykorzystywać ciasteczko jako nośnik identyfikatora sesji, ale wiele stron używa ciasteczek bez sesji (np. zgody marketingowe, preferencje). Wywołanie session_start() ma sens wtedy, gdy aplikacja faktycznie korzysta z danych sesji.
- "obsługi formularza." – formularz można obsłużyć bez sesji (np. jednorazowe przesłanie danych metodą POST i ich walidacja). Sesje są przydatne przy formularzach w szczególnych przypadkach (tokeny anty-CSRF, komunikaty po przekierowaniu), ale nie są warunkiem koniecznym "obsługi formularza" jako takiej.
Wskazówka egzaminacyjna: gdy w pytaniu pojawia się potrzeba utrzymania stanu między stronami (logowanie, koszyk, uprawnienia), myśl o sesji i o konieczności jej rozpoczęcia przed użyciem danych sesyjnych.