mirror of
https://github.com/SpaceHead1C/1c_http.git
synced 2026-03-12 03:35:16 +02:00
2.0 KiB
2.0 KiB
Конечный детерминированный автомат разбора Set-Cookie
Проблема
В связи с выбором 1С в качестве строки-разделителя символ , при соединении заголовков HTTP-ответа с одинаковым именем возникает неопределённость при разборе значения заголовка Set-Cookie.
Решение
В качестве решения выбрал и построил ДКА.
Граф нарисован с помощью сервиса diagrams.net. Текущая версия экспортирована в /doc/dfa.xml.
Состояния
A– имя CookieB– значение CookieC– имя атрибутаD– значение атрибутаAB– это либо имя очередного Cookie, либо значение текущего CookieAD– это либо имя очередного Cookie, либо значение атрибута текущего Cookie
Каждое состояние может быть финальным.
Переходы
1– встретился токен=2– встретился токен;3– встретился токен,4– EOS (больше нечего читать)
Проблема не решена полностью
Автомат не "поймёт" 2 случая:
- Значение Cookie содержит символ
,, и затем следует Cookie без значения и атрибутов - Значение последнего атрибута Cookie содержит символ
,, и затем следует Cookie без значения и атрибутов
