Паспяховы адказ CONNECT не мае цела HTTP
Завяршыце паспяховы адказ HTTP/1.1 CONNECT на мяжы загалоўка, затым перадавайце байты тунеля без chunk-фарматавання і без перазапуску злучэння.
Паспяховы адказ HTTP/1.1 CONNECT сканчаецца пасля раздзела загалоўка:
HTTP/1.1 200 Connection Established
Пасля гэтай мяжы тунель нясе тое ж злучэнне. Для прызначэння HTTPS наступныя байты кліента звычайна пачынаюць абмен TLS з прызначэннем.
Проксі не павінен дадаваць Transfer-Encoding ці Content-Length да паспяховага адказу CONNECT. Цела адказу HTTP, якое трэба было б дзяліць на chunks, няма. Даданне пустога завяршальнага chunk наадварот укараніла б байты ў новы тунель.
У кліента таксама ёсць патрабаванне: ён павінен ігнараваць гэтыя поля фарматавання, калі яны з’яўляюцца ў адказе CONNECT 2xx. Таму няправільны адпраўнік не з’яўляецца падставай апісваць кожнага сумленнага кліента як такога, што чакае падзеленае цела.
Трымайце ўстаноўленае злучэнне адкрытым для перадачы. Зачыніць яго пасля 200 — значыць знішчыць тунель; адкрыццё іншага злучэння не з’яўляецца працягам прынятага запыту CONNECT.
Няўдалы адказ CONNECT апрацоўваецца інакш і можа несці звычайнае цела памылкі HTTP. Аддзяляйце гэты адказ ад паспяховай перадачы, калі рэалізуеце або чытаеце трасіроўку проксі.