非Web程序员的Web编程(使用Perl)

6

我想开始学习使用 Perl 进行 Web 编程(Perl 是我唯一掌握的语言)。问题是,除了浏览网页之外,我没有与网络有关的任何先前知识。我不知道从哪里开始。

因此,我的问题是...

我应该从哪里开始学习 Web 编程?我需要知道什么?我应该使用什么工具?

提前感谢每个回答和帮助我的人。


4
不,他在问关于Perl的事情。 - Russ Clarke
@Michael Petrotta:是的,我在谈论Perl。但是感谢提供链接。 - Dynamic
1
很好。我原以为会找到很多重复的内容,但对于初学者来说,没有太多与Perl相关的内容。 - Michael Petrotta
3个回答

15

理解的关键点如下:

向浏览器发送的内容

......或者说,你打算发送给浏览器的内容,但了解其他可用内容也很有用(特别是在复杂的Web应用程序中,你需要选择适当的数据格式)。

例如:

  • HTML
  • CSS
  • JavaScript
  • Images
  • JSON
  • XML
  • PDFs

当你动态生成数据时,你还应该了解可用的工具(例如,Perl社区强烈推荐使用TT来生成HTML,但还有其他选项,比如Mason;而我通常会选择JSON::Any来处理JSON)。

传输机制

  • HTTP (包括使用什么状态码以及何时使用重定向、使用什么方法(POST、GET、PUT等)等)。
  • HTTPS (带有SSL加密的HTTP)

如何让Web服务器与您的Perl交流

  • 如果你想要现代化和高效的方式,可以使用PSGI/Plack
  • 非常简单的情况下,可以使用CGI
  • 如果你想要超强的功能(我曾看到有人使用它将Apache HTTPD转换成SMTP垃圾邮件过滤器),可以使用mod_perl

安全性

如何防范恶意输入(基本上就是要知道如何将数据从一种格式(例如提交的表单数据)转换为另一种格式(例如HTML或SQL)。

Web框架

您可以将很多工作交给框架来完成,它们提供了组织Web应用程序的结构化方式。

  • Web::Simple非常简单
  • Dancer似乎处于中间地带(尽管我必须承认我还没有机会使用它)
  • Catalyst可能具有最陡峭的学习曲线,但配备了许多强大的插件和功能。

除了你所说的内容,你能否向页面发送其他东西? - Dynamic
3
你可以发送任何你想要的数据。我已经重写了回答的那部分内容。 - Quentin

2
根据您的项目复杂性,您可以看看 Catalyst MVC。这是一个很好的框架,处理大部分请求,但足够深入了解正在发生的事情。 CPAN 中有一个很好的教程。
如果您想要从 mod_perl 或 CGI 开始,也有一些教程:

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接