一、标准通用标记语言(SGML)
1.HTML
即超文本标记语言(HyperText Markup Language),超文本指页面内可以包含图片、音乐、链接甚至程序等非文字元素,如果只用HTML 则只能做静态网页。
静态网页:指不含数据库、不含程序和不可交互的网页,适用于更新较少的展示型网页,运行于客户端,通常以 .html 或 .htm 或 .xml 或 .shtml 为后缀。无需经过服务器编译便可直接加载到客户浏览器上显示出来,占用一定的服务器空间。可在静态网页中加入 flash、 java 小程序、ActiveX 控件以及客户端脚本,这些都由程序员事先编写好放到服务器上。
动态网页:动态网页在服务器端运行,在不同时间会根据不同用户返回不同的网页,与服务器发生交互行为。以数据库为基础,可实现用户的注册、登录、用户管理等操作。动态网页并不是独立存在于服务器上的网页文件,只有在客户端发出请求后才返回一个完整的网页。后缀可以为.jsp或.php或.asp或.cgi。
ActiveX控件:在静态页面中加入可以运行在浏览器上的程序,是静态的,现在的浏览器基本以不支持。
applet:“let”词缀表示“小”,applet 表示用 Java 编写的小应用程序(JavaApplet),即静态的,该程序可以包含在 HTML 页面中,与在页面中包含图像的方式大致相同,即<applet></appltet>一对标记。当支持 Java 的浏览器遇到这对标记时,便下载相应的小程序代码在本地运行,已经淘汰,取而代之 JavaFX。
servlet:即 server applet,applet 扩充了网络浏览器的能力,而 servlet 扩充了网络服务器的能力。servlet 的功能在于交互地浏览和修改数据,生成动态 web 内容,其过程为:客户端发送请求到服务器,服务器将请求信息发送到 servlet,servlet 生成相应内容被发送到服务器,服务器将响应发送至客户端。applet 与servlet 均没有 main 函数。(比喻:JSP是服务员,servlet 是看完菜单告知哪个厨师来做饭的前台。)JSP 显示页面和接收用户的信息,而 servlet 主要负责页面和业务层的信息交互。
CGI程序:是运行在网络服务器上的一个程序,作用与 servlet 相似。但已被 servlet 替代,因为 CGI 程序每当客户端发出一个新的请求,便要建立一个新的 CGI 实例,占用了大量的内存资源,用于实际开发很困难。而 servlet 被用户发送的第一个请求激活后,继续运行于后台等待以后的请求,每个请求将生成一个新的线程而不是一个完整的进程,多个客户可以在同一个进程中同时得到服务。
css:即层叠样式表(cascading style sheets)是用于网页排版的标记性语言,能对网页中的排版进行像素级控制,主要用于对网页中的字体、颜色、图像、背景等其他元素进行控制,是对 HTML 的补充。“HTML+CSS”可以实现静态网页。
div+css:div 是 HTML 中的一个标签元素,为布局元素。div 可以理解成一个矩形框,css 控制这个矩形框在什么地方。CSS3 是 CSS 的一个标准,HTML5 是 HTML 的一个标准。
单页面:整个页面就是一个静态的不刷新的 HTML 页面,例如QQ空间中从日志到相册,整个页面并没有刷新,而是中间的主体内容进行局部替换。
图灵机:图灵机可以理解成对人们使用纸笔进行运算的抽象,分为两个步骤,在纸上写或擦出某个符号,下一步动作取决于当前所关注的符号和此时的思维逻辑。
图灵完备:即 Turing Completeness,判断图灵完备的方法就是看该语言能否模拟出图灵机。
2.XML
即可扩展标记语言(Extensible Markup Language),和 html 相比,xml 允许用户对自己的标记语言进行定义。
3.XHTML
即可扩展超文本标记语言,比 HTML 语法更严格
二、前端
1.脚本语言(scripting language)
脚本语言又被称为扩建的语言或者动态语言,通常以文本保存,只有在被调用时才进行解释或编译。
2.JavaScript(js)
是一种脚本语言, 动态类型、弱类型、基于原型的语言,内置支持类型。用于 嵌入 HTML 网页增加动态功能,向 HTML 页面提供交互功能, 亦可写成单独的 js 文件便于结构和行为的分离。最早由 Netscape 公司实现,因与 Sun 公司合作,便取名 JavaScript。微软推出了 JScript,都可以统称兼容 ECMASript。后缀名为.js的文件就是 JavaScript 文件。可用于多平台多操作系统。被大多数浏览器支持。
动态类型:运行期才做类型检查静态类型:编译期进行数据类型检查弱类型:语言运行时会隐式的做数据类型转换强类型:语言运行时确保不会做未授意的类型转换基于原型的语言:如 JavaScript,只有对象没有类,是对象继承对象,而不是类继承类。基于类型的语言:如 Java
特性(动态性):是一种采用事件驱动的脚本语言,不需要服务器的支持,便可直接响应用户的输入。在访问一个页面时,用鼠标上移下移点击都可以通过 JavaScript 对其进行响应。因此早期程序员喜欢通过 JavaScript 减轻服务器的负担,然而不安全,随着服务器的强壮,现在程序员喜欢使用在服务端的脚本来保证安全。有些特殊功能如 ajax 比如依赖 JavaScript 在客户端进行支持。现在 JavaScript 逐渐被用来编写服务器端程序。
3.VBSript(VBS)
basic 语言起初是非结构化语言,后来经过完善成为结构化语言(Visual Basic,即VB),同时VB也是开发环境。
Microsoft Visual C++(简称Visual C++、MSVC、VC++或VC)为微软公司的 C++开发工具。
VBS是微软环境下的轻量级的解释性脚本语言。
4.Ajax
即异步 JavaScript 和 XML(Asynchronous Javascript And XML),是一种能够不刷新整个网页的前提下还能更新部分网页的技术。通过后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。
5.JSON
即 JS 对象标记(JavaScript Object Notation),是一种轻量级数据交换格式,能够代替 XML 的工作,即可以处理前端(JavaScript)和后台(web 服务器端)之间的数据交互。特点是易于人们的读写习惯,易于机器的分析和运行,形式为一个以键值对形式表示的字符串。JSON 跨语言,在移动端(Android、IOS)数据都可以由 JSON 来传输。
6.boostrap
Bootstrap,来自 Twitter,是目前最受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JavaScript的,它在jQuery的基础上进行了更为个性化和人性化的完善,形成一套自己独有的网站风格,并兼容大部分jQuery插件。
7.angular.js和JQuery
AngularJS是为了克服HTML在构建应用上的不足而设计的。AngularJS有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等等。HTML是一门很好的为静态文本展示设计的声明式语言。
jQuery 使用户可以更加方便地处理 HTML(标准通用标记语言下的一个应用)、events、实现动画效果,而且方便地为网站提供AJAX交互。
8.前端编辑器
Webstorm:重量级编辑器,当前段项目配置了各种的 grunt,bower,angular 后你会发现你很需要它。Brackets:适合写 CSS。Dreamweaver:“所见即所得”HBuilder:适合写 H5,相对厚重。Sublime:相当于一个升级版的记事本,有着强大的插件,建议安装两个(packagecontrol和emmet),轻量级编辑器,小巧智能。notepad++:插件多
三、后台
1.JSP(J2EE)
即 Java 服务器页面(JAVA Server Pages),是一种动态网站开发语言,有点类似于 ASP 技术,在传统的 HTML 页面文件(后缀名为*.htm或*.html)中插入 Java 程序段(Scriptlet)和 JSP 标记(tag),从而形成 JSP 文件,后缀名*.jsp。JSP 开发的 web 应用是跨平台的,可以运行在 Linux 或者其他操作系统下。它实现了 HTML 中的 Java 扩展(以<%,%>形式),jsp 与 servlet 一样运行在服务器端,将一个 HTML 文件返回给客户端,因此客户端有浏览器就可以浏览。servlet 是 JSP 的基础,大型的 web 应用开发众需要 servlet 和 JSP 同时配合。JSP 与 servlet 的关系:JSP 是 servlet 的扩展,在 JSP 之前就有 servlet 了。有客户端, web服务器(web server)和应用服务器(application server),客户端发出请求,web 服务器接受 http 请求,如果是 HTML、css 等静态资源则 web 服务器可以自行处理 ,如果遇到动态资源比如 jsp 时便将请求转至应用服务器中,由应用服务器处理。应用服务器也具有处理http 请求的能力,可能没有 web 服务器那么专业, 应用服务器同时也包含 web 容器。在应用服务器中,jsp 转换成 servlet,在 servlet 容器中检索是否已经存在匹配的 servlet 实例,若没有则由 servlet 容器加载并实例化这个 servlet 类的一个实例对象,再有servlet 容器初始化并运行;若 servlet 容器中已存在,则直接运行。
web服务器:代表Nginx、IIS、Apache。 “相当于前台接待”。
应用服务器:代表Bea WebLogic、IBM WebSphere、JBoss、Tomcat。Tomcat是Apache的扩展可以独立于Apache运行。“相当于真正的价值服务者”。
servlet容器:管理 servlet 的生命周期,存在于应用服务器中。Tomcat 既可以看成是 servlet 容器又可以看成是 web 容器,既可以处理静态资源又可以处理动态的 servlet。 故可以使用两个独立的服务器比如 Nginx 和 WebLogic,也可以只用一个 Tomcat。
2.PHP和ruby
php:超文本预处理器(hypertext preprocessor),是一种 基于对象的开源脚本语言,用于 web 后台开发。
ruby: 面向对象的后台脚本语言。基于对象:不提供抽象、重载和继承面向对象:提供抽象、重载和继承
3.NetBeans
一款 用Java 编写的主要用于后台开发的 IDE。
4.Node.js
是一种 JavaScript 的运行环境(runtime),是目前速度最快的 JavaScript 引擎,使 JavaScript 能脱离浏览器运行。对 Chrome V8 引擎进行了封装。使用事件驱动,非阻塞 I/O 模型而得以轻量而高效。
用处:是 JavaScript 运行环境,也就是说能在服务器上跑 JavaScript 代码,让 JavaScript 实现服务器上的开发。一般是 js 程序员在用,属于后端技术。
JavaScript 引擎:是一种专门处理 JavaScript 脚本的虚拟机,一般会符带在浏览器中。
四、ASP、ASP.NET与.NET
ASP:类似于JSP和PHP,是一种后台开发技术。
.NET:是一个 平台,不是语言,包括运行时的环境和开发的环境。可以在 .NET 平台上用不同的语言开发,例如 C#,VB.NET,HTML,F#,VC++.NET。有点类似于 java。JAVA 语言也是 java 平台中的一个语言的名字,C# 同样是 .NET 平台中一个语言的名字, 即 java 跨平台,.NET 跨语言。java 开源,.NET 由微软开发不开源。java 编写完一次后可以再 Linux 上或其它操作系统上运行,.NET 只适用于微软,所以 java 跨平台,.NET 不跨平台。
ASP.NET(又称ASP+):是基于 .NET Framework 的 web 开发 平台。一般前端用 HTML+css,后端用 C#。.NET Framework:是 .NET 开发的软件运行所必需的框架(framework)、运行环境。