Pregunta

Estoy intentando PUBLICAR un HTML (contenido en un archivo) en una URL usando Wget como esto:

wget -O- --debug
     --header=Content-Type:text/html
     --post-file=index.html
     http://localhost/www/encoder.ashx

La URL en la que se publica el HTML es el punto final de una aplicación web implementada mediante ASP.NET.El servidor responde con un 100 (Continuar) respuesta y Wget simplemente se detiene en seco en lugar de continuar con el real respuesta que debería sigue a continuación.

¿Se puede indicar de alguna manera a Wget que maneje una respuesta 100 (Continuar) o se trata de alguna limitación bien conocida de la herramienta?

Notas:

  • Noté que Wget nunca envía el Expect: 100-Continue El encabezado, tan técnicamente, el servidor no debe emitir una respuesta de 100 (continuar).

    ACTUALIZAR: Parece que esto es posible, según §8.2.3 de RFC 2616 (Protocolo de transferencia de hipertexto - HTTP/1.1):

    Un servidor de origen no debe enviar una respuesta de 100 (continuar) si el mensaje de solicitud no incluye un campo esperado-cabeza-header con la expectativa de "100 contenedores", y no debe enviar una respuesta de 100 (continuar) si dicha solicitud proviene de un cliente HTTP/1.0 (o anterior).Hay una excepción a esta regla:para compatibilidad con RFC 2068, Un servidor puede enviar un estado de 100 (continuar) en respuesta a una solicitud HTTP/1.1 PUT o POST que no incluye un campo esperado-Header-Header con la expectativa "100- Continuar". Esta excepción, cuyo propósito es minimizar los retrasos en el procesamiento del cliente asociados con una espera no declarada de espera para 100 (continuar), se aplica solo a las solicitudes HTTP/1.1 y no a las solicitudes con ningún otro valor de versión HTTP.

  • rizo no tiene problemas con tal transacción.envía un Expect: 100-Continue encabezado y continúa con 100 (continuar) respuesta a la real.

Para obtener más información, aquí está el seguimiento de depuración completo de la transacción de la invocación que se muestra arriba:

Setting --post-file (postfile) to index.html
Setting --header (header) to Content-Type:text/html
DEBUG output created by Wget 1.10 on Windows.

--13:29:17--  http://localhost/www/encoder.ashx
           => `-'
Resolving localhost... seconds 0.00, 127.0.0.1
Caching localhost => 127.0.0.1
Connecting to localhost|127.0.0.1|:80... seconds 0.00, connected.
Created socket 296.
Releasing 0x01621a10 (new refcount 1).

---request begin---
POST /www/encoder.ashx HTTP/1.0
User-Agent: Wget/1.10
Accept: */*
Host: localhost
Connection: Keep-Alive
Content-Type: text/html
Content-Length: 30984

---request end---
[writing POST file index.html ... done]
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 100 Continue
Server: ASP.NET Development Server/9.0.0.0
Date: Wed, 24 Sep 2008 11:29:17 GMT
Content-Length: 0

---response end---
100 Continue
Closed fd 296
13:29:17 ERROR 100: Continue.
¿Fue útil?

Solución

Miré el código fuente de wget para Windows y, hasta donde puedo decir, el resultado de depuración proviene de la condición de error genérica cuando wget no puede analizar la respuesta correctamente.Parece que esto es sólo una limitación de wget, por lo que probablemente tendrás que usar curl o algún otro método para evitar encontrar este problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top