php发展

首页 » 常识 » 预防 » 刚接触Web开发时的迷茫
TUhjnbcbe - 2021/1/9 22:54:00
head.png

我相信绝大多数程序员都是通过HelloWorld开启了咱们的编程生涯,当年我看到这一句话在控制台显示时内心激动不已,仿佛我的代码带领我触及到了另一个世界。

1-1

跟“新世界”打了声招呼后便马不停蹄地学习了顺序、分支、循环,看着控制台循环显示出我定义好的文字,我认为这个"世界"尽就我手中!

1-2

紧接着再学习了数组、方法、面向对象、集合、I/O、多线程、网络编程、数据库……我有点迷茫了,我不知道这些知识能干嘛,于是照着网上做了几个XX管理系统。

1-3

正当我略有成就感时,别人的一句「“你这黑框框这么丑谁会用啊?”」把我所有自信都打没了。是啊,我自己做的这些小玩意连我自己都不会考虑使用,又哪能指望别人会用呢。

于是我开始思考如何才能做出大家愿意使用的程序,进而了解到原来编程还有众多方向:桌面端、移动端、游戏、Web等等等等,每一个方向都值得我们在其中深耕。因为当时我觉得一个网站能够轻而易举地被全世界的人访问和使用,这太帅了,刚好我会的Java非常适合做Web开发,所以我瞄准了Web开发方向。

要学习Web必然绕不开网页三剑客:HTML、CSS、JavaScript,通过它们我终于摆脱了黑乎乎的控制台!然而喜悦是短暂的,学了许久“三剑客”的我做出来的网页非常丑陋,和其它网站如云泥之别。并且我做出来的网页就是一些元素组装在那,只是通过一些操作变换一些元素,没有任何实际的功能(比如购物、看影视、搜索等等)!

我陷入了无尽的迷茫中,感觉我学了特别多的东西和知识,但完全不知道如何运用这些做出一个产品,一个让大家有使用欲望、有实际功能的产品。脑袋里各个知识点犹如孤立的零件,这些零件无法组装成一个机器,毫无意义。

1-4

我小小的脑袋里充满了大大的疑惑:

Java中的各个项技术有啥用,和网页有啥关系?

说Java适合做Web开发怎么半途又让我去学“网页三剑客”?

那些有实际功能的网页是怎么做出来?

我的网页为啥只能在本地看到,怎样才能让全世界的人看到?

……

当时这么多的迷茫险些让我放弃编程,出现这种情况并不全是因为技术有一定的上手门槛,更多是因为自己的学习方式有问题。我没有对将要学习的内容进行梳理和规划,而是一头扎进陌生领域的黑暗中,自然碰壁碰得头破血流。所以接下来在讲解具体代码前我们需要对Web开发进行一个简单的俯瞰,这样我们在学习技术的时候才能有的放矢、事半功倍。

世界是如何看到我们的网页

互联网的诞生让各计算机之间产生了联系,尽管最开始只有发发邮件等简单的功能,但这也让我们从孤岛走向了世界。那时我们数据的表现形式也非常简单,文字、图片、视频各司其职,要想使用这些数据必须打开相应的软件才行,比如最常用的txt文本格式需要用记事本打开。随着时代的发展,人们开始不满足于如此单调的数据交互,超文本标记语言HTML应运而生。

1-5

为什么叫“超文本”呢,因为HTML所展示的内容不只是文字,它还可以展示链接、图片、视频、表格等多种数据:

ahref="xx.html"/a表示链接;imgsrc="xx.jpg"alt=""表示图片;videosrc="xx.mp4"/video表示视频;table/table表示表格;……

上面一组组的尖括号就是HTML的标签,也可以叫元素。这些元素需要使用专门的软件才能正确渲染出对应的数据,否则和文本文字没有区别,这个渲染HTML的软件就是我们常说的「浏览器」。

只要在浏览器中输入正确的路径即可将HTML渲染成网页,这个路径可以是本地文件路径,也可以是网址。输入本地路径是将本计算机的HTML文件直接打开然后渲染,输入网址则是从其他计算机上获取HTML内容然后进行渲染。这个给我们发送HTML的机器我们称为「Web服务器」。

1-6

如上图所示,从输入网址到渲染网页就两个流程:

从浏览器到服务器,这个流程称之为「请求(Request)」;

从服务器到浏览器,这个流程称之为「响应(Response)」;

虽然看上去非常简单,可这两个流程背后都包含了无数的细节。目前就有两个问题摆在我们面前:

一串网址而已,怎么就连接到了服务器?

服务器通过什么手段将HTML传输给浏览器?

我们就通过这两个问题作为切入点,来更加深入地剖析整个流程。

请求URL和HTTP

网址大家都见过,比如

1
查看完整版本: 刚接触Web开发时的迷茫