2016-01-08 3 views
-2

Je voudrais savoir si il est possible de désactiver le HTTPSession pour un serveur d'applications gérant uniquement les services Web RESTful.Désactiver HTTPSession pour les services Web sans état

Je ne sais pas s'il existe des serveurs d'applications ou des conteneurs de servlets spécifiques conçus pour gérer les services Web micro RESTful.

Je pense que la désactivation de tout le concept de la session donnera les avantages suivants:

  • Les meilleures performances
  • Aucun risque pour enregistrer les données dans la session briser le concept d'apatride d'un webservice RESTful
  • Moins classes chargées par le chargeur de classe
  • Aucune information inutilisée n'est enregistrée dans la session (par exemple, l'ID de session, l'état de la session)
  • moins l'accès à la synchronisation blocs nized (je pense qu'au moins dans la session la valeur de lastAccessedTime est mis à jour pour chaque demande et cela devrait se faire dans un bloc synchronisé)

S'il n'y a pas de serveur d'application ou d'un conteneur de servlet qui peut le faire: Existe-t-il un autre moteur Java qui peut gérer les micro-services sans créer quelque chose de similaire à un HttpSession?

+0

J'ai édité la question en ajoutant une nouvelle requête à la fin. Donc ce n'est pas la même chose de l'autre. –

+1

Cela ne fait que tromper la question en en demandant une secondaire qui est incroyablement vague et large. – Gimby

+0

N'est-ce pas si infâme qu'Andres a répondu avec un moteur possible pour le faire. –

Répondre

1

Vous ne pouvez pas désactiver HttpSession sur un conteneur de servlet, comme Tomcat.

Peut-être Play framework serait une bonne approche pour la mise en œuvre de votre conception.

+0

Merci J'en jetterai un coup d'oeil –

1

Vous ne pouvez pas désactiver complètement le HttpSession.

Mais vous pouvez vous assurer qu'un HttpSession ne sera pas créé dans votre application. Pour ce faire, assurez-vous les méthodes suivantes ne sont pas invoquées (par vous ou par les cadres que vous utilisez):


Microservices est un principe de conception d'architecture. Si vous voulez utiliser Spring, il y a un guide you can follow.

+0

J'ai appelé request.getSession (false) et il retourne une session aussi si aucune autre demande n'a été faite. –

+1

Ensuite, la session a été créée ailleurs. Les services de repos sont-ils intégrés dans une application qui a ouvert la session? – thst

+0

@DavideLorenzoMARINO Jetez un oeil à la [documentation] (http://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpServletRequest.html#getSession-boolean-): * Si 'create' est 'false' et la requête n'a pas de' HttpSession' valide, cette méthode retourne 'null' *. Donc, je crois que votre session est en cours de création ailleurs. Votre cadre ne le fait-il pas pour vous? –