搭建网站需要学习什么(转自知乎)
首先区分动态和静态网站。简单的说,静态网站中的页面是预存在Web服务器上的文件,而动态网站的页面是根据服务器端数据库中的数据和状态动态生成的,因而动态页可以实现复杂的业务功能,需要学习的技术也更多。
做静态网站需要HTML,CSS和(少量)Javascript的知识,可以认为是对浏览器编程;做动态网站除了需要HTML,CSS,Javascript之外,还需要对Web服务器编程,这方面的技术很多,比较流行的中小网站的技术组合有:
(1) Linux (服务器的操作系统)+ Apache或Nginx(Web服务器软件)+ MySQL或Oracle或其他Linux下的数据库 (数据库软件) + PHP或Python或JSP或Ruby on Rails或其他(负责动态网页生成的语言)
(2) Windows Server (操作系统) + IIS (Web服务器) + Microsoft SQL Sever (数据库) + ASP (动态网页语言)
大型的动态网站还有负载均衡,多层缓存优化,冗余备份,安全管理等等诸多专门的技术,很多使用自己开发或者定制的代码库作为数据库和网页的中间层,这里不再展开。
问:还有其他需要学习的吗?
答:HTML+CSS+Javascript+Apache+Mysql+PHP基本上可以让你在不需要花钱买软件的情况下搭起来小型的动态网站。进一步钻研,技术当然还有很多。比如,可以学习各种网站的框架和模板、可以学习Linux服务器的安装配置,可以学习TCP/IP了解因特网的原理和信息传递,等等。
问:怎样安排其学习顺序?
首先在W3School上学好HTML+CSS,尤其是DIV这个标签,这一步很容易,很多都是美工干的活;然后你装上Apache(或者其他web服务器,参见第一问)配置一下就可以做静态网页了。
接着可以同步学习PHP(或者其他动态语言)和Javascript,尤其是Ajax这样的异步技术,这需要花不少时间。Mysql和Apache的进一步安装配置会贯穿在学习PHP的过程中。同时为了掌握MySQL,你至少需要一些最基本的数据库(SQL语言)的知识。
Apache+Mysql+PHP这条工具链的好处是网上可以下载到大量的开源代码,一般常见的网站框架(论坛、图片库、新闻站、维基)都不需要从头开始编码,源码拿过来改一改定制一下就可以上线了,同时你也可以通过这些源码来学习PHP(或者其他动态语言)。