Паузи при HTTP прикачување и Expect: 100-continue
Препознајте ја размената Expect: 100-continue и разликувајте ја нејзината кратка точка на одлучување од прикачување што заглавило при пренос на податоци.
Врската се отвора. Заглавјата на барањето заминуваат. Изгледа дека датотеката не се движи. Едно објаснување е дека клиентот чека одговор на 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; посредникот едноставно не ја прегледува внатрешната заглавје за очекување. Патот на пресретнување или пренос на чист текст е различен.
Отстранувањето на очекувањето може да биде свесен избор за компатибилност, но тоа значи дека клиентот може да почне да испраќа големо тело пред да дознае за рано одбивање. Споредете го тоа однесување со вистинското барање. Не опишувајте историско решение за стар посредник како универзална инструкција за отстранување на заглавјето од секое прикачување.