A conexión ábrese. As cabeceiras da petición saen. Parece que o ficheiro non avanza. Unha explicación é que o cliente espera unha resposta a Expect: 100-continue antes de enviar o seu corpo.

O mecanismo permite ao destinatario rexeitar unha petición a partir das súas cabeceiras antes de que se envíe un envío potencialmente grande. A secuencia exitosa habitual é:

request headers → 100 Continue → request body → final response

100 é informativo: permite ao cliente continuar, pero non significa que o ficheiro se almacenase nin que a operación da aplicación tivese éxito. Un Git push que devolve HTTP 417 é un caso concreto de expectativa fallida.

Determine que resposta recibiu o cliente

ObservaciónSignificado que investigar
100 ContinueO cliente pode continuar co corpo
Un rexeitamento final antes do corpoA operación rexeitouse na fase de cabeceiras
Ningunha resposta intermedia esperadaA política de espera do cliente e o tratamento nesa ruta

curl ofrece un axuste de espera específico para expect-continue. Se esa espera de libcurl expira sen a resposta esperada, envía o corpo de todos os xeitos; a expiración non é automaticamente un fallo de toda a transferencia. O axuste é independente do tempo permitido para a transferencia completa. Aumentar este último pode deixar a mesma pausa inicial sen explicar.

Identifique tamén que conversación HTTP transporta Expect. Cun CONNECT normal a un destino HTTPS, o intercambio de envío do sitio web está dentro de TLS; o proxy de reenvío non inspecciona simplemente a súa cabeceira de expectativa interna. Unha ruta de interceptación ou de reenvío en texto claro é distinta.

Eliminar a expectativa pode ser unha elección deliberada de compatibilidade, pero significa que o cliente pode comezar a enviar un corpo grande antes de saber dun rexeitamento temperán. Compare ese comportamento co requisito real. Non describa unha solución histórica para un proxy antigo como unha instrución universal de quitar a cabeceira de cada envío.

Artigos relacionados