я пытаюсь разобрать set-cook ie заголовки с регулярным выражением в Python. Для заголовка set-cook ie я прочитал RF C 6265, раздел 4.1 , в котором описано, как создать заголовок set-cook ie. Я пытаюсь построить регулярное выражение из спецификации, и это мое текущее состояние:
([\x21\x23-\x27\x2A\x2B\x2D-\x39\x41-\x5A\x5E-\x7A\x7C\x7E]+)=[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]*(;[\x20](((Expires|expires)=(Mon|Tue|Wed|Thu|Fri|Sat|Sun),[\x20][0-9]{2}-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-[0-9]{4}[\x20][0-9]{2}:[0-9]{2}:[0-9]{2}[\x20]GMT)|((Max-Age|max-age)=[1-9]+)|((Path|path)=[\x20-\x3A\x3C-\x7E]+)|(Secure|secure)|(HttpOnly|httponly)|([\x20-\x3A\x3C-\x7E]*)))*
У меня проблемы с рекурсивным определением субдомена в заголовке set-cook ie (domain=...
), который описан в RF C 1034 Раздел 3.5 и нуждается в помощи, чтобы оформить это в регулярном выражении.
Но и мой предыдущий код работает не полностью. Например, этот set-cook ie header
VISITOR_INFO1_LIVE=M_6WYFFF_fo; path=/; domain=.youtube.com; secure; expires=Tue, 07-Jul-2020 00:17:35 GMT; httponly; samesite=None, GPS=1; path=/; domain=.youtube.com; expires=Thu, 09-Jan-2020 00:47:35 GMT, YSC=8sXes3YfFFF; path=/; domain=.youtube.com; httponly, VISITOR_INFO1_LIVE=M_6WYFFF_fo; path=/; domain=.youtube.com; secure; expires=Tue, 07-Jul-2020 00:17:35 GMT; httponly; samesite=None
включает в себя 4 куки (VISITOR_INFO1_LIVE
дважды, GPS
и YSC
), но мое регулярное выражение ловит только 3 куки (YSC
cook ie отсутствует). Я проверяю это на https://regex101.com/
Позже я бы проанализировал множество заголовков set-cook ie, чтобы узнать имя файлов cookie (или в RF C вызовах, которые готовят ie -имя).
Спасибо за помощь!