To pytanie nie dotyczy tego, kiedy ogólnie używać GET lub POST; dotyczy tego, który jest zalecany do obsługi wylogowania z aplikacji internetowej. Znalazłem wiele informacji na temat różnic między GET i POST w sensie ogólnym, ale nie znalazłem jednoznacznej odpowiedzi dla tego konkretnego scenariusza.
Jako pragmatyk mam skłonność do używania GET, ponieważ jego implementacja jest znacznie prostsza niż POST; po prostu upuść prosty link i gotowe. Wydaje się, że tak jest w przypadku większości stron internetowych, o których mogę myśleć, przynajmniej z góry mojej głowy. Nawet przepełnienie stosu obsługuje wylogowanie za pomocą GET.
Waham się z (choć starym) argumentem, że niektóre akceleratory internetowe / serwery proxy wstępnie buforują strony, przechodząc i pobierając każdy link, który znajdują na stronie, więc użytkownik otrzymuje szybszą odpowiedź, gdy je kliknie. Nie jestem pewien, czy nadal tak jest, ale jeśli tak, to teoretycznie użytkownik z jednym z tych akceleratorów zostanie wyrzucony z aplikacji, gdy tylko się zaloguje, ponieważ jej akcelerator znajdzie i wyloguje się link, nawet jeśli nigdy go nie kliknęła.
Wszystko, co przeczytałem do tej pory, sugeruje, że POST powinien być używany do „działań destrukcyjnych”, podczas gdy działania, które nie zmieniają wewnętrznego stanu zapytań podobnych do aplikacji i takie powinny być obsługiwane za pomocą GET . Na tej podstawie prawdziwe pytanie brzmi:
Czy wylogowanie z aplikacji jest uważane za działanie destrukcyjne / czy zmienia wewnętrzny stan aplikacji?