You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Новое действие правила cut (add_rule, update_rule): ответ идёт от сервера, а прокси обрывает его посреди тела, когда приложению ушло after_bytes байт тела или after_percent (1–99) от Content-Length. HTTP/1.1 — соединение закрывается без конца тела, HTTP/2 — сбрасывается только этот поток: приложение видит обрыв сети посреди загрузки, а не короткий ответ. Нужно ровно одно из двух полей; download_kbps и delay_ms работают как у остальных действий, и download_kbps в том же правиле даёт обрыв посреди медленной загрузки. times у cut считает оборванные ответы, а не запросы: HEAD и другие не оборванные ответы правило не тратят, поэтому cut с times: 1 рвёт первый ответ, дошедший до точки, а повтор или докачка с Range проходят целиком. Оборванным может оказаться и не тот запрос — проба, побочный Range медиаплеера или запрос, брошенный самим приложением (прокси успевает отдать ему больше, чем оно прочитало): после первой попытки сверить по list_flows с rule, какой запрос получил cut_after_bytes, и при промахе поменять точку через update_rule с reset_hits. Без times ответ add_rule предупреждает, что оборвётся и каждый повтор.
У оборванного запроса в истории rules несёт cut_after_bytes, а error записи — «AgentProxy rule … cut the response after N bytes of body», тело — дошедшая часть. Не оборванный ответ получает skipped с причиной: ответ правила respond/sse, ответ без тела, тело не длиннее точки обрыва, тело под правкой rewrite, SSE (его рвёт events с close), after_percent без Content-Length, ответ без длины клиенту HTTP/1.0, ответ, оборванный раньше точки клиентом или сервером, обрыв раньше другим правилом cut, правило исчерпано другими ответами, выключено или удалено раньше, чем ответ дошёл до точки обрыва. Ответ без длины клиенту HTTP/1.1 прокси отдаёт chunked и закрывает соединение после него: иначе закрытие соединения было бы обычным концом такого ответа.
Скилл agentproxy, rules.md: раздел «Обрыв cut», строки про обрыв на медленной загрузке («Скорость») и про докачку после обрыва («Порядок и сценарии»).