Холболт нээгдэнэ. Хүсэлтийн толгой мөрүүд явна. Файл хөдөлж байгаа юм шиг харагдахгүй. Нэг тайлбар нь клиент өөрийн биеийг илгээхийн өмнө Expect: 100-continue-д хариу хүлээж байгаа явдал юм.

Энэ механизм нь хүлээн авагчид боломжит том байршуулалтыг илгээхийн өмнө хүсэлтийг толгой мөрүүдээр нь татгалзах боломж олгодог. Энгийн амжилттай дараалал нь:

request headers → 100 Continue → request body → final response

100 бол мэдээллийн шинжтэй: клиентэд үргэлжлүүлэх боломж олгодог боловч файл хадгалагдсан эсвэл програмын үйлдэл амжилттай болсон гэсэн үг биш. HTTP 417 буцаадаг Git push бол хүлээлт бүтэлгүйтсэн нэг тодорхой тохиолдол юм.

Клиент ямар хариу хүлээн авсныг тодорхойл

АжиглалтЮуг шалгах
100 ContinueКлиент биеэ илгээж болно
Биеэс өмнөх эцсийн татгалзалҮйлдлийг толгой мөрийн шатанд татгалзсан
Хүлээгдэж буй завсрын хариу байхгүйКлиентийн хүлээх бодлого ба тухайн замд хийх боловсруулалт

curl нь expect-continue хүлээлтийн тусдаа тохиргоотой. Хэрэв libcurl-ийн энэ хүлээлт хүлээгдэж буй хариугүйгээр дуусвал биеийг ямар ч тохиолдолд илгээдэг; хугацаа дуусах нь өөрөө бүх дамжуулалтыг бүтэлгүйтсэн гэсэн үг биш. Тохиргоо нь бүрэн дамжуулалтад олгосон хугацаанаас тусдаа. Сүүлийнхийг нэмэгдүүлэх нь мөн адил анхны завсарлагыг тайлбарлалгүй орхиж болно.

Мөн Expect-ийг аль HTTP яриа дамжуулж байгааг тодорхойл. HTTPS очих газар руу энгийн CONNECT хийх үед вэбсайтын байршуулалтын солилцоо TLS-ийн дотор байна; дамжуулагч прокси түүний дотоод хүлээлтийн толгойг шууд шалгадаггүй. Захыг нь таслах эсвэл энгийн текстээр дамжуулах зам өөр.

Хүлээлтийг арилгах нь зориудын нийцлийн сонголт байж болох ч энэ нь клиент эрт татгалзсан тухай мэдэхээс өмнө том биеийг илгээж эхэлж болно гэсэн үг. Тэр зан төлөвийг бодит шаардлагатай харьцуул. Хуучин проксийн түүхэн шийдлийг бүх байршуулалтаас толгойг устгах нийтлэг заавар гэж тайлбарлаж болохгүй.

Холбоотой нийтлэлүүд