39 lines
3.5 KiB
XML
39 lines
3.5 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" width="960" height="560" viewBox="0 0 960 560" role="img" aria-labelledby="title desc">
|
||
<title id="title">Три ограничения ожидания в libcurl</title>
|
||
<desc id="desc">Схема сопоставляет connect timeout, общий timeout и пару low speed limit плюс low speed time. Общий лимит охватывает соединение, а low speed отслеживает среднюю скорость передачи ниже заданного порога.</desc>
|
||
<defs>
|
||
<linearGradient id="bg" x1="0" y1="0" x2="1" y2="1">
|
||
<stop offset="0" stop-color="#14213d"/>
|
||
<stop offset="1" stop-color="#1d3557"/>
|
||
</linearGradient>
|
||
<marker id="arrow" markerWidth="10" markerHeight="10" refX="7" refY="3" orient="auto">
|
||
<path d="M0,0 L0,6 L8,3 z" fill="#a8c7e8"/>
|
||
</marker>
|
||
</defs>
|
||
<rect width="960" height="560" rx="28" fill="url(#bg)"/>
|
||
<text x="54" y="68" fill="#fff" font-family="Arial, sans-serif" font-size="30" font-weight="700">Три условия остановки у одного cURL-вызова</text>
|
||
<text x="54" y="103" fill="#c8daec" font-family="Arial, sans-serif" font-size="18">Они отвечают на разные вопросы и не заменяют друг друга</text>
|
||
|
||
<rect x="62" y="148" width="836" height="108" rx="18" fill="#0e1b30" stroke="#6b93bd" stroke-width="2"/>
|
||
<text x="88" y="184" fill="#7de0cf" font-family="Arial, sans-serif" font-size="20" font-weight="700">CURLOPT_CONNECTTIMEOUT</text>
|
||
<text x="88" y="216" fill="#d7e8f7" font-family="Arial, sans-serif" font-size="17">До соединения: DNS → TCP → TLS.</text>
|
||
<text x="88" y="239" fill="#d7e8f7" font-family="Arial, sans-serif" font-size="17">После него connect timeout уже не действует.</text>
|
||
<rect x="698" y="172" width="168" height="58" rx="12" fill="#1c6b61"/>
|
||
<text x="723" y="207" fill="#fff" font-family="Arial, sans-serif" font-size="18" font-weight="700">например, 2 с</text>
|
||
|
||
<line x1="480" y1="274" x2="480" y2="310" stroke="#a8c7e8" stroke-width="3" marker-end="url(#arrow)"/>
|
||
|
||
<rect x="62" y="322" width="836" height="108" rx="18" fill="#0e1b30" stroke="#d96b7d" stroke-width="2"/>
|
||
<text x="88" y="358" fill="#ffa7b5" font-family="Arial, sans-serif" font-size="20" font-weight="700">CURLOPT_TIMEOUT</text>
|
||
<text x="88" y="390" fill="#d7e8f7" font-family="Arial, sans-serif" font-size="17">Весь перенос от старта до конца.</text>
|
||
<text x="88" y="413" fill="#d7e8f7" font-family="Arial, sans-serif" font-size="17">Connect timeout находится внутри этого потолка.</text>
|
||
<rect x="698" y="346" width="168" height="58" rx="12" fill="#963f53"/>
|
||
<text x="723" y="381" fill="#fff" font-family="Arial, sans-serif" font-size="18" font-weight="700">например, 8 с</text>
|
||
|
||
<rect x="62" y="462" width="400" height="58" rx="14" fill="#2b4e70" stroke="#f3a348"/>
|
||
<text x="84" y="498" fill="#fff" font-family="Arial, sans-serif" font-size="18" font-weight="700">LOW_SPEED_LIMIT + LOW_SPEED_TIME</text>
|
||
<rect x="490" y="462" width="408" height="58" rx="14" fill="#2b4e70" stroke="#f3a348"/>
|
||
<text x="514" y="487" fill="#ffdfb0" font-family="Arial, sans-serif" font-size="16">Пример: ниже 100 Б/с 15 секунд</text>
|
||
<text x="514" y="509" fill="#d7e8f7" font-family="Arial, sans-serif" font-size="15">Это граница низкой скорости, не отдельный API read timeout.</text>
|
||
</svg>
|