表达能力有限,敬请指正。-- 躁动的石头
序言
回想我的旅程,我认为对于初入这一行业的程序员来说,最破解的不是学习知识,而是搭建起一整套的互联网行业的模型。这个模型必定很粗糙,它存在的目的在于帮助新手正确的树立 web 开发甚至于软件开发的世界观,随后的细化才是深入的学习,也是成长的旅程。
B/S
从最广义的范围来讲,web 开发是基于B/S架构(在这个链接里你会看到 C/S 的结构,app 就是使用的这种结构)也就是 浏览器/服务器 模型,简单流程如下:
- 浏览器向服务器发送请求
- 服务器接收到请求,并返回数据
这就是整个 web 开发的基石。
ps:浏览器还是 chrome(谷歌浏览器) 好,开发必备。严重唾弃 IE
那么接下来要说的是
浏览器与服务器的碰撞
服务器的本质就是电脑。就像你买一台电脑用来玩游戏,他买一台电脑用来办公,公司买一台电脑来当服务器供用户通过浏览器来访问。
人多了要沟通,就要取名字,电脑多了要沟通,就要有 IP。
电脑不一定有 IP, 但是要想上网,则必须有 IP。一般来说 IP 是运营商提供给你的。
IP 确实能够唯一标识一台电脑,如果你看过百科就知道,IP 其实很不方便记忆的,所以,就有了别名:域名。你看 www.baidu.com 是域名,你可以通过在浏览器输入 http://www.baidu.com 来访问百度,但是你肯定不知道在浏览器输入 115.239.211.112 也可以访问百度。看吧,浏览器会解析你的输入,看看你输入的是 IP 还是域名,如果是 IP 就直接访问,如果是域名,那么就查找专门的域名解析服务器上,查找域名对应的IP,再去请求服务器(使用 IP 肯定是速度快的,但是为了方便记忆,还是域名用的多,这就是效率与方便之间的妥协,以后你会碰到很多次的)。
浏览器与服务器之间交流方式
如果你细心的话,会发现,上面我提到的是 http://www.baidu.com 而不是 www.baidu.com 。那么这两者之间有什么区别吗?对于访问来说确实问题不大,两者都能访问到百度。只是在访问时,浏览器会把 www.baidu.com 转化为 http://www.baidu.com。
http是一个很重要的协议,如果你真的要做开发,那么这是一道绕不过去的槛。然而对于新说来说,要学习的太多,你现在只需要知道它就好了,要详细了解,以后有的是时间。
简单的来说,http 定义了浏览器和服务器之间如何进行沟通(注意不是沟通的内容)。
前端语言
上面的都弄好了,那么接下来就需要一种语言来维护双方的交流了。这里面最重要的就是著名的 WEB 开发三剑客-HTML、CSS、JavaScript(简称js)了。这些统称为前端语言,也是浏览器和服务器交流的基础。也就是说在浏览器与服务器交互中,通过 HTTP 协议,服务器向浏览器传递的就是这些东西。
详细的知识还是要新手自己去学的,我这里只是简单的说一下他们的作用。就像画画一样, HTML 组成了页面的骨架, CSS 来给页面精雕细琢(典型的行为是上色), JavaScript 负责让页面动起来,也就是实现其中的动画效果。
服务器
服务器的功能就是就是根据用户的请求,返回相应的 HTML、CSS 、JS(这些都是要前端工程师来完成的),而实现哪些功能,就是后端开发工程师来做的。至于如何实现,那就要看用哪种语言了,现在的后端语言有很多像C、C++、Java、PHP、Python等,语言的优劣暂且不评述,不过 PHP 在 WEB 页面的快速开发方面有时很大。
然而,服务器是一个很复杂的事情,详细的叙述就不再本章的范围之内了。新手在这里碰到的一个很常见的问题就是搭建本地环境。
总结
这里的总结模型是不完全准确的: