2015-12-16 28 views
0

我無法在Perl中設置標題。如何用Perl設置HTTP頭?

print "Expires: Thu, 08 May 2003 08:37:25 GMT\n\n"; 
print "Content-Type: text/html; charset=windows-1251\n\n"; 
print "Vary: Accept-Encoding\n\n"; 

第一個只工作。然後我有Content-Type: text/x-perl。哪裏不對?

+1

我忘記了,HTTP是否希望在標題之間使用雙CRLF,或者只有一個?我知道你必須在郵件正文之前加入兩個。順便說一句,CRLF通常是'\ r \ n' – vol7ron

+2

如果您使用完全爲您提供的模塊,則無需知道這些小細節。 :) –

+1

兩條新線用於將標題與正文分開。因此,您的標題在您的第一個新行(即您的第一個標題後)結束。 –

回答

3

我假設您使用CGI將您的Web服務器連接到Perl。 CGI使用空白行將響應主體與標題分開。由於

print "Expires: Thu, 08 May 2003 08:37:25 GMT\n\n"; 

打印Expires:頭之後一個空行,剩餘的打印語句被認爲是身體,而不是頭部的一部分。你想:

print "Expires: Thu, 08 May 2003 08:37:25 GMT\n"; 
print "Content-Type: text/html; charset=windows-1251\n"; 
print "Vary: Accept-Encoding\n\n"; 
+2

您可能想要刪除最後一個標題行的第二個'\ n'添加另一行'print'\ n「; #完成HTTP標頭'以避免在將來添加更多標題行時出現此確切錯誤。 –