Врската се отвора. Заглавјата на барањето заминуваат. Изгледа дека датотеката не се движи. Едно објаснување е дека клиентот чека одговор на Expect: 100-continue пред да го пренесе своето тело.

Механизмот му овозможува на примачот да одбие барање врз основа на неговите заглавја пред да се испрати потенцијално големо прикачување. Обичната успешна низа е:

request headers → 100 Continue → request body → final response

100 е информативен: му овозможува на клиентот да продолжи, но не значи дека датотеката е зачувана или дека операцијата на апликацијата успеала. Git push што враќа HTTP 417 е еден конкретен случај на неуспешно очекување.

Откријте кој одговор го примил клиентот

НабљудувањеШто да се истражи
100 ContinueКлиентот може да продолжи со телото
Конечно одбивање пред телотоОперацијата беше одбиена во фазата на заглавја
Нема очекуван привремен одговорПолитиката на чекање на клиентот и постапувањето на тој пат

curl има посебна поставка за чекање expect-continue. Ако тоа чекање на libcurl истече без очекуваниот одговор, телото сепак се испраќа; истекот сам по себе не е неуспешен целосен пренос. Поставката е одделна од времето дозволено за целосниот пренос. Зголемувањето на второто може да ја остави истата почетна пауза необјаснета.

Исто така утврдете кој HTTP разговор го носи Expect. При обичен CONNECT до HTTPS одредиште, размената за прикачување на веб-страницата е внатре во TLS; посредникот едноставно не ја прегледува внатрешната заглавје за очекување. Патот на пресретнување или пренос на чист текст е различен.

Отстранувањето на очекувањето може да биде свесен избор за компатибилност, но тоа значи дека клиентот може да почне да испраќа големо тело пред да дознае за рано одбивање. Споредете го тоа однесување со вистинското барање. Не опишувајте историско решение за стар посредник како универзална инструкција за отстранување на заглавјето од секое прикачување.

Поврзани статии