Requests: запятая в случае: объединить несколько заголовков Set-Cookie

Созданный на 7 апр. 2017  ·  3Комментарии  ·  Источник: psf/requests

Многие веб-приложения отправляют файлы cookie в нескольких заголовках Set-Cookie, один заголовок для одного файла cookie. Запросы объединяют эти заголовки в один большой заголовок, разделенный запятой.

Из того же веб-приложения в requests.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

В запросах:
соотв. заголовки выглядят так

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 неверно интерпретировали эти файлы cookie, потому что разделителем является запятая, а в поле EXPIRES запятая отделяет день и дату.

Основная проблема в модификации трафика. На мой взгляд, тогда сервер отправляет несколько заголовков. Библиотека должна возвращать несколько заголовков.

Самый полезный комментарий

Запросы не обещают оставить заголовки в том виде, в котором они были получены с сервера. Прямо сейчас я настоятельно рекомендую вам использовать cookiejar Requests для хранения файлов cookie, а не извлекать их из заголовков: мы правильно вставляем их туда.

В долгосрочной перспективе нам, вероятно, следует добавить исправление, чтобы исключить заголовок Set-Cookie из присоединения таким образом.

Все 3 Комментарий

Запросы не обещают оставить заголовки в том виде, в котором они были получены с сервера. Прямо сейчас я настоятельно рекомендую вам использовать cookiejar Requests для хранения файлов cookie, а не извлекать их из заголовков: мы правильно вставляем их туда.

В долгосрочной перспективе нам, вероятно, следует добавить исправление, чтобы исключить заголовок Set-Cookie из присоединения таким образом.

Это нас укусило и стоило нам нескольких часов. Я хочу проголосовать за то, чтобы оставить Set-Cookie нетронутым. Почему запросы все равно возятся с заголовками? Есть ли для этого веская причина? ИМХО это всем только усложняет. Что мне не хватает?
Спасибо за хорошую работу!

Привет, есть способ правильно анализировать заголовки с https://github.com/Ousret/kiss-headers requests не сможет изменить их представление для заголовков в ближайшее время.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги