Requests: virgule au cas où : joindre plusieurs en-têtes Set-Cookie

Créé le 7 avr. 2017  ·  3Commentaires  ·  Source: psf/requests

De nombreuses applications Web envoient des cookies dans plusieurs en-têtes Set-Cookie, un en-tête pour un cookie. Les requêtes joignent ces en-têtes dans un grand en-tête séparé par une virgule.

De la même application Web à request.get

Set-Cookie: ASP.NET_SessionId=token1; path=/; HttpOnly
Set-Cookie: Cookie1=token2; path=/ecp
Set-Cookie: X-BEResource=WIN-RBFR0BDA7V7.testlab.net~1; path=/ecp/15.0.516.30; HttpOnly
Set-Cookie: X-BackEndCookie=token3; expires=Mon, 03-Apr-2017 12:25:07 GMT; path=/ecp; HttpOnly

Dans les demandes :
resp.headers cela ressemble à

Set-Cookie: ASP.NET_SessionId=token1; path=/; HttpOnly,    
  Cookie1=token2; path=/ecp, 
  X-BEResource=WIN-RBFR0BDA7V7.testlab.net~1; path=/ecp/15.0.516.30; HttpOnly, 
  X-BackEndCookie=token3; expires=Thu, 06-Apr-2017 08:27:22 GMT; path=/ecp; HttpOnly

Firefox, IE, Chrome invalide ont interprété ces cookies car le séparateur est une virgule mais dans le champ EXPIRE le jour et la date séparés par une virgule.

Problème principal dans le trafic de modification. À mon avis, le serveur envoie plusieurs en-têtes lib doit renvoyer plusieurs en-têtes

Commentaire le plus utile

Requests ne promet pas de laisser les en-têtes sous la forme où ils sont reçus du serveur. À l'heure actuelle, je vous recommande fortement d'utiliser le cookiejar Requests utilise pour stocker les cookies plutôt que de les extraire des en-têtes : nous les y insérons correctement.

À plus long terme, nous devrions probablement ajouter un correctif pour empêcher l'en-tête Set-Cookie de se joindre de cette manière.

Tous les 3 commentaires

Requests ne promet pas de laisser les en-têtes sous la forme où ils sont reçus du serveur. À l'heure actuelle, je vous recommande fortement d'utiliser le cookiejar Requests utilise pour stocker les cookies plutôt que de les extraire des en-têtes : nous les y insérons correctement.

À plus long terme, nous devrions probablement ajouter un correctif pour empêcher l'en-tête Set-Cookie de se joindre de cette manière.

Cela nous a mordus et nous a coûté pas mal d'heures. J'aimerais voter pour laisser Set-Cookie intact. Pourquoi les requêtes manipulent-elles les en-têtes de toute façon ? Y a-t-il une bonne raison à cela ? À mon humble avis, cela ne fait que compliquer les choses pour tout le monde. Qu'est-ce que je rate?
Merci pour votre bon travail!

Salut, il existe un moyen d'analyser correctement les en-têtes avec https://github.com/Ousret/kiss-headers requests ne pourra pas changer leur représentation pour les en-têtes de sitôt.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

remram44 picture remram44  ·  4Commentaires

NoahCardoza picture NoahCardoza  ·  4Commentaires

ReimarBauer picture ReimarBauer  ·  4Commentaires

brainwane picture brainwane  ·  3Commentaires

mitar picture mitar  ·  4Commentaires