Tengo un programa C++ que actúa como script CGI, y actualmente estoy usando Cgicc para hacer algunos de los análisis sintácticos y de formateo para mí (aunque probablemente será reemplazado en algún momento). Al construir mi respuesta, yo uso cgicc::HttpResponseHeader
, lo que me va a crear algo así comoEncabezado mal formado del script. Bad header = HTTP/1.1 302 Found
HTTP/1.1 302 Found
Location: www.bla.com
Esto parece bastante normal para mí. Sin embargo, el servidor web se ahoga con eso, yo un
<...> malformed header from script. Bad header=HTTP/1.1 302 Found: script.cgi
dando descubrí cómo solucionar este problema:
- quitar la línea
HTTP/...
- Añadir lugar una línea
Status: 302 Found
Y de hecho, eso es exactamente lo que hace cgicc::HttpRedirectHeader
. Tengo ahora dos preguntas:
- ¿Esta línea
HTTP/1.1 302 Found
no es estándar? - Si no lo es, ¿por qué se hace
cgicc::HttpResponseHeader
? Si es así, ¿por qué mi servidor web se atraganta con él?
Nota No estoy buscando formas de evitar esto, sé cómo hacerlo. Solo quiero entender qué está pasando.
Saludos Ole
Bien, eso lo explica. ¿Hay alguna forma para mí, usando CGI, para especificar qué versión de HTTP quiero usar (1.0/1.1)? Realmente no necesito eso ahora, pero por curiosidad quisiera entender mejor CGI. – Ole
Lo siento, no sé si la CGI estándar te permite controlar eso. Puede hacerse cargo de todo el proceso utilizando un script 'nph', en cuyo caso puede hacer lo que quiera. – RichieHindle