今天,小师妹说在家里无聊,不知道要干什么,我说学习啊!并建议她去学习html,因为对于我们学校的大一生即将进入大二的学生而言,在刚结束完C语言和数据结构,要马上进入网站开发,首先需要对网站有个最基本的认识,我说的是从专业角度的认识,你需要从本质上了解什么是网站,然后再开始了解html相对而言效果会好一点。ok,下面就请大家看下我的表演了。喜欢的或兴趣的同学还可以在评论去留言或点赞,或者直接通过邮箱(JosenChina@126.com)和我交流沟通哦!

什么是网站?网站就是运行在一台或者多台计算机上的一堆代码

很多人一开始会觉得网站着东西很神秘,看不见,摸不着,却时刻都存在我们身边,会以为网站就像笼罩在自己身边的一层迷雾一样。上大学之前我也是这样想的,直到我们接触了C语言,计算机操作系统,计算机网络神马的,后面才算渐渐地揭开了网站它神秘的面纱。下面我就给大家一一道来。

了解网站之前,我们需要了解一些其他知识以便更好的理解我后面要讲的内容。如:计算机基础、计算机网络,必要时还可以了解下计算机组成原理,这样理解起来会相对容易一些,但是如果是完全的小白,那暂时了解计算机基础和计算机网络这两个就可以了。

首先,计算机基础:

什么是计算机?电脑?是的,电脑属于计算机,但是计算机不仅仅局限于我们一直在使用的个人电脑。我个人对计算机的定义是:在最底层有进行加运算(计算机中减运算本质上和加运算一样,而乘除运算则是加减运算的复杂表现)的能力,并且能把结果反馈给外界的机器或者部件都可以称之为计算机,小到遥控器的按钮处理单元、电子手表等,大到每秒进行几十亿次运算的超级计算机、服务器等都称之为计算机。说白了,就是能够从外界获取信息或自身产生信息,然后对信息进行处理,在把处理结果反馈给外界的一种装置(不一定是电子产品,最早的计算机是有卡片可机械原件组成,那时候单晶硅和晶体管还没问世或者说由于技术原因没发展起来。而如今又出现了一种光学处理器,用光来实现最基本的加减乘除。)

啥?这些太学术了?不知道我在说啥?好,那我直白一点。所谓计算机,就是拥有计算能力的一种机器,没了。人们之所以要使用计算机,就是由于它高速处理信息的能力可以帮我们更好地解决很多繁杂的事务,并且从中获取更高的价值。

而网站,就是多台计算机之间通过一种或多种约定好的通信协议(比如二进制数97表示字母“a”,65表示“A”)实现相互通信而已。也就是说,网站实际上就是运行在一台性能比较好的计算机上的一堆二进制码,直接编写二进制码繁琐枯燥乏味,而且出错率高,所以这些二进制码是由其他的比较高级的计算机编程语言代码生成的(如:汇编语言),而程序员就是编写这些高级代码的人。(某些工程由于代码量太大(如网站工程等)直接用汇编语言编写不太现实,所以这些大型工程一般有更高级的语言(如:Java,C#,python,php等)编写,最终在计算机最底层还是最本质的二进制码在运行。也就是说,越是高级的语言,程序员所需编写的代码量就越少。)

我们平时所访问的网站,像京东也好,淘宝也好,微信也好,实际上是通过网线或者无线wifi、移动网络(3G、4G、5G)等之间或间接的访问京东、阿里巴巴、腾讯的计算机服务器,他们的服务器通过返回一个页面(html页面)给我们的计算机,我们的电脑上的浏览器会编译这个html页面,然后再显示到屏幕上。如图:

这个网页的实际内容是这样的:

对,我们所看到的,只是我们的浏览器根据这些内容,渲染出来的而已,服务器并不是真的就发送这么个漂亮的页面给我们。而是发了一堆字符流,这些内容符合html(超文本标记协议),因为浏览器基本都支持这种协议,所以我们就看到了这种协议所表达的画面。

那问题来了,计算机之间是如何实现通信的呢?也就是说,那么多台电脑,那么多台计算机,我怎么知道该访问那一台,如何识别那一台和谁给我发送的信息、谁需要我的回复等。这个,就是计算机网络的内容了。

什么是计算机网络?

由于篇幅有限,我这里只讲个大概,后面有机会再给大家一一道来。

所谓计算机网络,就是使用网线、光纤、无线WiFi,移动网络等为介质,通过路由器(一种特殊的计算机、专门实现其他计算机之间的通信),把许许多多的计算机直接或间接的联系到一起,就如同一张网一样,每个节点都直接或间接地关联,每个节点表示一台计算机,这样就可以实现计算机与计算机之间的联系了。

如图所示:

当然,实际上的路由器是成千上万台的,每台路由器也可能不止连接这么几台计算机(这里的计算机指任何能联网的设备,如:手机、电脑、智能机器人、服务器等,包括路由器本身也是计算机)。

这里,每一台计算机都有一个唯一的ip地址,用于不同机器之间的通信,比如ip地址为192.168.1.100的计算机想要访问产品地址为192.168.1.101的计算机,那他只需要在发送出去的内容里标明收件ip地址为192.168.101,发件IP地址为192.168.1.100就可以了,剩下的交由路由器去处理,路由器与路由器之间就有一种机制能够实现这种通信,由于篇幅原因这里就不多做讲解,感兴趣的可以去翻阅其他资料或者留意后期我的博客关于http等网络协议的讲解。

以上已经初步讲解了网站入门所需要了解的知识点,真正学习网站还要在深入了解。下面,我们再来了解一下网站的工作原理吧。没错,现在才是真正进入主题。

什么是网站?

网站就是,客户端(如:电脑、手机的浏览器,或者微信客户端等这些在用户手里操作的)通过地址(如:https://www.baidu.com)访问服务端(也就是服务器,如 https://www.baidu.com 地址对应的就是百度的服务器或服务器群(由于一台服务器可能无法处理全国那么多人的访问,所以需要多台服务器来分担压力)),服务端返回一个页面(或其他的内容,如json字符串、xml文件等)给客户端,然后客户端自己分析得到的结果,然后再呈现给用户。那么,这些运行在服务端的代码和配置文件、数据文件等就是一个网站的组成部分。开发一个网站,就是如何使用代码,实现上面的那个过程。

网站一般分为前端和后端

所谓前端:可以理解为用户看得到的,或者是运行在客户端的那部分(这些代码实际上也是存放在服务端的,只是客户端访问时从服务端获取,然后在自己客户端运行,服务端指负责存放这些代码)。

所谓后端:就是实实际际运行在服务端的代码,负责整个网站的具体实现,包括所有的逻辑结构、数据保存、性能维护等。

如果把一个网站比作一个美人,从以前的观点,前端就是你所能看到的她漂亮美丽的面孔,性感美妙的身姿,还有绚丽多彩的衣服,就是展现在人们面前能看到的那些,而后端则是她的五脏六腑,是她能够活在这个世界上的根本。但是从目前的情况上看,前端的功能已经越发强大,从现在的趋势来看,把前端仅仅比作美人被人们所能看见的那些部分,恐怕学前端的人会很不乐意,更形象一点应该包括美人优雅的舞姿,甜蜜的声音等一些看不到却体会得到的东西。例如现在前端也能够实现一些简单的人工智能(如手写字识别等)。

一个女人如果美若天仙,却病入膏肓卧床不起,估计无法吸引到多少帅哥,若是身体非常健康但奇丑无比,同样没有帅哥敢接近。网站也一样,如果一个网站的界面做的很好,但后端逻辑很差劲,导致性能差,不能很好得处理高并发请求,经常服务器奔溃等,用户用过一次估计就闻风丧胆。同样,如果后端做的很好,而前端页面不够吸引人,不够人性化,几乎很难吸引到客户。因此,做好一个网站需要双管齐下,两者不存在谁好谁坏之分。

最后,我们来总结一下,一个网站的具体实现过程。

首先,客户端通过链接得到要访问的服务器的ip地址(可以查阅资料“关于DNS服务器的工作原理”,DNS服务器,一种实现通过域名地址就能解析得到该地址所对应的服务器的ip的服务器,常用的DNS服务器ip有114.114.114.114和8.8.8.8,后者是谷歌负责维护的DNS稳定性高,当然,前者也不赖,是国内通用的DNS服务器),然后访问该ip地址所在的服务器,服务器通过客户端的请求内容里的请求者ip,知道是那台客户端访问了它,并向客户端发送响应内容,响应内容可能是一个html页面,也可能是json字符串或者xml文件等。客户端再把得到的响应内容进行解析,然后呈现给用户。

而能够实现该过程的编程语言有很多,目前主流的有Java、php、python、C# 甚至是C语言也能实现,只是不建议用C语言,那样分分钟能要了程序员的命,代码量太大了。我个人就是使用python实现了自己的私人博客,有兴趣可以浏览链接:http://www.blog.josen.top/

好了,暂时就说到这里了,后面会给大家分享更多的关于编程的知识,由于个人的能力有限,博客可能存在一些不足之处,欢迎大家在评论区留言评论,同时,如果大牛们对肉松有什么建议或意见,或者与肉松有什么志同道合的想法,欢迎通过邮箱(JosenChina@126.com)联系我哦。

菜鸟学网站开发入门之——网站是什么相关推荐

  1. 云计算是什么意思?新手怎么学云计算开发入门课程

    云计算是什么意思?云计算就是将处理数据这个步骤放在网络的远程端进行,因为手机.平板和个人电脑等个人设备的数据处理性能(CPU.内存.硬盘和GPU等)是非常有限的,而让用户购买十几万甚至上百万的高性能服 ...

  2. html网站开发与php网站开发_海南网站开发,网站建设,商城网站,功能性网站开发...

    一些常用的大型网站,比如淘宝,京东,携程等等,大家对企业网站的印象停留在展示层面,仅仅对外展示一些企业信息而已.其实单纯的展示型网站已经没有太大意义,网站流量没有有效利用. 其实我们从用户的角度出发就 ...

  3. 网站开发制作收费标准(网站开发费用价目表)

    网站开发制作收费标准(网站开发费用价目表)#网站#网站开发#网站建设#网站多少钱 需要多长时间?备案的时间周期是不是建立公司所能控制的?大家好,我是郑国,欢迎大家观看我的视频分享.最近我们有一个客户, ...

  4. 菜鸟学WEB开发 ASP.NET 5.0 1.0

    菜鸟学WEB开发 ASP.NET 5.0 1.0 在学习之初我要强调一点"微软要向跨平台开发"大举进军了,不管他能走多远,这是微软的必经之路. 一.学习流程: 创建ASP.NET ...

  5. Java+MyEclipse+Tomcat (一)配置过程及jsp网站开发入门

    这些年免费帮同学或同学的朋友做过的毕设还是有一些了,我的博客基本都是基于我做过的项目相关的,而里面又有三分之一都是自己做的毕设或别人的毕设的做后感.毕设其中就包括MFC图像处理..Net安全软件.C# ...

  6. 第4讲:C# 入门教程 入门知识(黄菊华NET网站开发、C#网站开发、Razor网站开发教程)

    入门知识 .NET.C#和ASP.NET三者之间的区别如下: 一.什么是.NET? .NET是微软公司下的一个开发平台,.NET核心就是.NET Framwork(.NET框架)是.NET程序开发和运 ...

  7. python菜鸟入门_值得收藏|菜鸟学Python【入门文章大全】

    这是菜鸟学Python的第106篇原创文章 阅读本文大概需要3分钟 菜鸟学python已经写了好多好多文章,我自己也没有想到能写这么多累计已经有110篇了,从入门篇写到了数据篇. 我觉得还有好多绝招, ...

  8. php网站开发技术 主编张茜,codetc-PHP网站开发技术 - codetc - 网站开发技术

    关于本站 其实也只是一个普通的网站,没什么特别的.既然您那么不小心点击进了这个页面,那总得让您看点什么是吧? 关于名称(codetc),到目前为止,我也没想明白它到底是什么意思:建立这个网站,完完全全 ...

  9. 菜鸟学iPhone开发-计算器实例(实现篇)

    上一节我们分析了一个简单的计算器应用程序的功能需求和一些注意事项.现在,我们可以通过Xcode新建一个项目进行编码了. 选择View-BasedApplication项目模板,命名为Calculato ...

最新文章

  1. zookeeper版本更新_Zookeeper归纳
  2. array,arraylist,string的总结
  3. js中,(function(){})()的用法解析
  4. Fedora 15 安装 HP 打印机
  5. 小朋友学数据结构(3):二叉树的建立和遍历
  6. spring注入私有字段_Spring字段依赖注入示例
  7. python qt快速入门_PyQt5快速入门(一)
  8. java面试题11 牛客:如下语句通过算术运算和逻辑运算之后i和 j的结果是
  9. 自定义封装 banner 组件
  10. linux 防火墙 ftp,RedHat6 建立基于防火墙和SELinux的虚拟用户vsFTP
  11. 那天空飘过的梅花月饼,是今年中秋最好的礼物
  12. 告别3D Touch 2019款iPhone手机或将拿掉屏幕压感功能
  13. 推荐几个好评率超高的公众号,有远见的程序员都关注了!
  14. 485不用双绞线可以吗_刘兴亮丨有了北斗,中国可以不用GPS吗
  15. DL神经网络权值初始化
  16. Janusgraph事务
  17. 请给孩子多一点点空间
  18. Linux环境安装mysql8
  19. 卷积中反转平移的理解
  20. audiosever耗电_audio服务自动停止 - 卡饭网

热门文章

  1. React Native从入门到实战--开发环境搭建
  2. c语言的编程switch,C语言之switch详解
  3. 好用免费的内网穿透工具
  4. php+矩阵,PHP实现简单矩阵算法
  5. 一文浅谈深度学习泛化能力
  6. java查询图片前台展示_Java +spring MVC 后台图片流在前台页面显示
  7. R语言︱函数使用技巧(循环、if族/for、switch、repeat、ifelse、stopifnot)
  8. 商品规格常用的规格排列组合算法
  9. 关于前端接口报错500原因
  10. 戴尔笔记本开机logo进度条时间长的解决办法