У меня есть программа на C++, работающая как скрипт CGI, и я использую Cgicc для выполнения некоторых синтаксических разборов и форматирования для меня (хотя в какой-то момент он, вероятно, будет заменен). При построении моего ответа, я использую cgicc::HttpResponseHeader
, который создаст мне что-то вродеMalformed header из сценария. Плохой заголовок = HTTP/1.1 302 Найдено
HTTP/1.1 302 Found
Location: www.bla.com
Это выглядит довольно стандартным для меня. Тем не менее, Вебсервер дроссели на том, что, давая мне
<...> malformed header from script. Bad header=HTTP/1.1 302 Found: script.cgi
Я узнал, как это исправить:
- Снимите
HTTP/...
линию вместо - добавить строку
Status: 302 Found
И фактически, это именно то, что делает cgicc::HttpRedirectHeader
. У меня есть два вопроса:
- Это линия
HTTP/1.1 302 Found
не стандарт? - Если это не так, то почему
cgicc::HttpResponseHeader
делать это? Если это так, почему мой веб-сервер задыхается?
Примечание. Я не ищу способы обойти это, я знаю, как это сделать. Я просто хочу понять, что происходит.
Приветствия Оле
Хорошо, это объясняет это. Есть ли какой-либо способ для меня, используя CGI, указать, какую версию HTTP я хочу использовать (1.0/1.1)? Мне сейчас это не нужно, но из любопытства хотелось бы лучше понять CGI. – Ole
Извините, я не знаю, позволяет ли стандартный CGI управлять этим. Вы можете взять весь процесс, используя скрипт 'nph', и в этом случае вы можете делать все, что вам нравится. – RichieHindle