我正在尝试使用Perl创建一个标准的论坛风格网站,但不使用CGI或任何其他框架。我在使用一个名为" cookies.pl,"的脚本之前已经看过了。但无法找到任何类型的文档。有没有办法用核心模块设置/读取cookie?
答案 0 :(得分:4)
首先,我假设当你说你不想使用" CGI"时,你的意思是Perl模块CGI.pm
而不是通用网关接口(CGI)方法与Web服务器通信,由CGI.pm
模块实现。
其次,此答案仅供参考和娱乐之用。不建议尝试实现自己的CGI处理程序以在生产环境中使用。除非你确切地知道自己在做什么,否则这真的是一个真正的坏主意。即使你做了,也可能仍然是一个坏主意。如果您确切知道自己正在做什么,那么您就不必询问有关如何实施Cookie处理的界面基本部分的问题。
完成所有这些操作后,直接处理cookie非常简单。
Set-Cookie
HTTP标头。在最基本的形式中,这看起来像Set-Cookie: CookieName=CookieValue
。还有许多其他选项可以添加到此基本格式中,这些格式在网络的各个位置都是documented。如果您现在想知道"如何发送HTTP标头?",您发送给客户端的每一行文本(即print
到{{1在第一个空行之前是一个HTTP头:
STDOUT
print "Content-Type: text/html\n"; # Content-Type header is mandatory!
print "Set-Cookie: CookieName=CookieValue\n"; # Header to set a cookie
print "\n"; # Blank line = end of headers
# continue on with sending the response body now that headers are done
,该变量由Web服务器作为其CGI实现的一部分提供,并包含以分号分隔的列表,其中列出了与客户端一起收到的所有cookie#39 ; s HTTP请求。这在Perl中以HTTP_COOKIE
进行访问。