Tôi có một chương trình C++ hoạt động như một kịch bản CGI, và tôi hiện đang sử dụng Cgicc để thực hiện một số phân tích cú pháp và định dạng cho tôi (mặc dù nó có thể sẽ được thay thế tại một số điểm). Khi xây dựng phản ứng của tôi, tôi sử dụng cgicc::HttpResponseHeader
, mà sẽ tạo cho tôi một cái gì đó giống nhưTiêu đề không đúng định dạng từ tập lệnh. Bad header = HTTP/1.1 302 Tìm thấy
HTTP/1.1 302 Found
Location: www.bla.com
này trông khá chuẩn đối với tôi. Tuy nhiên, Webserver cuộn cảm trên đó, đem lại cho tôi một
<...> malformed header from script. Bad header=HTTP/1.1 302 Found: script.cgi
tôi phát hiện ra làm thế nào để sửa lỗi này:
- Tháo dòng
HTTP/...
- Thêm thay vì một dòng
Status: 302 Found
Và trên thực tế, đó chính là điều mà cgicc::HttpRedirectHeader
thực hiện. Tôi hiện có hai câu hỏi:
- Đây có phải là dòng
HTTP/1.1 302 Found
không phải là tiêu chuẩn không? - Nếu không, tại sao là
cgicc::HttpResponseHeader
làm điều đó? Nếu có, tại sao máy chủ web của tôi bị nghẹt thở?
Lưu ý Tôi không tìm cách để giải quyết vấn đề này, tôi biết cách thực hiện điều đó. Tôi chỉ muốn hiểu những gì đang xảy ra.
Cheers Ole
Được rồi, điều đó giải thích. Có cách nào cho tôi, sử dụng CGI, để xác định phiên bản HTTP nào tôi muốn sử dụng (1.0/1.1)? Tôi không thực sự cần nó ngay bây giờ, nhưng tò mò muốn hiểu rõ hơn về CGI. – Ole
Xin lỗi, tôi không biết CGI tiêu chuẩn cho phép bạn kiểm soát điều đó hay không. Bạn có thể tiếp nhận toàn bộ quá trình bằng cách sử dụng tập lệnh 'nph', trong trường hợp đó bạn có thể làm bất cứ điều gì bạn thích. – RichieHindle