Web 建站技术中,HTML、HTML5、XHTML、CSS、SQL、JavaScript、PHP、ASP.NET、Web Services 是什么?

2023-02-20 0 665

两个学年前我也和哈哈相差无几不晓得那些都是啥,两个学年后相差无几都搞清楚了,来谈谈他们的认知吧 > < 即使碰触的天数并非极短,有严重错误的地方性热烈欢迎尖萼~

具体来说要晓得中文网站出访约莫是甚么个操作过程:

假定你在应用程序门牌号栏输出那个难题的门牌号

http://www.zhihu.com/question/22689579

出访操作过程和右图相差无几,应用程序和伺服器沟通交流,伺服器和资料库沟通交流(有时资料库就在伺服器那台机壳上)

Web 建站技术中,HTML、HTML5、XHTML、CSS、SQL、JavaScript、PHP、ASP.NET、Web Services 是什么?

HTML 与 CSS

我家笔记本电脑领到两个 html (是上图 HTTP 积极响应的 body 里的文档)后,就会对它展开导出图形。HTML 是一类记号词汇。等效哈哈,我们在高峰论坛上时常会用许多标识符来加进富文档文档,举许多红豆:

[img]相片门牌号[/img]
用以图形
[url]源文档[/url]
用以贴门牌号
[del]哈哈[/del]
则表示条码里的文本假如被删去(预设加进删掉线效用)

此种高峰论坛标识符也是一类记号词汇,HTML 的促进作用就和它相差无几。伺服器返回给你的html文档里头,写的是许多标识符,约莫是此种的:

Web 建站技术中,HTML、HTML5、XHTML、CSS、SQL、JavaScript、PHP、ASP.NET、Web Services 是什么?

应用程序领到那些标识符后,预测哈哈给你图形好网页表明出,假如不必css,效用是此种的,依照应用程序预设的式样表明出条目、相片、源文档、快捷方式、按键之类:

Web 建站技术中,HTML、HTML5、XHTML、CSS、SQL、JavaScript、PHP、ASP.NET、Web Services 是什么?

是并非觉得预设式样有点看瞎狗眼呢……所以很多时候我们需要自定义式样,现行通用的规定式样的词汇是CSS,我们可以用它写许多定义式样的标识符,然后在 html 文档里用两个<link>条码把那些规定式样的 CSS 标识符与表达文档语义的 HTML 标识符关联起来,然后你就能看到两个符合人类正常审美的网页了:

Web 建站技术中,HTML、HTML5、XHTML、CSS、SQL、JavaScript、PHP、ASP.NET、Web Services 是什么?

CSS 标识符的格式基本是

属性:值

比如知乎顶上那个蓝色的导航条,它的 CSS 大约是此种的

Web 建站技术中,HTML、HTML5、XHTML、CSS、SQL、JavaScript、PHP、ASP.NET、Web Services 是什么?

第两个属性对应的标识符翻译成人话,是它的位置(position)假如是不动(fixed)的,应用程序会兢兢业业地去实现这段标识符要求实现的效用, 所以你在网页上翻来翻去顶上那个导航条都会死死地黏在窗口顶部不跟着滚动。

再拿里头的其他几个属性做红豆解释哈哈是:

left 和 top 为零指明那个导航条要紧贴着窗口的左上角width 和 height 指定那个导航条的宽和高background 指明那个导航条的背景是一类渐变的蓝色

应用程序就会根据那些 CSS 标识符,“画”出对应的式样。

HTML 5 与 XHTML

像人的词汇一样,网络上的网页里的 HTML 标识符也不一定是标准的,好比有时你发音不太标准,别人会去猜测你说的到底是甚么一样,有些时候前端程序猿不小心写错了 HTML,应用程序也会试图猜测他们原来想写的是甚么,做对应的图形,而猜是要有两个常识做依据的。加上有些应用程序支持许多条码,有许多又不支持,以及其他混乱的情况,为了防止我们鸡同鸭讲,我们需要对 HTML 标识符里能有甚么条码,条码怎么写,条码可以有甚么属性那些东西有一定的共识,建立两个通行的标准,HTML5 是其中两个比较新的标准。那个标准新加了很多可以用的条码和属性,然后各大应用程序也吭哧吭哧按那个标准去实现了很多那些新加的条码和属性,本来前端程序员要写一堆标识符去实现的效用,现在应用程序都给你实现好了,只要写两三行,调用哈哈应用程序给你实现的部分就能搞定,简单愉快,所以很多人都在热情地推广那个标准~(当然新标准也不可能是完美的,总会有许多难题,怕跑题这里按下不表~)

至于 XHTML,是 HTML 的近亲 XML 和 HTML 他们的杂交品种,对语法要求比较严格,并且为了兼容 XML,在语法上与 HTML 有许多不同~

JavaScript 与应用程序脚本

有了则表示文档和语义的 HTML,规定式样的 CSS,得到的是两个静态的网页,没甚么动画(其实用 CSS 还是可以有许多动画的,不过那个跑题了),按 F5 才会刷新数据,都 21世纪了,这么呆板单调的网页怎么能展现我大智人种族的创造性口胡!于是我们有了 Javascript(JS) 来给网页加进许多动态的效用,比如知乎难题的条码,鼠标移上去会弹出两个小窗口,那个是 JS 实现的效用啦。

Web 建站技术中,HTML、HTML5、XHTML、CSS、SQL、JavaScript、PHP、ASP.NET、Web Services 是什么?

应用程序都会帮你实现许多 JS 可以用的工具(函数,对象甚么的),你只要写许多 JS 的标识符,保存在 xxx.js 里,在 html 文档中用 <script> 关联进来就可以用了,像上图那个效用假如就包括了

鼠标悬停到条码上时创建两个新的

小窗口
用 JS 向知乎伺服器发送两个请求,得到那个小窗口假如表明的数据,放在那个小窗口里(这是所谓的AJAX,不必刷新就能与伺服器展开交互,更新网页的一小部分~)

应用程序领到此种的标识符,就会导出并实现出相应的效用,哈哈问的应用程序脚本,指的是此种子的标识符。其实用以写应用程序脚本的,也并非非得JavaScript 不可,当年还为到底用甚么词汇写此种标识符有过一段战火纷飞的时期,但现在尘埃落定,各大应用程序都预设了:请用 JS 写那些动态效用的标识符给我导出~

以上是前端部分的文档,下面简述哈哈后端的东西吧> <

Web Server 和 Web Services

应用程序给伺服器发两个请求,伺服器并非一看就晓得怎么积极响应的。具体来说那些请求和积极响应要有两个通用的写法,也是要有一个协议,常用的是 HTTP 协议。

像最前面的图,伺服器的积极响应写了两个状态码 200 OK ,是 HTTP 协议里约定俗成的两个东西,伺服器写 200 OK 在积极响应里,则表示“你请求的那个东西我有”,假如是404 Not Found,是“你请求的那个东西我这里没有”。

HTTP 积极响应里还包括很多东西,比如 Content-type 则表示伺服器发过来的文档类型是甚么(文档?动画?相片?音频?),此种发过去了人家应用程序好晓得怎么展示给用户看。人家伺服器怎么晓得按协议要写甚么东西进去呢,这是 Web Server 干活的时候了。

形象化哈哈HTTP积极响应,约莫就长此种:

Web 建站技术中,HTML、HTML5、XHTML、CSS、SQL、JavaScript、PHP、ASP.NET、Web Services 是什么?

再上个锤子,应用程序和伺服器之间请求响应的操作过程大致是长此种的,右下角的那些东西是由 Web Server 生成的(伺服器脚本可以做许多改动,但那些一般是 Web Server 的份内活):

Web 建站技术中,HTML、HTML5、XHTML、CSS、SQL、JavaScript、PHP、ASP.NET、Web Services 是什么?

再比如说很多时候你出访两个中文网站,应用程序里输的门牌号并没有写明你请求的文档,比如那个难题的门牌号是:

http://www.zhihu.com/question/22689579

但知乎的伺服器其实返回了两个html给你,伺服器怎么晓得那个门牌号对应要返回甚么样的 html 标识符给你的?也是 Web Server 干的活。

除了应用程序输门牌号敲回车此种赤裸裸的出访,客户端与伺服器的交互还有很多种,比如:

前面提到的用 JS 完成的 AJAX,有点像应用程序和伺服器之间的悄悄话~

还有其他应用软件与伺服器的交互,比如:

微信、QQ 与腾讯的伺服器的交互网游客户端与网游公司伺服器的交互搜索引擎用以搜集网页信息的程序(爬虫)与各种各样的中文网站伺服器的交互

只要你晓得用甚么地址出访、怎样出访人家的伺服器,并且有相应权限,你也可以他们写许多程序去和他们的伺服器交互(比如用微博API – 新浪微博API

从那些红豆里可以看出,客户端与服务器的交互的主体、客体、载体是五花八门的:

伺服器可以是大型机也可以是个人笔记本电脑,只要能跑相应的程序就行客户端像前面举的红豆里一样,可以是各种软件,而且那些软件不一定运行在个人笔记本电脑上,也可以是手机、平板、智能穿戴设备之类有时并非传生成好的 HTML 或者其他伺服器上已经有的文档,而是传输经过一定逻辑处理后生成的字符串或者其他各种封装好的数据

像前面提到的 HTML 需要有一定标准一样,为了防止混乱和鸡同鸭讲,我们又需要先对那些机器需要怎么交互达成一定共识,再让它们展开沟通交流。人与人之间通信,需要先有一类我们都认识的写法(比如简体字/繁体字)和一类彼此都懂的词汇(比如普通话/广东话)。要让那些形形色色的机器能够通过网络展开交互,我们就需要指明一类协议(比如 HTTP/HTTPS)和一类数据封装格式(比如 HTML/XML),Web Server 提供的 Web Service,指的是此种协议+格式的沟通交流体系。不过 Web Service 的生态系统和 HTML 的标准不一样,用户可以选择的协议和数据封装格式更多,普通的中文网站出访用的 HTTP + HTML 只是其中一类,许多封闭系统内的沟通交流还可以他们定义两个协议和格式来用(比如 QQ)。

Web Service 传输的数据再经由本地客户端(应用程序、QQ/微信,网游客户端等)的预测图形,就能够以普通人能够认知的形式展现出。此外还有许多 Web Service 并并非为普通用户设计的,像前面提到的微博API,是用以给程序猿展开二次开发的~

除了提供 Web Service, Web Server 还会兼顾很多功能,包括提供缓存,平衡负载,这样在出访量比较大的时候能有有条不紊地接客。常见的现成的 Web Server 有开源的 Apache、Nginx和微软的IIS,你也可以用许多工具(比如 Node.js )他们定制两个。即使 Web Server 需要比较好的性能,所以投产时用的 Web Server 通常是C/C++/Java写的,但是其实很多词汇都可以写,而且配合上词汇底层的优化和好的模型,其他词汇写的 Web Server也可以有不错的表现。

PHP ,伺服器脚本,Web Framework

开头那张图里伺服器接到请求后可以给访客发送对应的文档,但21世纪的伺服器怎么可能只会“接请求-发文档”这么弱智的一招呢,人家还可以处理你上传来的文档的!还可以接受你发过来的各种请求,去操作伺服器本地的文档or资料库的!要干那些事,自然伺服器那边也少不了要有标识符了,那些标识符是伺服器脚本。前面说的 Web Service 传输的数据,主要也是由伺服器脚本生成,再交由 Web Server ,依照某种协议套好整个积极响应的格式,返回给客户端的。

同两个网址,每个人看到的网页不一定是一样的,比如知乎首页的网址都是

http://www.zhihu.com/

但是没登陆和登陆后看到的东西不一样,登陆后每个人看到的导航栏的用户信息,关注的动态,都不一样。伺服器脚本可以对那些不同的状态,生成不同的网页,交给 Web Server 返回给浏览器。

知乎的主页给我们看到的 html 整体来说是相差无几的,都有导航栏,左边是关注的动态,右边是广告和边栏,每一块的整体构造大同小异,只是许多地方性文档有所区别。伺服器脚本是利用已知的数据,在那些因人而异的地方性填入相应的文档,生成给每个人看的网页。

比如我的主页,导航栏右边的头像和名字跟别人看到的不一样,是即使这块地方性有两个放相片的<img>条码和两个写名字的<span>条码,伺服器脚本在查询本地的数据后给我返回的网页里<img>的条码填了我头像的相片链接,<span>条码里填了我的名字,给别人的网页就填其他链接、其他名字,此种每个人看到的网页就不一样了。

Web 建站技术中,HTML、HTML5、XHTML、CSS、SQL、JavaScript、PHP、ASP.NET、Web Services 是什么?
Web 建站技术中,HTML、HTML5、XHTML、CSS、SQL、JavaScript、PHP、ASP.NET、Web Services 是什么?

PHP 是一类常见的用以写伺服器脚本的词汇,其实只要是能拿来写我们传输数据的通用接口(CGI)的词汇都可以用以写伺服器脚本(也是说几乎所有编程词汇都可以写 = =b),只是即使现成工具的丰富程度和专攻程度不一样,所以有许多词汇在写服务器端脚本的时候会比较热门。

为了方便,我们在写伺服器脚本的时候,通常还会用个同词汇写的 Web Framework 来处理各种细节,防御许多常见的攻击,提供跨站认证(比如用已有的微博账号注册其他中文网站)的接口,利用cookie处理登陆状态和用户设置,生成网页模版之类的。假如你用 C# 或者 Visual Basic 写伺服器脚本,就可以用http://ASP.NET那个框架实现那些功能,帮你省点麻烦。不过现在不少人是反过来为了两个好用的 Web Framework 去选择它对应的伺服器脚本词汇的。

两个普通中文网站出访的操作过程

简单概括哈哈,对于我们普通的中文网站出访,涉及到的控制技术是:

用户操作应用程序出访,浏览器向伺服器发出两个 HTTP 请求;伺服器接收到 HTTP 请求,Web Server 展开相应的初步处理,使用伺服器脚本生成网页;伺服器脚本(利用Web Framework)调用本地和客户端传来的数据,生成网页;Web Server 将生成的网页作为 HTTP 积极响应的 body,根据不同的处理结果生成 HTTP header,发回给客户端;客户端(应用程序)接收到 HTTP 积极响应,通常第两个请求得到的 HTTP 积极响应的 body 里是 HTML 标识符,于是对 HTML 标识符开始导出;导出操作过程中遇到引用的伺服器上的资源(额外的 CSS、JS标识符,相片、音视频,附件等),再向 Web Server 发送请求,Web Server 找到对应的文档,发送回来;应用程序导出 HTML 包含的文档,用得到的 CSS 标识符展开外观上的进一步图形,JS 标识符也可能会对外观展开一定的处理;用户与网页交互(点击,悬停之类)时,JS 标识符对此作出一定的反应,加进特效与动画;交互的操作过程中可能需要向伺服器索取或提交额外的数据(局部的刷新,类似微博的新消息通知),一般并非跳转是通过 JS 标识符(积极响应某个动作或者定时)向 Web Server 发送请求,Web Server 再用伺服器脚本展开处理(生成资源or写入数据之类的),把资源返回给客户端,客户端用得到的资源来实现动态效用或其他改变。

注意这只是小中文网站里比较常见的模型,大中文网站为了解决规模难题还会有很多处理,每个环节都会有许多细微的差异,中间还会使用各种各样的工具减轻伺服器的压力,提高效率,方便日常维护~

延伸阅读 —— 那些看花眼的名词

为了方便调试,很多 Web Framework 会自带两个简单的 Web Server,或者有些 Web Server 会自带两个简单的 Web Framework ,实际部署到伺服器上开放使用的时候为了性能或者安全等多方面的考虑,可以把内置的 Web Server 换成其他的,比如 Apache 或者 Nginx (举个红豆,知乎用的是 Tornado 做 Framework,Server 换成了 Nginx,见

知乎使用了哪些框架和开源库?

)。假如是开源的东西,还可以在遵守开源协议的前提下他们改哈哈再用~

即使后端不像前端已经有 HTML + CSS + JS 此种的既定事实标准,伺服器脚本与 Web Framework 的选择很多,所以新手会听到很多眼花缭乱的控制技术名词的地方性多在这里~ 举许多红豆,早年常见的伺服器端词汇有:

开源的 PHPSun 公司的 JSP 中使用的 Java微软的 ASP 中使用的 VBScript

现在在这方面的应用热起来的词汇有

Python,对应常见的 Framework 包括知乎和Quora有用到的 Tornado(其实是自带 Framework 的 Web Server),社区很成熟的 Django (用户包括 Instagram、Pinterest)等Ruby,一般都用 Rails 那个 Framework,用户包括 Github、早期的 Twitter 等

逆天的 JavaScript,有了 Node.js 那个平台,Web Server、伺服器脚本和应用程序脚本全都可以用 JavaScript 来写……Node.js上最常用的 Framework是Express

微软家的则跟着 http://ASP.NET转移到了C# 或者 Visual BasicErlang,擅长大规模的并发,不少游戏公司拿来写伺服器,靠几十个工程师支撑几亿用户的WhatsApp也是用的那个~

几种常见的架构包括:

LAMP = Linux + Apache + MySQL + PHP(P还可能是Python或Perl。有时L会改成W=Windows。),也是伺服器上的操作系统是 Linux,Web Server 用 Apache,资料库用 MySQL,伺服器脚本用 PHP,那些都是开源控制技术,中文网站起步时用起来的成本会比较低,所以是普通中文网站里非常常见的架构(虽然对于发展得很大的中文网站会遇到很多瓶颈),Facebook是此种,淘宝也曾经是。J2EE,Java 世界的架构,通常是企业用的(银行、大型公司,.etc),比较常见地还会搭配一类 UNIX 做操作系统,Apache 做 Web Server,Tomcat 转换 JSP 到 Java 给伺服器程序用(其实它也自带 Web Server),Oracle 资料库之类。不一定拿来T8300,常常用以提供企业里的各种需要用到网络的业务。我们学校教务系统是用J2EE做的=。= 淘宝现在也是从LAMP转型到了那个。

http://ASP.NET,微软家的架构,通常会搭配 Windows Server 操作系统,SQL Server 资料库,IIS 做 Web Server。StackOverflow和京东(曾经)是那个架构。神奇的MEAN架构,MongoDB做资料库,Express做 Web Framework,Angular 做前端的 JavaScript 框架,Node.js 用于编写 Web Server。神奇之处在于这几个东西的词汇都是 JavaScript (MongoDB的实现并非,但与外界沟通用的词汇是)。即使是比较新的架构,还有待天数的考验,不过被很多人(尤其是靠 JavaScript 吃饭的前端程序猿们)热切关注。一般来说重点不在控制技术而且在乎成本的新中文网站比较喜欢用 LAMP,重视安全稳定和速度的企业和机构喜欢 J2EE,想省事的中文网站喜欢http://
ASP.NET

,比较 Geek 的中文网站和创业公司喜欢折腾各种 Python、Ruby、Node.js世界的东西,Google 此种现成的控制技术都解决不了需求的超大型中文网站就他们折腾解决方案。

虽然可以用的语言和所属体系五花八门,其实伺服器端程序要做的事情本质上都相差无几的,就好比自然世界中要表达“吃过了没”这句话的意思,你可以用各种各样的词汇在各种各样的场景里表达出~

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务