欢迎来到HDUISA wiki,如果这是你的第一次到来,请点击此处注册

README

:词条维护者: Hcamael

这里会分享一些关于web开发如何入门方面的内容,并不会涉及到很多实质性的技巧,更多的是给大家提供一个学习的方向以及可以参考的信息。如果想为本词条作出贡献,请及时在维护者的后面加上您的ID,方便交流。<br />

WHY

为啥要学WEB开发?在我看来:

# 对此感兴趣, 想学, 所以学<br> # 搞web安全

第一种没啥好说的, 那为啥搞web安全也要学web开发?<br> 有一句古话: 知己知彼,百战不殆, 不仅要知其然, 更要知其所以然.<br> xss hacker 肯定是能写的一手好javascript, sqli hacker肯定对sql有深入了理解. 而web hacker就必须了解web开发. 要不然就只能称作为脚本小子(只懂得使用工具, 而不知其原理的人). 如果你只满足于成为一个 Script kiddies 那么后面的你就没必要看了 :ps: 对于文章中不懂的名词, 请问度娘和Google

WHAT

就像sqli, xss是web安全的分支一样. web开发同样也有许多分支.<br> 我按照MVC设计模式来给大家科普. :MVC = Model + View + Controller

View

视图, 顾名思义, 就是一个WEB界面你所能看到的内容.<br> 就比如当前页面, 有且只有 html && css && javascript (只有javascript算是编程语言)<br> 在web开发中, 以上被分类为前台(前端), 以后可应聘的岗位叫web前端开发工程师<br> html, css, js的名词解释很容易度到, 我就懒得复制粘贴过来了.

Controller

控制器, 这部分是属于用户看不到的内容, 进行数据的处理.<br> 比如, 这个页面右上角, 点击登录, 输入用户名, 密码后, 点击登录, 发生了什么?<br> 这就是Controller所负责的内容. <br> Controller都是用编程语言写的, 那么要学习什么编程语言呢?

# ASP (ASP.NET) # PHP # Python # JAVA # ……

只列举些我熟悉, 除此之外还有很多, 以上排序由低到高(非权威, 只是我个人心中的排名.), PHP比Python更适合web开发, 但由于我更喜欢Python, 所以PHP排在了前面. 其他的在下面的Server部分补充.

Model

模型, 作用是进行数据的储存. <br> 在web开发中和Controller一起称为后台(后端), 对应的是web后端开发工程师? NO! 之后再说.<br> 这部分我们称之为数据库. 如今, 数据库分为很多种, 不过大部分数据库都使用 SQL(结构化查询语言 Structured Query Language), 来进行查询数据.<br> :ps. 这里仅进行入门扫盲, 想了解更多, 请自行百度 || Google

Server

服务器, 这里为啥多了一个Server? 你有没有想过, 为啥你在浏览器的URL地址栏输入 wiki.vidar.club 就可以访问到我们的wiki? 这里涉及到网络的知识, 这里就不详述.(所以说, 网络是入门必学.)<br> 输入wiki.vidar.club后浏览器就会访问公网上对应的主机, 由于这台主机上装了可以提供web服务的应用, 所以该主机也被称为web服务器, <br> 访问web服务器后, 服务器返回给你前台的信息, 浏览器把这些显示出来, 就是你所看到的了. <br> 这里再补充科普一个知识点:<br> 任何计算机语言都需要依赖相应的环境才能运行, 要不然就只是一堆字母加符号而已.<br> 前台的语言 → html, css,, js他们依赖的环境就是浏览器, 而后台的运行环境就是web服务器.<br> 最常见的web服务器: # Apache 解析php # Nginx 解析php # iis 解析asp(asp.net) # Tomcat 解析java

先说iis, 微软开发的服务器, 能运行在win上 ,任何只基于单系统的软件, 都是流氓软件., asp(asp.net) 就是为该服务器而生的, 差评, 最差的那种.<br> web开发中, php是使用的最多的语言, 所以 Apache和nginx 是占了web服务器的大部分份额. 而Apache是世界排名第一的web服务器.<br> 不过个人更喜欢nginx, 而当前的网站就是使用nginx作为web服务器.

Other

要完成一个正式的网站, 需要 前台, 后台, 美工, 运维. <br> 前后台前面已经讲了, 运维就是负责搭建, 维护, 管理服务器. 而协会搞web的学长基本都是全栈/全干, 全都干(一个人即可以写前, 还可以写后, 还可以运维)<br> 可是, 就是没有会美工的. 所以, 如果学妹们觉得敲代码难, 还可以做美工啊.<br> 还有一个问题, 前面说的, 为啥后台的不叫web后端工程师? 如果说web前端工程师, 一看到肯定知道需要掌握html, css, js.<br> 那么web后端工程师你说要掌握啥? 所以都是说xx开发工程师(eg. php开发工程师)<br>


这里拓展一些WEB安全的内容吧.

Extension

一个web应用, 漏洞只会存在于后端和服务器. 后台代码的编写不当, 才会产生漏洞. 而服务器漏洞属于程序漏洞, 不在当前话题的讨论范围内.

像sqli, 就是数据从后台 → 数据库时, 数据和代码没有分离而造成的. 文件上传, 就是后台代码写的不严谨而产生的

那么有人会问, xss不是js产生的漏洞么, 而js不是前台的么?

那么你想想, xss用来干嘛? 盗cookie, csrf ……

一个不存在后端的web应用, 要cookie有何用? 你连数据都无法储存, 所以像储存型xss之类的根本不存在, 最多只会有反射型xss,

前台代码对用户来说可以随意查看, 所以根本不存在漏洞这一说.

WHICH

科普结束了, 接下来就讲改怎么入门.<br> 前面讲了那么多方面, 选择自己想学的开始学, 可以选择前端, 后端, 运维, 甚至是全干.<br> :ps.这里只讲前端和后端 首先, 不管是前端还是后端, html是基础, 必学.

Front-End

前端的基础也就是html, css, javascript, 自己看书,视频之类的开始学就好了, 环境就是浏览器, 写好了代码, 文件直接拖到浏览器里运行就好了. 资源后面会有.

进阶的话就是学jquery, 通俗的说, jquery就是用js写的一个应用.

这里只阐述基础类的知识.

Back-End

后端建议学习php, 毕竟是世界上最好的语言. 至于python web && java web, 我认为不适合当做基础学习. 而asp(asp.net), 这是啥? 没听过, 不认识.

后端比前端麻烦的一点就是需要搭建服务器, 当不然你的代码也只是一堆符号而已. 服务器前面也说了, 写php需要搭nginx或apache.

win环境: 建议用 WAMP = win + apache + mysql + php (mysql, 数据库的一种)

linux环境: 建议用 LNMP = linux + nginx + mysql + php

这两件套, 都是一键安装套.

至于之后, 就是学习使用php框架, 有CI, 或者国内的thinkphp.

再之后, 你可以尝试自己写一个框架.

Resources

W3school(国内)

W3school(国外)

前端网

菜鸟教程

php官网 (官方文档肯定是最权威的教程)

其他的自己找吧

I want to know more!

HOW

上一部分说了要学啥, 那么该怎么学呢? 视频, 看书, 看w3school 皆可. 仅仅只是入门, 选择自己喜欢的方式就好了.

前端的让前端大神来补充, 我就讲讲后端的学习方法.

首先要学的肯定是基础语法, 比如变量, 循环, 判断, 函数, 等等.

学完这些你仅仅只是php简单的入门了, 而后端入门还远着呢.

学后端, 你首先要理解后端的本质, 后端是用来干嘛的 –> 后端需要和前端进行数据交换, 需要和数据库进行数据交换.

数据交换, php的基本语法你都会了, 那么你就算是入门了. 写个小应用来证明自己吧. –> 可以写一个简单的留言板和登录界面

前端

前端书单如下:

不过我们不会被福岛圆和学员处分耽误时间,还是记得开跳板吧 ——3riccc

http://w3school.com.cn/ —>好的入门教材,请务必看完HTML,CSS,JavaScript部分

javascript dom 编程艺术 —>这本书会告诉你,你学到的js怎样赋予页面功能,你会发现:卧槽原来js是这么用的啊

javascript高级程序设计 —>有些书是用来超越经典的,那么就是这本书,这本书由浅入深,前几章讲的简直字 字 珠 玑,尤其是第六章对于面向对象的讲解市面上所有的书无出其右

javascript模式 —>这本书我也在读中,他告诉了多种方法去管理一个项目的成千上万行代码,等你后你去研究框架源码的时候,你会发现卧槽这个框架原来采用了这种模式来管理代码啊

锋利的JQuery —>读几本书总不写东西可能没有成就感,如果你想要写点什么,jquery是不错的选择。

但是框架有很多,记住别被框架蒙蔽,好好搞好你的基本功,以后什么框架上手都会很快。

我觉得,对于初学者来说,认真的读过上面几本书,至少要三个月,半年多一年也是有可能的,后几本书我有在群里传pdf,可以直接群文件下载来读。HDUISA-web交流群号:498964273,我会尽量拉一些web的前辈进来,不过学习还是自己的事情,如果你知道去哪,全世界都会为你让路,搞起吧少年们。

打印/导出