突然网页8888ec出现一些乱码看不懂wwwhttp www.8888eccomm是什么

突然网页8888ec出现一些乱码看不懂www8888eccom是什么_百度知道
突然网页8888ec出现一些乱码看不懂www8888eccom是什么
我有更好的答案
不可能(vv8c.niob.biz)还在啊
采纳率:100%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。www8888ec.com_域名备案查询_icp备案查询_网站备案查询_爱站网
ICP备案查询
备案信息调用代码
&a href="https://icp.aizhan.com/" target="_blank"&&img src="https://icp.aizhan.com/geticp/?host=www8888ec.com&style=img" style="width:126height:41border:0;" /&&/a&
&a href="https://icp.aizhan.com/" target="_blank"&&script type="text/javascript" src="https://icp.aizhan.com/geticp/?host=www8888ec.com&style=text" charset="utf-8"&&/script&&/a&
请输入图片中的验证码
关闭关闭关闭mark下 下班来答&br&&br&--------------------------------下班啦,话说双十一之后还真是一点没感觉到闲啊----------------------&br&&figure&&img src=&https://pic3.zhimg.com/f4a55dcd55f93e_b.png& data-rawwidth=&1790& data-rawheight=&382& class=&origin_image zh-lightbox-thumb& width=&1790& data-original=&https://pic3.zhimg.com/f4a55dcd55f93e_r.png&&&/figure&最好理解的,左边红框里面的是HTML,右边红框里面的是CSS&br&&br&HTML,网页的基本组成,就是一系列标签,网页的结构层&br&CSS,网页的样式属性,网页的样式层,&br&JavaScript,能和编程沾点关系的编程语言,网页的逻辑层。&br&&br&所以,HTML+CSS+JavaScript=一张完整的前端页面,额,之前有人说js不属于编程语言的,可以让他搞搞前端试试,要不然真以为自己本事多大呢#摔&br&&br&HTML5里面的5应该只是HTML的一个标准版本,目前说的HTML应该版本号是4.x,估计是太长,所以直接简称HTML了,HTML5里面增加了新的标签,新的属性,也增加了一些对native的调用,所以现在用HTML5的页面更多一点。&br&&br&比如你现在查看网页源代码,最上面一行是&!doctype html&这个就是HTML5的简写方式,之前的HTML版本这个上面可是要写很多的#当时我还背过那一段代码#&br&&br&XHTML,简单理解应该是HTML的一种比较严格的版本。&br&从继承关系上讲,HTML是一种基于&a href=&//link.zhihu.com/?target=http%3A//baike.baidu.com/view/597073.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&标准通用置标语言&/a&的应用,是一种非常灵活的置标语言,而XHTML则基于&a href=&//link.zhihu.com/?target=http%3A//baike.baidu.com/view/159832.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&可扩展标记语言&/a&,可扩展标记语言是标准通用置标语言的一个子集。#来自百度#&br&&br&SQL,简单来讲就是一种数据库语言,structed query language,用来在大量的数据中根据相关条件进行查询,筛选。常见的数据库有mysql,sql server2000&br&&br&PHP就简单啦,就是拍huang片嘛,当然拍huang片也是讲究技巧的,因此诞生了PHP,不过目前因为岛国势力的进一步强大,个人感觉国内拍huang片的工作不是很多啊,出了某度,我还真没见过有那个公司招PHP的人。&br&------------------------------------------编不下去了----------------------------------&br&PHP,和前端相对来讲,PHP就是一种后端语言,用来运行在服务器上面,接受网络请求,并分析请求中的request内容,执行相对应的代码,返回相对应的数据片段,一般来讲,PHP中可以嵌套SQL语句,也可以嵌套HTML代码,然后用SQL进行数据查询之后,PHP再将数据用HTML进行渲染成完整的HTML页面,返回给浏览器,即可完成一次网络请求,将结果展现在用户面前。&br&&br&&a href=&//link.zhihu.com/?target=http%3A//ASP.NET& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&ASP.NET&/span&&span class=&invisible&&&/span&&/a&,这两个应该分开吧,ASP是一种编程语言,.NET应该是一个框架,是微软公开的一种编程语言,提起ASP就不得不将IIS了,是针对ASP微软开发的一款服务器软件,和Apache,Ngnix都是服务器的一种。&br&&br&关于.NET,有时候有些人分不清一大堆代码,到底应该称作“库”还是应该称作“框架”,最简单的,库其实是一些方法的一个集合,将一些方法整理之后放在一起,供其他用户使用,这样子的代码片段叫做库,框架相比库来讲,就是提供了一套完成的工作流程,用户只需要在他的框架上面进行代码添加,即可让整个项目跑起来,而不是提供了简单的方法,就前端而言,MVC,MVVM之类的框架有:Angular.js,backbon.js,avalon.js,react.js,代码库比较有代表性的就是:jQuery,Prototype....&br&&br&Web Services这个还真不清楚,难道不是提供web服务的一系列组件?&br&&figure&&img src=&https://pic3.zhimg.com/3346cac6a82ad601f4fa82be6896ffaa_b.png& data-rawwidth=&831& data-rawheight=&795& class=&origin_image zh-lightbox-thumb& width=&831& data-original=&https://pic3.zhimg.com/3346cac6a82ad601f4fa82be6896ffaa_r.png&&&/figure&--------------------------------------------------------------------&br&我次奥,感觉又下雨了,赶紧回~
mark下 下班来答 --------------------------------下班啦,话说双十一之后还真是一点没感觉到闲啊---------------------- 最好理解的,左边红框里面的是HTML,右边红框里面的是CSS HTML,网页的基本组成,就是一系列标签,网页的结构层 CSS,网页的样式属…
&p&&b&以下是个人当时了解网站开发结构时的一份记录,看到本题就想贴出来,供大家一起参考和纠错,至于文笔和格式就不要苛刻了...毕竟只是一份简单的记录。&/b&&/p&&p&&br&&/p&&p&&b&&u&文字最后有一张整体结构图,如果没时间看字,希望这张图能有所帮助&/u&&/b&。&/p&&p&&br&&/p&&p&&b&正文:&/b&&/p&&p&&b&内容说明&/b&&/p&&p&本记录描述本人了解网站开发的&b&心路历程&/b&。&/p&&p&&br&&/p&&p&只记录个人对于网站知识结构的理解认知,还未涉及开发的具体知识。 &/p&&p&&b&本记录无法告诉你如何去做网站开发,但是或许可以告诉你要做网站开发都需要做什么事&/b&。&/p&&p&&br&&/p&&p&&b&适合的读者&/b&&/p&&p&本记录适合对网站开发一窍不通的初学者认知网站基本结构和概念、学习网站开发如何入门,不适合追求技术深度的大神。&/p&&p&&br&&/p&&p&&b&网站基本结构&/b&&/p&&p&首先,我们来认识一下网站的结构,看看自己在什么位置,看看我们还不知道的冰山下层有什么景象。&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/4cf43dbc3b51fffddae30f0_b.jpg& data-rawwidth=&868& data-rawheight=&334& class=&origin_image zh-lightbox-thumb& width=&868& data-original=&https://pic1.zhimg.com/4cf43dbc3b51fffddae30f0_r.jpg&&&/figure&&p&以上是一个最简单的概念,用户、前端和网站服务器三大部分,构成的网站最基本结构。 &br&其中开发人员要关心的就是前端和网站服务器的相关开发。&/p&&p&当然,对用户而言,其脑海中对前端的概念通常简单的理解为浏览器...&/p&&p&&br&&/p&&p&&b&网站前端&/b&&/p&&p&接下来,我们来拆解一下前端开发的结构。前端常用的开发语言和运行环境如下表所示。&/p&&figure&&img src=&https://pic4.zhimg.com/c2caad782917facf41ba4d7_b.jpg& data-rawwidth=&740& data-rawheight=&132& class=&origin_image zh-lightbox-thumb& width=&740& data-original=&https://pic4.zhimg.com/c2caad782917facf41ba4d7_r.jpg&&&/figure&&p&要知道前端是网站和用户交互的主要接口,用户不需要管服务器是否靠谱,只需要任性的要求前端给自己展示自己要的东西就行了。这些用户要的东西就是有这几种开发语言写出来的。&/p&&p&&br&&/p&&ul&&li&&b&HTML 超文本标记语言 1989&/b&&/li&&/ul&&blockquote&一种文本、图片、链接等多元素编辑语言。 &br&通过这种语言以网站页面为编辑区域,任意指定页面具有哪些元素,包括文字、图片、多媒体等。 &br&并任意指定不同元素在页面的基本格式。如文字字体、大小、位置,图片大小、位置,链接颜色、状态变化等等。&br&这种语言利用标签标记,将多种不同类别的元素、甚至不同位置的文件关联在一起,因此叫做超文本标记语言。 &br&并且通过定义元素的属性,设置元素的格式,最终形成整体页面效果,这种语言可以利用多种文本编辑工具编辑,例如记事本。只需扩展名修改为.html或.htm即可(这两种扩展名不是简单的缩写关系,详细本文不讨论)形成HTML文件。&br&HTML5就是HTML语言的最新标准,这种标准制定使页面可以表现的内容更加强大(至于具体如何强大,我不知道,目前我只知道HTML5是用来定义页面内容的就足够了)。 &br&好像HTML5标准相关的两大的权威机构W3C和WHATWG之间对这个标准的细节确定存在巨大分歧,W3C背后有微软支持,而WHATWG背后有Mozilla、apple等公司的支持,这部分会涉及到网页程序和原生APP之间的纠缠,太过复杂,本文就不细说了。&br&最初的HTML只含有较少的元素属性,只能简单规定元素的基本格式,随着网站开发的发展,前端可以展现的元素格式越来越丰富,代码也越来越臃肿。因此逐渐形成了另一种新的语言CSS,将HTML语言中描述各元素属性的代码从HTML文件中抽离出来,使HTML专门描述前端页面具有什么内容,CSS语言编写的CSS文件专门描述HTML中的每个元素以什么格式在页面展示。&/blockquote&&p&&br&&/p&&ul&&li&&b&css 层叠样式表 1996&/b&&/li&&/ul&&p&&br&&/p&&blockquote&CSS专门用于描述HTML中各元素用什么样式展示。HTML+CSS组合完成页面内容和格式的设计。&br&&br&很多人喜欢使用HTML中的一种标签格式&DIV&来规定页面内容,再利用CSS规定DIV标签在页面摆放格式形成页面布局,因此很多网站会提到DIV+CSS前端开发这个概念。&br&&br&CSS主要实现了页面内容的静态布局效果。虽然目前的CSS3标准的出现,使CSS强大到可以实现很多元素动态变化效果。&br&&br&但是,更复杂的动态变化还是需要另一种专门的语言来实现,这就是JS语言。&/blockquote&&p&&br&&/p&&ul&&li&&b&JavaScript 脚本语言 简称JS&/b&&/li&&/ul&&blockquote&js语言当前普遍被用于网站开发前端编程,在html提供的内容和css提供的格式之外,由js提供更复杂的界面展示效果和逻辑处理。在此存在很多可以直接使用的代码库,如jQuery等。&br&js语言可以实现对页面元素的复杂功能编程,例如页面的时钟数字变化效果,图片的走马灯轮换效果,粒子动画效果等。 &br&也就是我们经常看到的炫目的页面动画基本都是js语言编写的。&br&除了可以看到的动态效果之外,js还可以实现用户看不到页面数据处理工作。例如数据加解密、文字过滤分析等。 &br&这些内容都需要编码实现。&/blockquote&&p&&br&&/p&&p&以上的html、css、js文件都会下载到用户的终端设备(计算机、手机、平板)上,在用户设备上被执行,因此,我们称它们在前端运行,这里的“前”是与后台服务器的“后”相对而言的。&/p&&p&&br&&/p&&ul&&li&&b&脚本语言&/b&&/li&&/ul&&blockquote&上文提到js是一种脚本语言,此处插播一下脚本语言的概念。 &br&脚本语言是一种逐句执行的直译语言,也就是这种语言不需要提前编译,直接由终端(如浏览器)解释运行即可。&br&脚本语言与其他编程语言的关键区别在于是否需要经过编译链接形成二进制机器语言。&br&我们知道,其他编程语言完成程序编写后,需要通过编译器的工作,将程序代码转变成二进制形式,windows系统中通常是.exe文件,这种文件可以直接在相应的操作系统中运行。&br&而脚本语言不需要编译,写完代码保存文件之后,即可立即运行。要实现这种效果需要提前在需要运行该脚本文件的系统中安装相应的脚本软件。&br&以JS为例,其脚本文件后缀为.js,要运行该脚本文件,需要运行环境中安装js软件。&br&通常我们的浏览器中已经集成了js解析标准,直接可以解析js脚本文件,因此,js脚本语言通常被用作前端页面特殊效果的编程语言。&br&当然,只要具有js的解释环境(js软件)就可以运行js文件,因此js并不是局限于前端开发。随着node.js等运行环境的出现,js语言逐渐适用于服务器端、客户端等多种场景。&br&关于一种语言是否适合某种场景,这取决于这种语言的最主要的特性是否适合该场景最需要功能,属于技术细节,本文不做分析.&br&同属于脚本语言的还有,PHP/ASP/JSP/python/ruby/VBScript/Perl等.&/blockquote&&p&&br&&/p&&div class=&highlight&&&pre&&code class=&language-text&&--------------------------------迷茫的分割线--------------------------------------
&/code&&/pre&&/div&&p&&br&&/p&&p&到目前为止,我好像理解了前端语言的概念(谁知道有多少错误),但是前端的本质对于用户而言并不是那么友好,以下是构成前端内容的html代码示例,css和js的代码也类似。&/p&&figure&&img src=&https://pic1.zhimg.com/42c46af14e64bbbe41ae0_b.jpg& data-rawwidth=&510& data-rawheight=&193& class=&origin_image zh-lightbox-thumb& width=&510& data-original=&https://pic1.zhimg.com/42c46af14e64bbbe41ae0_r.jpg&&&/figure&&p&就这种内容,我表示前端用户完全看不懂啊!&/p&&p&于是我们就需要一个翻译,给我们解析一下这花花世界的各种html页面说的都是些什么东西。 &/p&&p&因此,普通用户要看到前端页面内容和操作前端页面都需要通过一个翻译载体,即浏览器来实现。&/p&&p&&br&&/p&&ul&&li&&b&浏览器&/b&&/li&&/ul&&blockquote&浏览器就是对HTML+CSS+JS文件内容进行翻译,并允许用户通过页面与网站进行交互的一种软件。&br&前面提到的那一堆前端名词都是开发语言,是语言就具有统一的标准,因此,这些语言都有唯一的严格的标准文档可查询。 &br&但是,浏览器就没有严格规定了。只要实现了对以上前端语言的翻译功能,就可以成为网页浏览器。&br&因此也就产生了各种不同的内核,以及采用不同内核开发的浏览器。&br&虽然这些内核的目的都是为了解析(翻译)前端语言形成可视化页面,但是由于设计理念等细节的差异性,导致不同的内核体现出不同的特性,例如有的访问速度快、有的扩展性强、有的大而全、有的小而美等等。&br&浏览器的开发团队和内核的开发团队不一定是一个团队。 &br&例如webkit、chromium等开源内核,其他开发团队或厂商在遵守开源规则的情况下,可以自由使用这些内核,进行二次开发,加上自己的外壳、标志等,形成自己品牌的浏览器,由于开发能力等原因的差异性,而这些浏览器也不可避免的存在各自的优缺点,也就形成我们选择浏览器的理由。&br&当前主流的浏览器内核如下:&/blockquote&&figure&&img src=&https://pic1.zhimg.com/9f60c7e26b_b.jpg& data-rawwidth=&860& data-rawheight=&189& class=&origin_image zh-lightbox-thumb& width=&860& data-original=&https://pic1.zhimg.com/9f60c7e26b_r.jpg&&&/figure&&p&上表中仅列出部分产品,其中也存在多种双内核产品,chromium源自Webkit,但是相对原版的Webkit产生了较大的“基因突变”,因此与Webkit并排列出。&/p&&blockquote&表中包含了很多我们日常使用的浏览器,也就是通过这些浏览器,对前端语言写成的文件进行解析,在浏览器中以友好的可视页面的形式展示给用户。 &br&此时就可能出现,页面乱码或错误等情况,可能是前端语言编写错误,也可能是浏览器内核对前端语言的解析出错,当然也可能是网站服务器端出现了问题。&/blockquote&&p&在说服务器端的功能之前,插播几个前端相关的小知识点:&/p&&p&&br&&/p&&ul&&li&&b&xml/json&/b&&/li&&/ul&&blockquote&xml是可扩展标记语言,通常用于传输和储存数据,相似的还有json.&br&前端和服务器之间通常需要一种双方都认可的格式进行数据的传递和存储。 &br&.xml/json或其他格式指定了数据内容的存储格式,使用该数据的双方只需按照规定的格式写入/读出内容即可完成数据的传输和存储.&br&以json为例,其基本格式为:{标题:内容},根据这个格式,后台从json文件中读出需要的内容,例如{我是标题:我是要被读出的内容},并按照这种格式发送给前端,前端通过js等语言对这些内容进行解析即可。&br&前端的一些配置信息,如用户登录名称、性别、网页底色等信息都可以暂存在xml/json文件中,根据需要随时读取. &br&服务器后台也可将前端需要的数据内容,以xml/json的格式发送给前端,达到数据交互的目的。&/blockquote&&p&&br&&/p&&ul&&li&&b&AJAX
(Asynchronous Javascript And XML)
异步JavaScript和XML&/b&&/li&&/ul&&blockquote&这不是一个全新的技术,而是利用已有的js/css/xml等技术达到前端数据及时更新的效果.&br&对用户而言,前端页面的刷新就是点击页面刷新按钮 或者F5实现页面内容的刷新。&br&甚至有很多人不知道页面刷新这个概念…… &br&页面刷新的目的是让页面从新从服务器获取数据,通常是在页面长时间未更新数据,至于多长时间算长,没有定论,几分钟、半小时、n小时都可以说是长时间。&br&例如,门户网站的新闻列表,可能1个小时之内,服务器后台已增加了很多条新的新闻,前端可以通过刷新,从新获取最新的新闻展示在页面上。 &br&再如,网页文字直播NBA篮球比赛,可能后台服务器每几秒就会有一条新的动态,需要用户连续刷新页面内容来获取最新动态。&br&以上的刷新方法是用户手动对整个页面内容进行刷新,针对以上的需求,明显是不合理的,AJAX就是实现了自动更新需要刷新的数据的效果。&br&其基本思路是前端js与后台不断通讯,及时获取前端某部分数据的变化信息,及时进行自动数据获取更新,使用户无需刷新网页即可保持页面数据最新的状态。例如,球赛文字直播、股票实时信息等。&/blockquote&&p&&br&&/p&&ul&&li&&b&文档对象模型(Document Object Model,简称DOM)&/b&&/li&&/ul&&blockquote&DOM是一种独立的规范。 &br&浏览器作为前端的展示工具,按照DOM规范将页面划分为不同层次结构,形成多个可操作的对象。例如,window对象、history对象、link对象等。 &br&window对象就是用户看到的页面、history对象就是浏览历史、link对象就是链接等。&br&例如弹出警告对话框的操作就可以通过window对象实现。&br&按照这种规范即可直接通过编程操作html页面的各种元素,控制其显示/隐藏等效果。 &br&js中也提供了符合该规范的api函数接口。通过js可以动态操作页面元素的状态。&br&以上就是对前端的基本认识。有了以上的内容就可以形成前端页面了。我就奇怪了,既然这样就能显示页面,要后台干什么。&br&经过我“深入”思考,终于明白,如果只有前端,没有后台,你的页面就像一份报纸、一本杂志,内容是固定的,不会“更新”,除非你再买一本新的;有了后台,就可以给前端源源不断输送新鲜的内容,让前端充满活力。&/blockquote&&p&&br&&/p&&ul&&li&&b&通讯协议&/b&&/li&&/ul&&blockquote&在讲后台之前,我们要考虑一个问题,前端怎么向后台发送请求,总不会是“SOS”吧;后台又如何相应请求并返还前端需要的内容。&br&这就需要双方按照预先协商好的格式(我们称之为协议,就好像接头暗号一样),发送数据内容。如果双方不按照协议发送信息,则对方就无法知道信息到底是什么内容,就无法进行交流,俗称“不按套路出牌”。&/blockquote&&p&&br&&/p&&p&以下几个概念介绍前端和服务器之间通讯的相关知识点。&/p&&p&&br&&/p&&ul&&li&&b&域名 (Domain) 和域名服务器 (DNS)&/b&&/li&&/ul&&blockquote&我们访问网页时通常会在地址栏输入类似&a href=&http://www.zhihu.com/& class=&internal&&www.zhihu.com&/a&这样的网站地址(或者通过搜索跳转),地址栏中的这种地址就是网站的域名,通过这个域名别人就可以找到这个网站。&br&&br&为什么需要域名?&br&话说一开始的时候,并没有域名的概念,要链接到服务器,只需要知道服务器的IP地址就可以了。例如,在地址栏直接输入60.28.215.70就可以直接访问知乎网站了。&br&关于IP相关的网络知识,内容太大,本文不深入描述。&br&后来,网站越来越多,谁能记住这么多没有规律的IP地址啊,于是聪明爱折腾的人们发明了有规律有意义的域名。比如,&a href=&//link.zhihu.com/?target=http%3A//www.qq.com%2Cwww.lenovo.com.cn/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&http://www.qq.com,www.Lenovo.com.cn&/a&,这种内容比纯数字就好记多了。&br&域名和IP地址是对应的,归根结底,虽然我们在浏览器输入的是域名,也会通过相应手段解析成IP地址,进而确定我们要访问的网页在网络中的位置。 &br&毕竟,虽然我们认识域名,但是计算机认识的确是IP地址。&br&那么,我们输入的域名由谁来解析呢?这就是DNS的工作了,其作用就是将域名翻译成IP地址,返回给我们。可以简单的认为,每个DNS中存放“一张大表”,其中每一行都是一个IP地址对应一个或多个域名。&br&全世界各地分布着大量不同级别的DNS,帮我们进行域名和IP之间的解析工作。其中最高级别的DNS有13个,以大写英文字母A~M命名,分布于世界几个主要的城市。&br&如果你的计算机无法连接到DNS,或者连接到错误的DNS,则无法通过域名访问网页。 &br&为什么很多人可以上qq,却不能打开网页,就是因为网页需要域名解析,而qq直接通过IP地址与服务器交互,无需解析。 &br&此时,如果在浏览器直接输入IP地址,就可以访问网页。&br&域名的格式?以联想的官网&a href=&//link.zhihu.com/?target=http%3A//www.lenovo.com.cn/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&http://www.Lenovo.com.cn&/a&为例进行介绍。&br&域名分为4个级别,以符号.作为分隔符。从左至右,级别递增。&/blockquote&&div class=&highlight&&&pre&&code class=&language-text&&最右侧,表示国家。如例子中.cn,表示中国,即该域名为中国域名。其他,如美国.us,日本.jp等。
右数第二位,表示网站类别。如例子中.com,表示&商业化&,其他,如.org表示&非盈利机构&,.edu表示&教育机构&等.
左数第二位,表示企业或组织。如例子中的.Lenovo,表示&联想公司&。其他,如.Facebook,.apple分别表示该公司.
左数第一位,表示业务类型.如例子中的www表示该页面为用户提供基本web服务,现在通常作为网站首页使用.其他,如mail表示该页面提供邮箱服务等.
&/code&&/pre&&/div&&p&最后2级域名内容是可以自定义的,当前很多人也不会去通过域名去了解页面内容了,更多是通过链接跳转到达指定页面,页面链接的用途更多是给开发人员识别页面用了.&/p&&blockquote&我们经常提到的域名注册,就是这东西。咱们选好域名,把钱(或者免费)交给DNS管理公司/机构,DNS上就有我们选的域名和IP了,别人就可以访问我们的网站了。&br&所谓备案,是将域名/IP信息在公安系统登记,后期你做了错事,他们可以找到你。。。&/blockquote&&p&&br&&/p&&ul&&li&&b&URL (统一资源定位符)&/b&&/li&&/ul&&blockquote&上面介绍了域名的概念,我们知道前端如何定位服务器的地址,那么定位服务器地址之后,前端如何定位服务器中的某个内容呢?即用户在页面点击某文章链接,后台怎么知道你要的是哪篇文章呢?&br&这仅仅通过域名是无法解决的,在域名之后,还需要加上具体的文章代号,形成完整的访问要求,这就是URL.示例&a href=&http://www.zhihu.com/question/#answer-& class=&internal&&如果知乎放到武侠世界会被提问什么问题? - 电影&/a&,域名后面加上要访问的问题和答案序号,服务器就知道应该把什么内容反馈给前端了.&br&好的,有了URL,咱们就要说到本节开头提到的通讯协议了.也就是前端有了URL按照什么格式将其发给后台,后台有了内容按照什么格式反馈给前端.&/blockquote&&p&&br&&/p&&ul&&li&http/https&/li&&/ul&&blockquote&在访问网站时,我们经常会在URL之前看到http://这种前缀,这就是前端指定要给后台发送数据时使用的协议格式,此处用的就是http协议.&br&除了http协议,还有https、ftp、smtp等一系列不同的协议,分别用于不同的场合。 &br&http是超文本传输协议,可以传输文字、图片、多媒体等多种格式内容,适用于网页,smtp更适合邮件的收发。&br&总之,前端和后台使用相应的协议,双方才可以通讯,否则,双方对不上暗号,就无法交互了。&br&接下来,继续分析后台内容,想要进一步被我误导的,请继续往下看~&/blockquote&&p&&br&&/p&&p&&b&网站后台&/b&&/p&&p&&br&&/p&&p&接下来,我们来拆解一下后台服务器开发的结构。网站后台常见的组成结构和相关开发语言或工具如下表所示。&/p&&figure&&img src=&https://pic2.zhimg.com/ef0dd1553999ceb57e73cd_b.jpg& data-rawwidth=&859& data-rawheight=&243& class=&origin_image zh-lightbox-thumb& width=&859& data-original=&https://pic2.zhimg.com/ef0dd1553999ceb57e73cd_r.jpg&&&/figure&&p&&br&&/p&&p&网站后台开发目前而言是百家争鸣,各种语言、多种框架互相角逐,争论不休。&/p&&p&本记录当前不会参与那种高深的讨论,本记录只来说一下后台都有哪些东西,至于具体怎么选,以后再说……&/p&&p&&br&&/p&&ul&&li&&b&反向代理服务(web server)&/b&&/li&&/ul&&blockquote&首先,说一下web server。&br&服务器端,需要接收前端访问请求,根据请求类型分发给指定模块进行处理,并完成将处理结果返回给前端的工作,这就是反向代理,也就是web server,例如Nginx/Apache等.&br&web server本身不做网站内容的解析和生成工作,重点在于处理复杂的网络请求,应对海量的网络连接。起到后台与前端之间搭建网络桥梁的作用,通过通讯协议,与前端进行数据交互,而数据来源,由后台其他处理程序和数据库等提供。&br&web server的独立,使后台处理程序只需专注每个请求的细节处理,而无需关注请求的来去和排队管理等机制.对网站开发人员而言,也大大减少了工作量。&br&web server作为前端后台之间的衔接工具而存在,其中只有与开发项目相关的部分配置信息,并不存在我们编写的数据处理程序内容,因此可以根据项目需要(性能)随时更换代理,当然,这种随时更换可能存在代价.&br&web server可以使用Nginx/Apache/tomcat/IIS/lighttpd等现成的工具,也可利用node.js等平台添加模块自己形成满足自己要求的代理工具,甚至自己动手从头开发也可以,完全依据自己喜好和水平.&br&对于我这种菜鸟,就直接选择Nginx得了.毕竟,我编写代码的水平还不足以达到讨论哪个代理优秀的程度,更不用说自己写代理了,这点自知之明我还是有的.&/blockquote&&p&&br&&/p&&ul&&li&&b&cgi/fastcgi 通讯接口&/b&&/li&&/ul&&blockquote&web server接收到前端请求之后,需要将这些请求的内容分发给具体的处理程序进行数据处理。与前端和后台之间的通讯协议相似,此处两者之间也需要定义双方的通讯协议。毕竟,web server种类那么多,后台处理程序的种类也那么多,不统一交流暗号,怎么进行交互呢。&br&cgi就是早期的双方交互协议,称之为通用网关接口。 &br&web server接收到前端请求之后,按照cgi的规则将数据进行整理后发送给后台处理程序,后台处理程序接受到数据之后,按照cgi的规则进行解析/处理,然后再次按照cgi规则将处理好的数据返回给web server,完成交互.&br&当然,目前来看cgi存在很多不足,因此出现了fastcgi等改进版,这就需要我们在web server和后台处理程序上分别配置通讯方式,使两者统一,就可以完成双方的通讯了。例如,Apache配置为fastCGI模式,php安装插件如php-fpm或php-cgi,双方就可以通讯了。&br&这种配置过程可能很复杂,除了知道这些知识之外,还要考虑服务器的系统(windows or linux等)是否支持某插件安装等。 &br&如何配置就不在本记录讨论范围了,这里只要知道需要配置这些东西和为什么需要配置这些东西就可以了。&br&这里可以提一下python这个语言,因为其不像PHP一样,它不支持fastcgi接口,而是支持wsgi接口。 &br&因此,我们需要一个中间工具,如flup一边接受来自web server的fastcgi格式的数据,另一边通过wsgi与python处理程序进行交互,达到交互效果。&/blockquote&&p&&br&&/p&&ul&&li&&b&平台/引擎/运行环境&/b&&/li&&/ul&&blockquote&在编程语言发展初期,几乎每个功能都需要重新编码实现,相同的工作在不同的人手中重复着同样的事情,并且只有高级开发人员能够掌握高深的编码知识.&br&慢慢的,大家意识到这一点,随之开发人员将编码中核心部分和经常重复利用的部分抽离出来,做成一个个模块/库等形式,最终封装成一个个开发平台.例如前面提到的&b&node.js&/b&,以及经常见到的&b&.net&/b&等.&br&开发平台中集成了大量核心或者经常被用到的功能,不需要新的开发人员重复开发,只需要安装开发平台,并在自己的代码中调用平台提供的功能即可.这也是为什么我们安装很多软件的时候,总是提醒我们安装&b&.net&/b&平台,因为这些软件调用了&b&.net&/b&平台中提供的功能.&br&开发平台在一定程度上强化了某些语言的功能,例如node.js.本来js语言适合于前端应用开发(此时js采用了浏览器内置的解释功能),node.js对js语言高效的解释效果取代了原有js解释器的工作,使js语言可以应对服务器端的需求,即node.js平台强化了js语言的功能.&br&当然,开发平台具备何种功能,与对应的语言并没有直接关系;开发平台利用何种语言编写,与对应的语言也没有直接关系.还是以node.js为例,其采用的是c++语言编写,并不是js语言,因此它才能强化js语言原来没有的功能.&br&类似开发平台还有移动端的CM.游戏开发类的各种引擎其实也可算作开发平台这种形式.&/blockquote&&p&&br&&/p&&ul&&li&&b&框架&/b&&/li&&/ul&&p&服务器后台存在多种多样的框架.例如java的SSH/python的django、web.py等等. &br&框架将大量需要重复的编码工作实现在框架中,减少二次开发的复杂度,这点与平台有点类似。&/p&&blockquote&框架与平台的不同在于: &br&框架实现了完成该功能的整体架构搭建,例如网站后台框架就实现了各种session会话处理等机制,只需开发人员在整体架构预留的自定义空隙添加个人代码,与框架互补形成完整的网站后台;&br&平台实现了具体细节处理代码的编写,并没有实现整体的功能,需要开发人员自己利用平台中提供的零件组装完整的功能.&br&平台就像一个大零件箱,里面有各种型号的小零件,是最基本的组件。 &br&框架是一个大功能的骨架,可以借助某些平台提供的小零件进行开发。 &br&框架中非公共部分,也就是网站个性化功能实现的部分,就是开发人员下一步需要自己实现的后台处理程序了。&br&框架往往和后台处理程序选择的语言相关,也就是说框架通常是针对某种语言而开发的,用于减轻该种语言开发网站的复杂度.&/blockquote&&p&&br&&/p&&ul&&li&&b&服务端后台程序&/b&&/li&&/ul&&blockquote&服务端后台程序就是对前端发起的具体请求进行个性化处理的最终场所。 &br&例如,前端向后端发起登录要求,后台程序是否允许对方登录就完全看开发人员的心情了(--!)。&br&这部分内容往往需要访问服务端的数据库资料、配置文件、程序算法处理等工作,可以选择多种能够完成这类工作的编程语言完成这些功能。 &br&例如常见的PHP/JSP/ASP/Python/Ruby等。&br&这部分也就是我们经常见到讨论最火热的部分,论不同语言之间的优劣。还是那句话,对一个白痴菜鸟而言,任何一个流行的语言的设计思路都可以碾压我大脑那一点点可怜的编程知识,因此,抓阄吧骚年,不要再纠结了。唯一的选择标准应该是该语言能否实现我们的需要,完全不需要考虑性能、复杂度(还没开始干就考虑安逸了?不客气的说,就算你选了一个最简单的语言,你都不知道它哪里简单!也就是说,它最大的优点你已经感受不到了,那种感觉,肯定很爽)&br&选了某种语言之后,就可以选择用哪种框架了.&br&此时,问题出现了,还记得web服务器与后台程序之间通讯用的cgi么?&br&当我们选择了web服务器工具和后台开发语言之后,突然发现这两者可能不支持统一的通讯协议!&br&例如,web服务器只提供cgi插件,而后台开发语言不支持cgi. &br&咋办?&br&继续增加中间工具进行转换嘛。&br&以python为例,支持wsgi,因此我们需要给python一个翻译,像flup这种工具/插件什么的,可以将web服务器的cgi格式与python的wsgi格式进行互相转换,达到通讯的目的.&/blockquote&&p&&br&&/p&&ul&&li&&b&开发工具 (编辑软件/IDE)&/b&&/li&&/ul&&blockquote&所谓开发工具,就是适合于某种开发语言的编辑/管理等方面的工具软件。例如,我们编写文本文档常用notepad、ue、sublime text等,我们做幻灯片可能会用ppt、Keynote等。这就是适合该种“语言”的开发工具。&br&以VS/Eclipse为例,他们风格方面存在区别,但都属于IDE(Integrated Development Environment,集成开发环境),也就是这一个软件中集成了编辑功能、编译功能、文件管理功能、项目管理功能,甚至集成了很多插件、模板等内容。拥有这种IDE环境,基本不需要额外的工具,即可完成整个开发过程。&br&当然IDE集成具有便利性也就存在自身的缺点,例如IDE软件自身体型庞大,一个VS软件动辄几G大小;IDE对于新手而言存在大量用不到的功能,或者出现莫名其妙的问题后新手也摸不着头脑. &br&这里不深入分析其优缺点,仅仅使大家了解什么是IDE即可,至于如何选择,这里就不管啦.&/blockquote&&p&&br&&/p&&ul&&li&&b&数据库&/b&&/li&&/ul&&blockquote&每一个网站上面可能含有大量的数据内容,包括文字、图片、多媒体等,需要按照一定的格式存储在一个地方,在我们通过网页访问这些内容时,可以快速的调用。&br&数据库就实现了这种功能,我们可以把一堆乱七八糟的东西按照设计好的规则扔进数据库,然后根据需要读写就可以了。&br&数据库种类很多,有Oracle、SqlServer、MySQL、DB2等,当然到底用不用数据库软件也要看开发人员的心情,你非要新建一个文件夹,把各种东西存在里面管理,谁也管不着。&br&选了数据库之后,这里又出现同样的问题,如何通讯。 &br&我们知道,数据库是通过后台的程序进行操作的,那么,我们的后台程序如何操作数据库呢,这两个东西直接语言互通么?&br&这里就要引出下一节的SQL语言概念了。&/blockquote&&p&&br&&/p&&ul&&li&&b&SQL&/b&&/li&&/ul&&blockquote&SQL语言是专门用来解决各种不同的编程语言和不同的数据库之间进行通讯的结构化查询语言.&br&任何编程语言都可使用SQL语言来操作任何支持SQL语言的数据库. &br&也就是无论使用c/java还是python,只要使用&select&这一SQL语言保留字,就可以从指定的数据库中筛选数据.具体SQL语言怎么写,自己去查书了.&br&当然,这种便利性需要两方面的支持,第一是编程语言提供SQL支持,第二是数据库支持. &br&庆幸的是,如今绝大部分的编程语言和数据库都很好的支持了SQL语言.&br&为了进一步使数据库的操作变得简单,不同的语言又存在更便利的封装.例如JDBC/hibernate等,为java语言操作数据库提供了更便捷的API和框架支持. &br&使开发者更加傻瓜式的不需要深入了解数据库原理,就可以轻松的利用数据库管理数据.&/blockquote&&p&&br&&/p&&ul&&li&&b&服务器设备&/b&&/li&&/ul&&blockquote&最后说一句,什么是服务器,整天听到这东西,究竟是什么。答:它就是一台外表不同的计算机。整体结构和家用计算机基本一样,只是根据服务器需求的不同,多配个网口、强化一下CPU等等。&br&如果对服务器性能要求不高,随便一台家用计算机都可以当做服务器使用,只要计算机上安装了以上提到的这一堆服务器端需要的架构,接入网络能被访问,就可以称作是一台服务器。&br&就像一个普通人,会开车就是司机、会做饭就是厨子,但归根结底,就是个人。&br&&br&当然,既然有服务器、家用计算机这种名称上的区别,其内在多多少少也会有些区别的。&br&例如,支持长时间高容错大容量的硬盘、强大的网络并发连接数支持、更高的稳定性安全性等,说这么多,本质还是一台计算机。&br&&br&安装了web server程序的就是web server服务器,安装了Oracle的就是数据库服务器,安装了应用软件的就是应用服务器,安装了杀毒软件、防火墙等的就是安全服务器,只是个名字而已。&br&服务器的位置可以在你家中、可以在机房、也可以是网络上的计算机(虚拟主机)。&/blockquote&&p&&br&&/p&&ul&&li&&b&web services&/b&&/li&&/ul&&blockquote&这东西不是一个单独的软件,而是一个整体的服务系统。&br&从名字可以了解到,这是通过web网络来实现用户服务的一套系统。&br&例如,邮件系统web services,就需要实现用户通过该系统可以收发邮件处理邮件内容等功能,这一系列功能需要web server、应用服务器、数据库服务器、安全服务器构成完整的功能架构来支撑功能的实现。&br&因此,web services是一个较大的应用角度的服务概念,而不是单纯的技术角度的概念。&/blockquote&&p&&br&&/p&&ul&&li&&b&最后贴上网站整体概念图&/b&&/li&&/ul&&figure&&img src=&https://pic3.zhimg.com/v2-eeb31c2cbbe3e0fd7113032_b.png& data-rawwidth=&7690& data-rawheight=&3600& class=&origin_image zh-lightbox-thumb& width=&7690& data-original=&https://pic3.zhimg.com/v2-eeb31c2cbbe3e0fd7113032_r.png&&&/figure&&p&&br&&/p&&p&其中,红色部分是需要我们去学习掌握的语言,需要利用这些语言实现网站前后台功能;蓝色部分是我们可以利用的辅助工具、软件架构,只需要了解用法,进行适当配置,使其在合适的位置发挥功能即可。&/p&&p&&br&&/p&&p&当然,本文和上图并没有列出全部语言、框架等知识,未列出的知识点请自行定位其用途~&/p&&p&&br&&/p&&p&=======================结束===========================&/p&&p&好吧,至此,我需要了解的内容也差不多了,也不知道哪些对哪些错。&/p&&p&如果你看到这篇内容,一定要抱着怀疑的态度去理解,看到你认为可以的部分,一定要告诉我,很可能你就是对的~&/p&&p&如果这篇文字对你有帮助,别忘了给我说一下,哈哈~&/p&
以下是个人当时了解网站开发结构时的一份记录,看到本题就想贴出来,供大家一起参考和纠错,至于文笔和格式就不要苛刻了...毕竟只是一份简单的记录。 文字最后有一张整体结构图,如果没时间看字,希望这张图能有所帮助。 正文:内容说明本记录描述本人了解…
&figure&&img src=&https://pic3.zhimg.com/68a8bd24cd4e_b.jpg& data-rawwidth=&468& data-rawheight=&178& class=&origin_image zh-lightbox-thumb& width=&468& data-original=&https://pic3.zhimg.com/68a8bd24cd4e_r.jpg&&&/figure&&br&&br&先普及用户&b&通过 浏览器 &/b&&b&访问网页 &/b&的过程:&br&&br&网页内容是通过&b&服务器运算&/b&得出的结果,将结果(网页代码)传输给浏览器,网页代码再通过&b&浏览器&/b&&b&运算&/b&(计算、渲染),最终展示在用户的眼前的。&br&&br&至此,我们知道了有2个运算过程:&br&1、服务器运算&br&2、浏览器运算&br&&br&而让电脑(网站服务器、你的个人电脑)乖乖执行运算,就需要&b&编写程序脚本&/b&即&u&程序代码&/u&。&br&而编写代码的过程就叫做:&u&编程&/u&。编写代码的人叫做:&u&程序员&/u&(又戏称:程序猿、攻城狮)。&br&&br&所以,由运算演变出:&br&&br&1、服务器运算 -& &b&服务器脚本&/b&&br&2、浏览器运算 -& &b&浏览器脚本&/b&&br&&br&在行业内,将 服务器运算 称为 &b&后端&/b&;将浏览器运算 称为 &b&前端&/b&;&br&&br&&u&后端更靠近服务器,前段更靠近用户,这样比较好记忆。&/u&&br&&br&--------------------------------------------------------------------------------&br&&br&然后我们再来按照上述两个类别,对其他的东西分类:&br&&br&1、服务器脚本(后端):&br&&div class=&highlight&&&pre&&code class=&language-text&&PHP、ASP.NET
&/code&&/pre&&/div&&br&2、浏览器脚本(前端):&br&&div class=&highlight&&&pre&&code class=&language-text&&HTML、CSS、JavaScript
&/code&&/pre&&/div&&br&&u&HTML5、XHTML我们暂且将其统称为:HTML&/u&&br&&br&--------------------------------------------------------------------------------&br&&br&细心的就发现了,SQL 没有提到。有了上面基础概念之后,我再来详细的说:&br&&br&SQL,即数据库,用来存储和查询用户的数据,比如:&br&1、存储你注册的帐户信息(用户名、密码);&br&2、存储你在知乎上回答的问题(标题、内容);&br&3、查询本回答相关的评论。&br&&br&SQL是安装在服务器上的,暂且也将它纳入后端范畴。&br&&br&&br&&u&根据题主的问题&/u&,如果学习的话,有这么两种常见搭配:&br&&div class=&highlight&&&pre&&code class=&language-text&&1、PHP 搭配 MySQL;
2、ASP.NET 搭配 SQLServer。
&/code&&/pre&&/div&&br&&br&MySQL和SQLServer都是SQL软件,都可以用来存储、查询数据。&br&至于为什么这么搭配你先不用管,总之上帝说要有光,那就&b&先光着&/b&。&br&&figure&&img src=&https://pic3.zhimg.com/fafb599bbbd2_b.jpg& data-rawwidth=&130& data-rawheight=&139& class=&content_image& width=&130&&&/figure&&br&&br&我们再来模拟一下访问网站的&b&用户登陆&/b&过程,以PHP为例(ASP&b&.&/b&NET同理):&br&&br&1、用户输入 用户名、密码 后 点&登陆&按钮;&br&2、后端程序开始运算:PHP运行,连接MySQL,在数据库中查询用户名、密码是否正确;&br&3、将运算数据返回给用户的浏览器,包含(HTML、CSS、JavaScript);&br&4、浏览器将接收到的前端数据(HTML、CSS、JavaScript),运算(解析)出来,成为网页。&br&&br&--------------------------------------------------------------------------------&br&&br&最后还有问题对吧?别急。&br&&br&HTML、CSS、JavaScript又分别是什么呢?&br&&br&HTML就是网页,一个静态的网页。(做任何操作页面上的东西都不会动,可以简单理解为:&b&没有特效&/b&)&br&&br&CSS、JavaScript就是完成「特效」的。&br&&br&&u&JavaScript 这个单词 好长 我打的好累,我为了偷懒,后面用缩写:JS &/u&&br&&br&&b&CSS&/b&:负责完成页面的美观度(颜色、布局)&br&&br&&b&JS&/b&:负责完成页面的操作需求&br&比如:点赞同的时候,JS负责改变页面上的赞同按钮效果,同时告诉服务器:我赞同了!&br&&br&&br&========================================&br&&br&&br&细心的又发现了,Web Services 我没有提到!&br&很多时候我们需要一个&b&数据&/b&或者一个&b&功能&/b&,而我们&u&自己无法完成&/u&。&br&&br&&b&毛栗子A&/b&:天气预报&br&这个时候我们&u&自己的服务器上没有真实的天气数据&/u&,这时就需要使用其他网站提供的「天气Web Services」。&br&而这个Web Services,提供一个&b&数据型&/b&服务。&br&&br&&b&板栗B&/b&:发送短信验证码&br&这个时候我们&u&自己的服务器不能发送短信&/u&,这时就需要使用其他网站提供的「短信Web Services」。&br&而这个Web Services,提供一个&b&功能型&/b&服务。&br&&br&&br&Web Services让PHP 和 ASP&b&.&/b&NET 两种语言、&br&让 (PHP + MySQL) 和 (ASP&b&.&/b&NET + SQLServer)两种架构、&br&之间有了统一的接口标准,有了互通的可能。&br&&br&&br&简单讲,同毛栗子A,我们知道了:&br&1、当你的网站开放一个Web Services接口,这个时候就可以允许别人查询到你数据库的数据。&br&2、当你的网站使用别人的Web Services时,这个时候就可以查询到别人的数据。&br&&br&&br&&br&&br&========================================&br&&br&&br&&br&&br&&br&&br&&figure&&img src=&https://pic1.zhimg.com/65a7f17db9b5d74cf4294_b.jpg& data-rawwidth=&683& data-rawheight=&281& class=&origin_image zh-lightbox-thumb& width=&683& data-original=&https://pic1.zhimg.com/65a7f17db9b5d74cf4294_r.jpg&&&/figure&&br&然后这一整套体系,有前端(表示层)、有后端(逻辑层)、有数据库(存储层),一个独立的网站就开始运作了。&br&&br&甚至还可以用Web Services去查一下别人网站的数据,综合一下展示出来,是不是感觉很屌?&br&&br&&br&屌个屁啊,此行有风险,入行需谨慎!!!&br&&br&&br&&br&&br&&br&&br&&br&&br&&br&特别鸣谢:&a href=&http://www.zhihu.com/people/ma-xian-sen-9& class=&internal&&@马先森&/a&&br&&br&以上&br&&br&&br&&br&&br&--------------------------&br&更新&br&有人问我风险是什么,风险是:&br&你以后可能也许会像这样&br&&br&&figure&&img src=&https://pic3.zhimg.com/c22a011439ebf4dcfa83fc801ec8dada_b.jpg& data-rawwidth=&195& data-rawheight=&195& class=&content_image& width=&195&&&/figure&&br&这样&br&&br&&figure&&img src=&https://pic2.zhimg.com/2c512dfcc7fd_b.jpg& data-rawwidth=&489& data-rawheight=&213& class=&origin_image zh-lightbox-thumb& width=&489& data-original=&https://pic2.zhimg.com/2c512dfcc7fd_r.jpg&&&/figure&&br&这样&br&&br&&figure&&img src=&https://pic3.zhimg.com/adb93bf64a58a_b.jpg& data-rawwidth=&589& data-rawheight=&234& class=&origin_image zh-lightbox-thumb& width=&589& data-original=&https://pic3.zhimg.com/adb93bf64a58a_r.jpg&&&/figure&&br&&br&或者这样&br&&br&&br&&figure&&img src=&https://pic1.zhimg.com/86833beaca8ee2ec067a60fb6b751bf8_b.jpg& data-rawwidth=&600& data-rawheight=&300& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic1.zhimg.com/86833beaca8ee2ec067a60fb6b751bf8_r.jpg&&&/figure&&br&总之最后会成为这样&br&&br&&figure&&img src=&https://pic2.zhimg.com/9edc5eb8cb56cc082f6b8_b.jpg& data-rawwidth=&446& data-rawheight=&414& class=&origin_image zh-lightbox-thumb& width=&446& data-original=&https://pic2.zhimg.com/9edc5eb8cb56cc082f6b8_r.jpg&&&/figure&
先普及用户通过 浏览器 访问网页 的过程: 网页内容是通过服务器运算得出的结果,将结果(网页代码)传输给浏览器,网页代码再通过浏览器运算(计算、渲染),最终展示在用户的眼前的。 至此,我们知道了有2个运算过程: 1、服务器运算 2、浏览器运算 而让电脑(…
一个学期前我也和楼主差不多不知道这些都是啥,一个学期之后差不多都弄懂了,来讲讲自己的理解吧 & & 因为接触的时间不是很长,有错误的地方欢迎指正~&br&&br&首先要知道网站访问大概是什么个过程:&br&假设你在浏览器地址栏输入这个问题的地址&br&&div class=&highlight&&&pre&&code class=&language-text&&http://www.zhihu.com/question/
&/code&&/pre&&/div&访问过程和下图差不多,浏览器和服务器交流,服务器和数据库交流(有时候数据库就在服务器那台机子上)&br&&br&&figure&&img data-rawheight=&591& data-rawwidth=&842& src=&https://pic4.zhimg.com/581ae59a16e_b.jpg& class=&origin_image zh-lightbox-thumb& width=&842& data-original=&https://pic4.zhimg.com/581ae59a16e_r.jpg&&&/figure&&br&&b&HTML 与 CSS&/b&&br&你家电脑拿到一个 html (就是上图 HTTP 响应的 body 里的内容)之后,就会对它进行解析渲染。HTML 就是一种标记语言。类比一下,大家在论坛上经常会用一些代码来添加富文本内容,举一些栗子:&br&&ul&&li&&div class=&highlight&&&pre&&code class=&language-text&&[img]图片地址[/img]
&/code&&/pre&&/div&
用来贴图&/li&&li&&div class=&highlight&&&pre&&code class=&language-text&&[url]超链接[/url]
&/code&&/pre&&/div&
用来贴地址&/li&&li&&div class=&highlight&&&pre&&code class=&language-text&&[del]呵呵[/del]
&/code&&/pre&&/div&
表示标签里的文字应该被删掉(默认添加删除线效果)&/li&&/ul&这种&b&论坛代码&/b&也是一种标记语言,HTML 的作用就和它差不多。服务器返回给你的html文件里面,写的是一些代码,大概是这样的:&br&&figure&&img data-rawheight=&384& data-rawwidth=&511& src=&https://pic3.zhimg.com/def15af96af6_b.jpg& class=&origin_image zh-lightbox-thumb& width=&511& data-original=&https://pic3.zhimg.com/def15af96af6_r.jpg&&&/figure&浏览器拿到这些代码之后,分析一下给你渲染好页面显示出来,如果不用css,效果是这样的,按照浏览器默认的样式显示出列表、图片、超链接、输入框、按钮等等:&br&&figure&&img data-rawheight=&362& data-rawwidth=&330& src=&https://pic2.zhimg.com/8df8c13db4c5_b.jpg& class=&content_image& width=&330&&&/figure&&br&是不是觉得默认样式有点看瞎狗眼呢……所以很多时候我们需要自定义样式,现行通用的规定样式的语言是CSS,我们可以用它写一些定义样式的代码,然后在 html 文件里用一个&link&标签把这些规定样式的 CSS 代码与表达内容语义的 HTML 代码关联起来,然后你就能看到一个符合人类正常审美的页面了:&br&&figure&&img data-rawheight=&296& data-rawwidth=&662& src=&https://pic1.zhimg.com/09c5fafc7cc4_b.jpg& class=&origin_image zh-lightbox-thumb& width=&662& data-original=&https://pic1.zhimg.com/09c5fafc7cc4_r.jpg&&&/figure&&br&CSS 代码的格式基本是&br&&div class=&highlight&&&pre&&code class=&language-text&&属性:值
&/code&&/pre&&/div&比如知乎顶上那个蓝色的导航条,它的 CSS 大约是这样的&br&&figure&&img data-rawheight=&256& data-rawwidth=&408& src=&https://pic2.zhimg.com/3f351f51aff2be4742b1_b.jpg& class=&content_image& width=&408&&&/figure&&br&第一个属性对应的代码翻译成人话,就是它的位置(position)应该是不动(fixed)的,浏览器会兢兢业业地去实现这段代码要求实现的效果,
所以你在页面上翻来翻去顶上那个导航条都会死死地黏在窗口顶部不跟着滚动。&br&再拿里面的其他几个属性做栗子解释一下就是:&br&&ul&&li&left 和 top
为零指明这个导航条要紧贴着窗口的左上角&/li&&li&width 和 height 指定这个导航条的宽和高&/li&&li&background
指明这个导航条的背景是一种渐变的蓝色&/li&&/ul&浏览器就会根据这些 CSS 代码,“画”出对应的样式。&br&&br&&b&HTML 5 与 XHTML&/b&&br&像人的语言一样,网络上的网页里的 HTML 代码也不一定是标准的,好比有时候你发音不太标准,别人会去猜测你说的到底是什么一样,有些时候前端程序猿不小心写错了 HTML,浏览器也会试图猜测他们原来想写的是什么,做对应的渲染,而猜是要有一个常识做依据的。加上有些浏览器支持一些标签,有一些又不支持,以及其他混乱的情况,为了防止大家鸡同鸭讲,我们需要对 HTML 代码里能有什么标签,标签怎么写,标签可以有什么属性这些东西有一定的共识,建立一个通行的标准,HTML5 就是其中一个比较新的标准。这个标准新加了很多可以用的标签和属性,然后各大浏览器也吭哧吭哧按这个标准去实现了很多这些新加的标签和属性,本来前端程序员要写一堆代码去实现的效果,现在浏览器都给你实现好了,只要写两三行,调用一下浏览器给你实现的部分就能搞定,简单愉快,所以很多人都在热情地推广这个标准~(当然新标准也不可能是完美的,总会有一些问题,怕跑题这里按下不表~)&br&&br&至于 XHTML,就是 HTML 的近亲 XML 和 HTML 自己的杂交品种,对语法要求比较严格,并且为了兼容 XML,在语法上与 HTML 有一些不同~&br&&br&&b&JavaScript 与浏览器脚本&/b&&br&有了表示内容和语义的 HTML,规定样式的 CSS,得到的是一个静态的页面,没什么动画(其实用 CSS 还是可以有一些动画的,不过这个跑题了),按 F5 才会刷新数据,都 21世纪了,这么呆板单调的网页怎么能展现我大智人种族的创造性口胡!于是我们有了 Javascript(JS) 来给页面添加一些动态的效果,比如知乎问题的标签,鼠标移上去会弹出一个小窗口,这个就是 JS 实现的效果啦。&br&&br&&figure&&img data-rawheight=&274& data-rawwidth=&532& src=&https://pic4.zhimg.com/dcb4e911b7ee1e363213_b.jpg& class=&origin_image zh-lightbox-thumb& width=&532& data-original=&https://pic4.zhimg.com/dcb4e911b7ee1e363213_r.jpg&&&/figure&&br&浏览器都会帮你实现一些 JS 可以用的工具(函数,对象什么的),你只要写一些 JS 的代码,保存在 xxx.js 里,在 html 文件中用
&script& 关联进来就可以用了,像上图这个效果应该就包括了 &br&&ol&&li&鼠标悬停到标签上时创建一个新的 &div& 小窗口 &br&&/li&&li& 用 JS
向知乎服务器发送一个请求,得到这个小窗口应该显示的数据,放在这个小窗口里(这就是所谓的AJAX,不用刷新就能与服务器进行交互,更新页面的一小部分~)&/li&&/ol&浏览器拿到这样的代码,就会解析并实现出相应的效果,楼主问的浏览器脚本,指的就是这样子的代码。其实用来写浏览器脚本的,也不是非得JavaScript 不可,当年还为到底用什么语言写这种代码有过一段战火纷飞的时期,但现在尘埃落定,各大浏览器都默认了:请用
JS 写这些动态效果的代码给我解析~&br&&br&以上就是前端部分的内容,下面简述一下后端的东西吧& &&br&&br&&b&Web Server 和 Web Services&/b&&br&浏览器给服务器发一个请求,服务器不是一看就知道怎么响应的。首先这些请求和响应要有一个通用的写法,也就是要有一个协议,常用的是 HTTP 协议。&br&像最前面的图,服务器的响应写了一个状态码 200 OK ,是 HTTP 协议里约定俗成的一个东西,服务器写 200 OK 在响应里,表示“你请求的这个东西我有”,如果是404 Not Found,就是“你请求的这个东西我这里没有”。&br&HTTP 响应里还包括很多东西,比如 Content-type 表示服务器发过来的文件类型是什么(文本?动画?图片?音频?),这样发过去了人家浏览器好知道怎么展示给用户看。人家服务器怎么知道按协议要写什么东西进去呢,这就是 Web Server 干活的时候了。&br&&br&形象化一下HTTP响应,大概就长这样:&br&&figure&&img data-rawheight=&351& data-rawwidth=&284& src=&https://pic1.zhimg.com/73fc01d295c7e015c1d80_b.jpg& class=&content_image& width=&284&&&/figure&&br&再上个锤子,浏览器和服务器之间请求响应的过程大致是长这样的,右下角的那些东西就是由 Web Server 生成的(服务器脚本可以做一些改动,但这些一般是 Web Server 的份内活):&br&&figure&&img data-rawheight=&349& data-rawwidth=&1364& src=&https://pic2.zhimg.com/2fdad81d11618addfbdf65_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1364& data-original=&https://pic2.zhimg.com/2fdad81d11618addfbdf65_r.jpg&&&/figure&&br&&br&再比如说很多时候你访问一个网站,浏览器里输的地址并没有写明你请求的文件,比如这个问题的地址是:&div class=&highlight&&&pre&&code class=&language-text&&http://www.zhihu.com/question/
&/code&&/pre&&/div&但知乎的服务器其实返回了一个html给你,服务器怎么知道这个地址对应要返回什么样的 html 代码给你的?也是 Web Server 干的活。&br&&br&除了浏览器输地址敲回车这种赤裸裸的访问,客户端与服务器的交互还有很多种,比如:&br&&ul&&li&前面提到的用 JS 完成的 AJAX,有点像浏览器和服务器之间的悄悄话~&/li&&/ul&还有其他应用软件与服务器的交互,比如:&br&&ul&&li&微信、QQ 与腾讯的服务器的交互&/li&&li&网游客户端与网游公司服务器的交互&/li&&li&搜索引擎用来搜集网页信息的程序(爬虫)与各种各样的网站服务器的交互&br&&/li&&li&只要你知道用什么地址访问、怎样访问人家的服务器,并且有相应权限,你也可以自己写一些程序去和他们的服务器交互(比如用&a class=& wrap external& href=&//link.zhihu.com/?target=http%3A//open.weibo.com/wiki/%25E5%25BE%25AE%25E5%258D%259AAPI& target=&_blank& rel=&nofollow noreferrer&&微博API - 新浪微博API&/a&获取微博,开发第三方应用或者做数据分析)。&/li&&/ul&从这些栗子里可以看出,客户端与服务器的交互的主体、客体、载体是五花八门的:&br&&ul&&li&服务器可以是大型机也可以是个人电脑,只要能跑相应的程序就行&/li&&li&客户端像前面举的栗子里一样,可以是各种软件,而且这些软件不一定运行在个人电脑上,也可以是手机、平板、智能穿戴设备等等&/li&&li&有时候不是传生成好的 HTML 或者其他服务器上已经有的文件,而是传输经过一定逻辑处理后生成的字符串或者其他各种封装好的数据&/li&&/ul&像前面提到的 HTML 需要有一定标准一样,为了防止混乱和鸡同鸭讲,我们又需要先对这些机器需要怎么交互达成一定共识,再让它们进行交流。人与人之间通信,需要先有一种大家都认识的写法(比如简体字/繁体字)和一种彼此都懂的语言(比如普通话/广东话)。要让这些形形色色的机器能够通过网络进行交互,我们就需要指明一种协议(比如 HTTP/HTTPS)和一种数据封装格式(比如 HTML/XML),Web Server 提供的 Web Service,指的就是这种协议+格式的交流体系。不过 Web Service 的生态系统和 HTML 的标准不一样,用户可以选择的协议和数据封装格式更多,普通的网站访问用的 HTTP + HTML 只是其中一种,一些封闭系统内的交流还可以自己定义一个协议和格式来用(比如 QQ)。&br&&br&Web Service 传输的数据再经由本地客户端(浏览器、QQ/微信,网游客户端等)的分析渲染,就能够以普通人能够理解的形式展现出来。此外还有一些 Web Service 并不是为普通用户设计的,像前面提到的微博API,是用来给程序猿进行二次开发的~ &br&&br&除了提供 Web Service, Web Server 还会兼顾很多功能,包括提供缓存,平衡负载,这样在访问量比较大的时候能有有条不紊地接客。常见的现成的 Web Server 有开源的 Apache、Nginx和微软的IIS,你也可以用一些工具(比如 Node.js )自己定制一个。因为 Web Server 需要比较好的性能,所以投产时用的 Web Server 通常是C/C++/Java写的,但是其实很多语言都可以写,而且配合上语言底层的优化和好的模型,其他语言写的 Web Server也可以有不错的表现。&br&&br&&b&PHP ,服务器脚本,Web Framework&/b&&br&开头那张图里服务器接到请求之后可以给访客发送对应的文件,但21世纪的服务器怎么可能只会“接请求-发文件”这么弱智的一招呢,人家还可以处理你上传来的文件的!还可以接受你发过来的各种请求,去操作服务器本地的文件or数据库的!要干这些事,自然服务器那边也少不了要有代码了,这些代码就是服务器脚本。前面说的 Web Service 传输的数据,主要也是由服务器脚本生成,再交由 Web Server ,按照某种协议套好整个响应的格式,返回给客户端的。&br&&br&同一个网址,每个人看到的页面不一定是一样的,比如知乎首页的网址都是&br&&div class=&highlight&&&pre&&code class=&language-text&&http://www.zhihu.com/
&/code&&/pre&&/div&但是没登陆和登陆之后看到的东西不一样,登陆之后每个人看到的导航栏的用户信息,关注的动态,都不一样。服务器脚本可以对这些不同的状态,生成不同的页面,交给 Web Server 返回给浏览器。&br&知乎的主页给大家看到的 html 整体来说是差不多的,都有导航栏,左边是关注的动态,右边是广告和边栏,每一块的整体构造大同小异,只是一些地方内容有所区别。服务器脚本就是利用已知的数据,在这些因人而异的地方填入相应的内容,生成给每个人看的页面。&br&比如我的主页,导航栏右边的头像和名字跟别人看到的不一样,就是因为这块地方有一个放图片的&img&标签和一个写名字的&span&标签,服务器脚本在查询本地的数据之后给我返回的页面里&img&的标签填了我头像的图片链接,&span&标签里填了我的名字,给别人的页面就填其他链接、其他名字,这样每个人看到的页面就不一样了。&br&&figure&&img data-rawheight=&56& data-rawwidth=&597& src=&https://pic1.zhimg.com/500c9bdd6bf249eec5b084_b.jpg& class=&origin_image zh-lightbox-thumb& width=&597& data-original=&https://pic1.zhimg.com/500c9bdd6bf249eec5b084_r.jpg&&&/figure&&br&&figure&&img data-rawheight=&93& data-rawwidth=&559& src=&https://pic3.zhimg.com/11f27dccc90da76a1ac3c2_b.jpg& class=&origin_image zh-lightbox-thumb& width=&559& data-original=&https://pic3.zhimg.com/11f27dccc90da76a1ac3c2_r.jpg&&&/figure&&br&PHP 就是一种常见的用来写服务器脚本的语言,其实只要是能拿来写大家传输数据的通用接口(CGI)的语言都可以用来写服务器脚本(也就是说几乎所有编程语言都可以写 = =b),只是因为现成工具的丰富程度和专攻程度不一样,所以有一些语言在写服务器端脚本的时候会比较热门。&br&&br&为了方便,我们在写服务器脚本的时候,通常还会用个同语言写的 Web Framework 来处理各种细节,防御一些常见的攻击,提供跨站认证(比如用已有的微博账号注册其他网站)的接口,利用cookie处理登陆状态和用户设置,生成网页模版之类的。如果你用 C# 或者 Visual Basic 写服务器脚本,就可以用 &a href=&//link.zhihu.com/?target=http%3A//ASP.NET& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&ASP.NET&/span&&span class=&invisible&&&/span&&/a& 这个框架实现这些功能,帮你省点麻烦。不过现在不少人是反过来为了一个好用的 Web Framework 去选择它对应的服务器脚本语言的。&br&&br&&b&一个普通网站访问的过程&/b&&br&简单概括一下,对于我们普通的网站访问,涉及到的技术就是:&br&&ol&&li&用户操作浏览器访问,浏览器向服务器发出一个 HTTP 请求;&/li&&li&服务器接收到 HTTP 请求,Web Server 进行相应的初步处理,使用服务器脚本生成页面;&/li&&li&服务器脚本(利用Web Framework)调用本地和客户端传来的数据,生成页面;&/li&&li&Web Server 将生成的页面作为 HTTP 响应的 body,根据不同的处理结果生成 HTTP header,发回给客户端;&/li&&li&客户端(浏览器)接收到 HTTP 响应,通常第一个请求得到的 HTTP 响应的 body 里是 HTML 代码,于是对 HTML 代码开始解析;&/li&&li&解析过程中遇到引用的服务器上的资源(额外的 CSS、JS代码,图片、音视频,附件等),再向 Web Server 发送请求,Web Server 找到对应的文件,发送回来;&/li&&li&浏览器解析 HTML 包含的内容,用得到的 CSS 代码进行外观上的进一步渲染,JS 代码也可能会对外观进行一定的处理;&/li&&li&用户与页面交互(点击,悬停等等)时,JS 代码对此作出一定的反应,添加特效与动画;&/li&&li&交互的过程中可能需要向服务器索取或提交额外的数据(局部的刷新,类似微博的新消息通知),一般不是跳转就是通过 JS 代码(响应某个动作或者定时)向 Web Server 发送请求,Web Server 再用服务器脚本进行处理(生成资源or写入数据之类的),把资源返回给客户端,客户端用得到的资源来实现动态效果或其他改变。&/li&&/ol&注意这只是小网站里比较常见的模型,大网站为了解决规模问题还会有很多处理,每个环节都会有一些细微的差异,中间还会使用各种各样的工具减轻服务器的压力,提高效率,方便日常维护~&br&&br&&b&延伸阅读&/b& —— &b&那些看花眼的名词&/b&&br&为了方便调试,很多 Web Framework 会自带一个简单的 Web Server,或者有些 Web Server 会自带一个简单的 Web
Framework ,实际部署到服务器上开放使用的时候为了性能或者安全等多方面的考虑,可以把内置的 Web Server 换成其他的,比如
Apache 或者 Nginx (举个栗子,知乎用的是 Tornado 做 Framework,Server 换成了 Nginx,见&a class=&internal& href=&http://www.zhihu.com/question/&&知乎使用了哪些框架和开源库?&/a&)。如果是开源的东西,还可以在遵守开源协议的前提下自己改一下再用~&br&&br&因为后端不像前端已经有 HTML + CSS + JS 这样的既定事实标准,服务器脚本与 Web Framework
的选择很多,所以新手会听到很多眼花缭乱的技术名词的地方多在这里~
举一些栗子,早年常见的服务器端语言有:&br&&ul&&li&开源的 PHP&/li&&li&Sun 公司的 JSP 中使用的 Java&/li&&li&微软的 ASP 中使用的 VBScript&/li&&/ul&现在在这方面的应用热起来的语言有&br&&ul&&li& Python,对应常见的 Framework 包括知乎和Quora有用到的 Tornado(其实是自带 Framework 的 Web Server),社区很成熟的 Django (用户包括 Instagram、Pinterest)等&/li&&li&Ruby,一般都用 Rails 这个 Framework,用户包括 Github、早期的 Twitter 等&br&&/li&&li&逆天的 JavaScript,有了 Node.js 这个平台,Web Server、服务器脚本和浏览器脚本全都可以用
JavaScript 来写……Node.js上最常用的 Framework是Express&br&&/li&&li&微软家的则跟着 &a href=&//link.zhihu.com/?target=http%3A//ASP.NET& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&ASP.NET&/span&&span class=&invisible&&&/span&&/a& 转移到了C# 或者 Visual Basic&/li&&li&Erlang,擅长大规模的并发,不少游戏公司拿来写服务器,靠几十个工程师支撑几亿用户的WhatsApp也是用的这个~&/li&&/ul&几种常见的架构包括:&br&&ul&&li&LAMP = Linux + Apache + MySQL + PHP(P还可能是Python或Perl。有时候L会改成W=Windows。),也就是服务器上的操作系统是 Linux,Web Server 用 Apache,数据库用 MySQL,服务器脚本用 PHP,这些都是开源技术,网站起步时用起来的成本会比较低,所以是普通网站里非常常见的架构(虽然对于发展得很大的网站会遇到很多瓶颈),Facebook就是这种,淘宝也曾经是。&/li&&li&J2EE,Java 世界的架构,通常是企业用的(银行、大型公司,.etc),比较常见地还会搭配一种 UNIX 做操作系统,Apache 做 Web Server,Tomcat 转换 JSP 到 Java 给服务器程序用(其实它也自带 Web Server),Oracle 数据库等等。不一定拿来建站,常常用来提供企业里的各种需要用到网络的业务。我们学校教务系统就是用J2EE做的=。= 淘宝现在也是从LAMP转型到了这个。&br&&/li&&li&&a href=&//link.zhihu.com/?target=http%3A//ASP.NET& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&ASP.NET&/span&&span class=&invisible&&&/span&&/a&,微软家的架构,通常会搭配 Windows Server 操作系统,SQL Server 数据库,IIS 做 Web Server。StackOverflow和京东(曾经)就是这个架构。&/li&&li&神奇的MEAN架构,MongoDB做数据库,Express做 Web Framework,Angular 做前端的 JavaScript 框架,Node.js 用于编写 Web Server。神奇之处在于这几个东西的语言都是 JavaScript (MongoDB的实现不是,但与外界沟通用的语言是)。因为是比较新的架构,还有待时间的考验,不过被很多人(尤其是靠 JavaScript 吃饭的前端程序猿们)热切关注。&/li&&li&一般来说重点不在技术而且在乎成本的新网站比较喜欢用 LAMP,重视安全稳定和速度的企业和机构喜欢 J2EE,想省事的网站喜欢 &a href=&//link.zhihu.com/?target=http%3A//ASP.NET& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&ASP.NET&/span&&span class=&invisible&&&/span&&/a&,比较 Geek 的网站和创业公司喜欢折腾各种 Python、Ruby、Node.js世界的东西,Google 这样现成的技术都解决不了需求的超大型网站就自己折腾解决方案。&br&&/li&&/ul&虽然可以用的语言和所属体系五花八门,其实服务器端程序要做的事情本质上都差不多的,就好比自然世界中要表达“吃过了没”这句话的意思,你可以用各种各样的语言在各种各样的场景里表达出来~
一个学期前我也和楼主差不多不知道这些都是啥,一个学期之后差不多都弄懂了,来讲讲自己的理解吧 & & 因为接触的时间不是很长,有错误的地方欢迎指正~ 首先要知道网站访问大概是什么个过程: 假设你在浏览器地址栏输入这个问题的地址 http://www.zhihu.com/…
声明一点,以下内容来自网络,主要是很多答案看得我云里雾里不明所以,干脆找个全的,并附带德布罗意的故事的辟谣考证。&br&&br&&b&1. 最牛博士论文就是在还没答辩之前已经发表在最好的期刊,而且鉴于论文很长,该期刊必须像小说一样连载。&/b&&br&实例:张五常博士论文《佃农理论》,当年在JLE上连载四期。 &br&这里是该论文中文版:&a href=&//link.zhihu.com/?target=http%3A//ishare.iask.sina.com.cn/f/.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&[佃农理论].张五常.完美文字版.pdf_免费高速下载&/a&&br&&br&&b&2. 最牛博士论文答辩就是答辩人一直在挑战答辩委员会成员,直到问得这些教授们紧张到恍惚以为自己才是答辩人。&/b&&br&实例:萨缪尔森的博士论文答辩结束后,答辩委员会成员之一的熊彼特(上世纪最伟大的经济学家之一)转过头去问另一位成员里昂剔夫(诺奖得主):“瓦西里,我们通过了么?” &br&博士学位论文为《经济理论操作的重要性》,这部论文获得了哈佛大学威尔斯奖。&br&&br&&b&3. 最牛投稿论文就是让编辑满世界都找不到一个能看懂这篇论文的匿名审稿人,最后只能发表,根本不需要修改的。&/b&&br&实例:SIMS1971年发表在《数理统计年鉴》上的论文《无穷维参数空间中的分布滞后估计》。SIMS写完这篇论文后没投经济学杂志,因为他显然知道没 人看的懂。于是投给了最牛B的数理统计杂志,结果编辑死活找不到审稿人,最后好不容易凑合拉来一个,审稿报告是这么写的:“我真的不明白这篇论文在说什么,但是我检验了其中的几个定理,好像是对的。所以我猜应该发表。” &br&论文全文(英文):&a href=&//link.zhihu.com/?target=http%3A//ishare.iask.sina.com.cn/f/.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&无穷维参数空间中的分布滞后估计.pdf_免费高速下载&/a&&br&&br&&b&4. 最牛B的论文没必要长篇大论,两页纸足以。(基本证实为谣言)&/b&&br&实例:德布罗意是个花花公子贵族,本科是历史学专业的,后来实在闲着无聊去读了5年博士,最后交的博士论文是一页纸,还涉嫌“抄袭”。答辩委员会气的都不 想让他答辩。他的导师、著名物理学家朗之万感到很没面子,自己学生毕业不了真是耻辱,于是他鼓动了爱因斯坦一起帮着求情:让这小子过了吧,他老爸是法国内政部长,咱惹不起。那篇“垃圾”论文后来被薛定谔看到了,薛定谔看着这页论文苦思冥想了1个月,发表了量子力学里最重要的理论之一的薛定谔方程,薛定谔猫也成为最有趣的一只猫。德布罗意因这篇论文说阐述的观点获得了诺贝尔物理学奖。薛定谔凭借德布罗意的这篇论文对量子力学作出了杰出贡献,从一名普通而不得 志的讲师一跃成为了一名伟大的科学家并获得了诺贝尔物理学奖。可以说,一篇1页纸的博士论文成就2个诺贝尔物理学奖可谓前无古人,估计也是后无来者。由此 看来,最牛b的论文不必象张五常那样连载,一页A4的纸足矣。&br&具体故事:&a href=&//link.zhihu.com/?target=http%3A//www.douban.com/group/topic/2924602/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&http://blog.sina.com.cn/s/blog_4a0f20f80100jkfe.html&/a&&br&&br&以下辟谣:&br&网上诸多博客都转载了这个故事,在考证了wikipedia、诺贝尔官网介绍和真实博士论文后,发现谣言实在太离谱,有时候转载是罪啊,希望谣言止于智者吧。&br&故事说1919年前,德布罗意在巴黎无聊的打发日子,是一个花花公子。然而1914年,第一次世界大战爆发时,德布罗意就已经在陆军服役。1919 年,退役后,德布罗意又回返索邦大学,继续先前的理论物理研究,立志拿到博士学位。博士期间,德布罗意连续在《法国科学院通报》上发表了三篇有关波和量子的论文,而不是仅仅一篇博士论文,阐述了波粒二象性的观点。&br&关于爱因斯坦和薛定谔的交集真实情况是这样的:&br&&blockquote&德布罗意的论文发表后,当时并没有多大反应。后来引起人们注意是由于爱因斯坦的支持。朗之万曾将德布罗意的论文寄了一份给爱因斯坦,爱因斯坦看到后非常高兴。他没有想到,自己创立的有关光的波粒二象性观念,在德布罗意手里发展成如此丰富的内容,竟扩展到了运动粒子。&br&当1926年薛定谔发表他的波动力学论文时,曾明确表示:“这些考虑的灵感,主要归因于路易·维克多·德布罗意先生的独创性的论文。”&/blockquote&关于他的富二代身份:&br&&blockquote&1740年路易十四封德布罗意家族为世袭公爵。当德布罗意的长兄、实验物理学家莫里斯(Mauriee)死后,在1960年路易继承为第七代布罗意公爵 (7th duc de Broglie) 兼德国王子。路易从未结婚,一辈子单身,有两位忠心耿耿的随从。他喜欢过平俗简朴的生活,卖掉了贵族世袭的豪华巨宅,选择住在平民小屋。他深居简出,从来不放假,是个标准的工作狂。上班通勤,他喜欢步行,或搭巴士,不曾拥有私人汽车。对人彬彬有礼,他绝不发脾气,是一位贵族绅士[1]。。&/blockquote&可以看出任何成就都不可能有侥幸,请大家不要黑他了。&br&参考资料:&br&博士论文原文:&a href=&//link.zhihu.com/?target=http%3A//tel.archives-ouvertes.fr/tel-/en/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&tel.archives-ouvertes.fr&/span&&span class=&invisible&&/tel-/en/&/span&&span class=&ellipsis&&&/span&&/a&&br&Wikipedia个人简介:&a href=&//link.zhihu.com/?target=https%3A//zh.wikipedia.org/zh-cn/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&zh.wikipedia.org/zh-cn/&/span&&span class=&invisible&&&/span&&/a&路易·德布罗意&br&诺贝尔官网个人简介:&a href=&//link.zhihu.com/?target=http%3A//www.nobelprize.org/nobel_prizes/physics/laureates/1929/broglie-bio.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Louis de Broglie&/a&&br&&br&&b&5. 最牛的博士论文不需要博士本人亲自参加答辩&/b&&br&高斯的博士论文给出了代数基本定理的第一个实质性证明。代数基本定理1629年由A·吉拉尔提出后,经笛卡儿、牛顿等反复陈述、应用,欧拉、拉格朗日等力图证明而未获成功。&br&由于高斯的论文解决了前数学家达朗贝尔、欧拉和拉格朗日试图解决而没有解决的问题,因此,他的论文受到赫尔姆斯塔特大学校务委员会的肯定。在高斯缺席答辩 的情况下,通过了论文。论文评定人是该大学著名的数学教授普法夫。他对高斯的评语是:“这篇论文具有许多优点,说明作者才华突出,通篇叙述充满了完全合理 的推论和令人信服的证明。因此,这篇论文出版以后,高斯博士学位将为我们大学增添无比的荣誉。”因此,高斯获得了博士学位。同年,高斯获得讲师职称。
声明一点,以下内容来自网络,主要是很多答案看得我云里雾里不明所以,干脆找个全的,并附带德布罗意的故事的辟谣考证。 1. 最牛博士论文就是在还没答辩之前已经发表在最好的期刊,而且鉴于论文很长,该期刊必须像小说一样连载。 实例:张五常博士论文《佃…
五月底的Deadline 三月初完成&br&&br&最开始是这样 然后经过了一番努力变成了右边的样子&br&&figure&&img src=&https://pic2.zhimg.com/cdbd2ae299d79ca48fe1_b.jpg& data-rawwidth=&960& data-rawheight=&480& class=&origin_image zh-lightbox-thumb& width=&960& data-original=&https://pic2.zhimg.com/cdbd2ae299d79ca48fe1_r.jpg&&&/figure&然而看着自己的努力也很开心呀 &br&&figure&&img src=&https://pic1.zhimg.com/97d300a5f_b.jpg& data-rawwidth=&720& data-rawheight=&405& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&https://pic1.zhimg.com/97d300a5f_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/93c56f348d5e57bfb35ae_b.jpg& data-rawwidth=&720& data-rawheight=&405& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&https://pic3.zhimg.com/93c56f348d5e57bfb35ae_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/700d3cd9_b.jpg& data-rawwidth=&720& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&https://pic2.zhimg.com/700d3cd9_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/1dc6fb49c1dd11290f67_b.jpg& data-rawwidth=&564& data-rawheight=&939& class=&origin_image zh-lightbox-thumb& width=&564& data-original=&https://pic4.zhimg.com/1dc6fb49c1dd11290f67_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/97c5ba2b978f55a04fddf242b70e757e_b.jpg& data-rawwidth=&960& data-rawheight=&960& class=&origin_image zh-lightbox-thumb& width=&960& data-original=&https://pic3.zhimg.com/97c5ba2b978f55a04fddf242b70e757e_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/8faf1ce493bf1b28aa24c0_b.jpg& data-rawwidth=&960& data-rawheight=&960& class=&origin_image zh-lightbox-thumb& width=&960& data-original=&https://pic1.zhimg.com/8faf1ce493bf1b28aa24c0_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/ffc_b.jpg& data-rawwidth=&960& data-rawheight=&960& class=&origin_image zh-lightbox-thumb& width=&960& data-original=&https://pic4.zhimg.com/ffc_r.jpg&&&/figure&嗯 就这样 &br&&br&然后这些剩下的细节我也导入进游戏空间里 UDK啥的 看上去还挺赞&br&&br&&figure&&img src=&https://pic1.zhimg.com/eb1bb15c6e4_b.jpg& data-rawwidth=&960& data-rawheight=&534& class=&origin_image zh-lightbox-thumb& width=&960& data-original=&https://pic1.zhimg.com/eb1bb15c6e4_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/e6835aaafd33fed218c5_b.jpg& data-rawwidth=&720& data-rawheight=&403& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&https://pic2.zhimg.com/e6835aaafd33fed218c5_r.jpg&&&/figure&
五月底的Deadline 三月初完成 最开始是这样 然后经过了一番努力变成了右边的样子 然而看着自己的努力也很开心呀 嗯 就这样 然后这些剩下的细节我也导入进游戏空间里 UDK啥的 看上去还挺赞
好些年了,今天所做的事,一切仿佛在昨天。&br&&br&&br&这几天准备把旧电脑数据处理掉,看到了这个(当年自己做的毕业设计),毕业设计对自己的影响还是很大的,那时你还没进入社会,怀揣这自己对未来的幻想。记得很清楚很清楚当时想做一个,让老百姓方便在网络上购物的东东,所以毕业项目做了一个百姓购物商城。现在京东做的非常好··················································································································································································································&br&&br&&br&整个系统实现了购物到订单的流程,记得当时觉得自己搞定了一个很牛逼的事,那就是购物车,&br&当时的购物系统基本没看到开源的,购物车是一大难题,花了我整整1个月才想到思路,自从从无到有的做了这套系统,对我后面对web项目的认识,影响很大。&br&&br&&br&毕业答辩主要是依照这个PPT,对这个商城项目进行答辩,从ppt,到项目演示,当时在操作,其他成员心理都比较紧张。&br&&br&&figure&&img src=&https://pic4.zhimg.com/082bbf91a57ca54b60333_b.jpg& data-rawwidth=&720& data-rawheight=&540& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&https://pic4.zhimg.com/082bbf91a57ca54b60333_r.jpg&&&/figure&&br&&br&&br&&figure&&img src=&https://pic1.zhimg.com/34a310be25dfc8df738b3bac0110ce38_b.jpg& data-rawwidth=&720& data-rawheight=&540& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&https://pic1.zhimg.com/34a310be25dfc8df738b3bac0110ce38_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/cc3fb7a9a1ad9f047186_b.jpg& data-rawwidth=&720& data-rawheight=&540& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&https://pic3.zhimg.com/cc3fb7a9a1ad9f047186_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/bcd8fbde6f_b.jpg& data-rawwidth=&720& data-rawheight=&540& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&https://pic4.zhimg.com/bcd8fbde6f_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/57a8577a6eeaf0ae521e4e5_b.jpg& data-rawwidth=&720& data-rawheight=&540& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&https://pic2.zhimg.com/57a8577a6eeaf0ae521e4e5_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/19f8e1b46da_b.jpg& data-rawwidth=&720& data-rawheight=&540& class=&origin_image zh-lightbox-thumb& width=&720& data-ori}

我要回帖

更多关于 www.8888ec.comm 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信