在没有CGI的Perl中使用cookie

时间:2017-08-13 03:46:58

标签: perl cookies cgi

我正在尝试使用Perl创建一个标准的论坛风格网站,但不使用CGI或任何其他框架。我在使用一个名为" cookies.pl,"的脚本之前已经看过了。但无法找到任何类型的文档。有没有办法用核心模块设置/读取cookie?

1 个答案:

答案 0 :(得分:4)

首先,我假设当你说你不想使用" CGI"时,你的意思是Perl模块CGI.pm而不是通用网关接口(CGI)方法与Web服务器通信,由CGI.pm模块实现。

其次,此答案仅供参考和娱乐之用。不建议尝试实现自己的CGI处理程序以在生产环境中使用。除非你确切地知道自己在做什么,否则这真的是一个真正的坏主意。即使你做了,也可能仍然是一个坏主意。如果您确切知道自己正在做什么,那么您就不必询问有关如何实施Cookie处理的界面基本部分的问题。

完成所有这些操作后,直接处理cookie非常简单。

  • 要设置Cookie,请向客户端发送Set-Cookie HTTP标头。在最基本的形式中,这看起来像Set-Cookie: CookieName=CookieValue。还有许多其他选项可以添加到此基本格式中,这些格式在网络的各个位置都是documented

如果您现在想知道"如何发送HTTP标头?",您发送给客户端的每一行文本(即print到{{1在第一个空行之前是一个HTTP头:

STDOUT
  • 要读取cookie,请查看环境变量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进行访问。