Паспяховы адказ 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. Аддзяляйце гэты адказ ад паспяховай перадачы, калі рэалізуеце або чытаеце трасіроўку проксі.

Падобныя артыкулы