Ho un programma C++ che agisce come uno script CGI e attualmente sto usando Cgicc per eseguire l'analisi e la formattazione per me (anche se sarà probabilmente sostituito in qualche momento). Nel costruire la mia risposta, io uso cgicc::HttpResponseHeader
, che mi creare qualcosa di simileIntestazione non corretta dallo script. Intestazione errata = HTTP/1.1 302 Trovata
HTTP/1.1 302 Found
Location: www.bla.com
Questo sembra piuttosto standard per me. Tuttavia, il Webserver soffoca su questo, dandomi una
<...> malformed header from script. Bad header=HTTP/1.1 302 Found: script.cgi
ho scoperto come risolvere questo problema:
- rimuovere la linea
HTTP/...
- Aggiungi invece una linea
Status: 302 Found
E infatti, questo è esattamente ciò che fa cgicc::HttpRedirectHeader
. Ho ora due domande:
- Questa riga è
HTTP/1.1 302 Found
non standard? - Se non lo è, perché è
cgicc::HttpResponseHeader
farlo? Se lo è, perché il mio server web si soffoca su di esso?
Nota Non sto cercando modi per aggirare questo, so come farlo. Voglio solo capire cosa sta succedendo.
Acclamazioni Ole
Ok, questo lo spiega. C'è qualche modo per me, usando CGI, per specificare quale versione HTTP voglio usare (1.0/1.1)? Non ne ho davvero bisogno adesso, ma per curiosità vorrei capire meglio la CGI. – Ole
Mi dispiace, non so se CGI standard ti permette di controllarlo. Puoi prendere il controllo dell'intero processo usando uno script 'nph', nel qual caso puoi fare tutto quello che vuoi. – RichieHindle