我希望开始使用 Perl 进行 Web 编程(Perl 是我唯一知道的语言)。问题是,除了上网之外,我对任何与网络有关的事情一无所知。我不知道从哪里开始。
所以我的问题是......
我从哪里开始学习网络编程?我应该知道什么?我应该用什么?
需要理解的关键事项是:
您可以发送到浏览器的内容
…或者更确切地说,您打算发送到浏览器的内容,但了解其他内容是有用的(因为,特别是在复杂的 Web 应用程序中,您需要选择适当的数据格式)。
e.g.
- HTML
- CSS
- JavaScript
- Images
- JSON
- XML
- PDFs
当您动态生成数据时,您还应该了解可用的工具(例如,Perl 社区对TT http://template-toolkit.org/用于生成 HTML,但还有其他选项,例如Mason http://www.masonhq.com/, while JSON::任意 https://metacpan.org/module/JSON::Any往往是我首选的 JSON)。
运输机制
- HTTP(包括使用什么状态代码以及何时使用、如何进行重定向、使用什么方法(POST、GET、PUT 等)以及何时使用)。
- HTTPS(带 SSL 加密的 HTTP)
如何让网络服务器与你的 Perl 对话
-
PSGI/普拉克 http://plackperl.org/如果你想要现代而高效
-
CGI http://en.wikipedia.org/wiki/Common_Gateway_Interface对于非常简单的
-
mod_perl http://perl.apache.org/如果您想要疯狂的功能(我见过有人使用它将 Apache HTTPD 变成 SMTP 垃圾邮件过滤器)。
Security
如何防范恶意输入 https://www.owasp.org/index.php/Main_Page(这基本上归结为了解如何获取一种格式的数据(例如提交的表单数据)并将其转换为另一种格式(例如 HTML 或 SQL)。
网络框架
您可以将大量工作推给框架,框架提供了组织 Web 应用程序的结构化方法。
-
网络::简单 https://metacpan.org/module/Web::Simple很简单
-
Dancer http://perldancer.org/似乎持有中间立场(尽管我必须承认我还没有机会使用它)
-
Catalyst http://www.catalystframework.org/可能具有最陡峭的学习曲线,但具有大量的功能和插件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)