2009-12-28 8 views
22

J'écris une webapp qui répète une redirection HTTP. Existe-t-il un moyen de forcer le client à transférer les en-têtes inclus dans la réponse à la nouvelle URL?Comment faire pour rediriger les en-têtes sur la redirection HTTP

Exemple demande:

POST /insertion HTTP/1.1 
Content-Length: 9 

(content) 

réponse Webapp:

HTTP/1.x 302 Found 
Location: /dock 
Mydata: asdf 

demande du client suivant:

GET /dock HTTP/1.1 
Mydata: asdf 

Mise à jour: Il semble que je n'étais pas clair sur la question. Je sais que les cookies seraient utiles, mais je ne peux pas les utiliser. Savez-vous s'il existe quelque chose comme ce que je cherche?

Répondre

23

À l'exception des cookies HTTP, il n'y a rien dans la spécification de protocole concernant les en-têtes de transfert. Le client doit implémenter cette fonctionnalité.

4

C'est pour quoi les cookies sont utilisés. Vous pouvez le définir pour la session du navigateur et l'invalider après la prochaine requête.

+6

qui ne fonctionne pas si grand si les réoriente couvrent différents domaines. –

+4

Ou si vous utilisez des demandes sans état. – cadavre

16

Mettez vos données dans la nouvelle URL comme argument:

HTTP/1.x 302 Found 
Location: /dock?data=asdf 

ou l'enregistrer dans les cookies

HTTP/1.x 302 Found 
Location: /dock 
Set-Cookie: data=asdf