Esta pregunta no se trata de cuándo usar GET o POST en general; se trata de cuál es el recomendado para manejar el cierre de sesión de una aplicación web. He encontrado mucha información sobre las diferencias entre GET y POST en el sentido general, pero no encontré una respuesta definitiva para este escenario en particular.
Como pragmático, me inclino a usar GET, porque implementarlo es mucho más simple que POST; solo suelta un enlace simple y listo. Este parece ser el caso con la gran mayoría de los sitios web en los que puedo pensar, al menos desde lo alto de mi cabeza. Incluso Stack Overflow maneja el cierre de sesión con GET.
Lo que me hace dudar es el argumento (aunque antiguo) de que algunos aceleradores web / proxies pre-cachean páginas yendo y recuperando cada enlace que encuentran en la página, por lo que el usuario obtiene una respuesta más rápida cuando hace clic en ellos. No estoy seguro de si esto aún se aplica, pero si este fuera el caso, entonces, en teoría, un usuario con uno de estos aceleradores sería expulsado de la aplicación tan pronto como inicie sesión, porque su acelerador encontraría y recuperaría el cierre de sesión enlace incluso si ella nunca hizo clic en él.
Todo lo que he leído hasta ahora sugiere que POST debe usarse para "acciones destructivas", mientras que las acciones que no alteran el estado interno de la aplicación, como las consultas y demás, deben manejarse con GET . En base a esto, la verdadera pregunta aquí es:
¿El cierre de sesión de una aplicación se considera una acción destructiva / altera el estado interno de la aplicación?