[Java Web] 1、Web开发初识——一大堆历史和技术名词
LZ前言
LZ最近发现网络真是个神奇的东西,以前做的好玩的只能自娱自乐(或者说顾影自怜),现在只要发一个帖子,写一个博客,很快能引来一大群小伙伴的围观(有时候还能遇见几个大牛给个战略性的指导)...LZ本来是搞硬件的:从CPU的制造(VHDL)、数电、模电再到计算机组成原理、汇编、接口技术,底层的东西算是走马观花地懂了点皮毛,正好大一的时候又了解一点计算机的编程知识(当时第一次用C++Build写出来个Hollo World那个欣喜呀~后来又从win32学到MFC再到C#,嘿嘿,基本上还是皮毛吧~没做过太大的东西,就写几个老掉牙的小游戏~),所以有空就做一些软硬结合的小制作(嘿嘿,纯属没女朋友的宅一族的自娱自乐)...虽然准大三啦,还是改不了贪玩的心,最近看实验室里的学长、平时的小伙伴、大牛们玩web很是高大上,于是,嘿嘿....为了一个漂亮的博客的主页,为了能在不懂的小伙伴前面吹一下牛皮,更为了多学点新东西....从今天开始涉足Web!!!啊~WEB一个神奇的圈子,我来了~
PS1:下面是俺从网上找了一些小资料整合一下的,请大神勿喷>_<",但是还是很高兴大家给些好的建议和知道滴~
PS2:一般初学者(像俺)一听到关于Web的一大堆技术名词就会吓得望而却步,所以第一篇,俺从网上找了一些关于Web的介绍的资料,整合删减一下,给咱们初学者一个大致的了解吧~(大神可以直接跳过啦~)
1、Web起源:
Web是World Wide Web的简称,中文称之为万维网,是用于发布、浏览、查询信息的网络信息服务系统,由许多遍布在不同地域内的Web服务器有机地组成。
Web的不断完善都是基于各种Web技术的不断发展,Web的应用架构是由英国人Tim Berners-Lee在1989年提出的,而它的前身是1980年Tim Berners-Lee负责的Enquire(Enquire Within Upon Everything的简称)项目。1990年11月第一个Web服务器nxoc01.cern.ch开始运行,由Tim Berners-Lee编写的图形化Web浏览器第一次出现在人们面前。1991年,CERN(European Particle Physics Laboratory)正式发布了Web技术标准。目前,与Web相关的各种技术标准都由著名的W3C组织(World Wide Web Consortium)管理和维护。(>_<"历史神马的有点烦呀~)
2、Web技术精妙之处:
用超文本技术(HTML)实现信息与信息的连接;用统一资源定位技术(URL)实现全球信息的精确定位;用新的应用层协议(HTTP)实现分布式的信息共享。(这句话精辟!)
3、Web技术涉及的技术:
Web是一种典型的分布式应用架构。Web应用中的每一次信息交换都要涉及到客户端和服务端两个层面。因此,Web开发技术大体上也可以被分为客户端技术和服务端技术两大类。
3.1、客户端技术:
3.1.1、HTML语言:
Web客户端的主要任务是展现信息内容,HTML语言是信息展现的最有效载体之一。它是一种超文本语言。(今后我们还要仔细学习~)
3.1.2、从静态信息到动态信息:
最初的HTML语言只能在浏览器中展现静态的文本或图像信息,随后由静态技术向动态技术逐步转变。Web出现后,GIF第一次为HTML页面引入了动感元素。1995年Java语言的问世带来了更大的变革。Java语言天生就具备的平台无关的特点,让人们一下子找到了在浏览器中开发动态应用的捷径。CSS和DHTML技术真正让HTML页面又酷又炫、动感无限起来。1997年,Microsoft发布了IE 4.0,并将动态HTML标记、CSS和动态对象模型发展成了一套完整、实用、高效的客户端开发技术体系,Microsoft称其为DHTML。同样是实现HTML页面的动态效果,DHTML技术无需启动Java虚拟机或其他脚本环境,可以在浏览器的支持下,获得更好的展现效果和更高的执行效率。 为了在HTML页面中实现音频、视频等更为复杂的多媒体应用,又引入了对QuickTime插件的支持,插件这种开发方式也迅速风靡了浏览器的世界。还有90年代中期刚刚问世的COM和ActiveX也十分流行。Real player插件、Microsoft自己的媒体播放插件Media Player也被预装到了各种Windows版本之中。随后Flash插件的横空出世。(>_<"哈哈,有点晕了吧!)
3.2、服务端技术:
3.2.1、Web服务端发展历史:
与客户端技术从静态向动态的演进过程类似,Web服务端的开发技术也是由静态向动态逐渐发展、完善起来的。
- 最早的Web服务器简单地响应浏览器发来的HTTP请求,并将存储在服务器上的HTML文件返回给浏览器。
- 第一种真正使服务器能根据运行时的具体情况,动态生成HTML页面的技术是大名鼎鼎的CGI技术。CGI技术允许服务端的应用程序根据客户端的请求,动态生成HTML页面,这使客户端和服务端的动态信息交换成为了可能。 早期的CGI程序大多是编译后的可执行程序,其编程语言可以是C、C++、Pascal等任何通用的程序设计语言。为了简化CGI程序的修改、编译和发布过程,人们开始探寻用脚本语言实现CGI应用的可行方式。
- 1994年,发明了专用于Web服务端编程的PHP语言。PHP语言将HTML代码和PHP指令合成为完整的服务端动态页面,可以用一种更加简便、快捷的方式实现动态Web功能。
- 1996年,Microsoft在其Web服务器IIS 3.0中引入了ASP技术。ASP使用的脚本语言是我们熟悉的VB Script和JavaScript。
- 1998年,JSP技术诞生。
- 随后,XML语言及相关技术又成为主流。XML语言对信息的格式和表达方法做了最大程度的规范,应用软件可以按照统一的方式处理所有XML信息。这样一来,信息在整个Web世界里的共享和交换就有了技术上的保障。HTML语言关心的是信息的表现形式,而XML语言关心的是信息本身的格式和数据内容。
3.3、Web技术发展三个阶段:
Web技术的发展主要分为三个阶段,大体总结为静态技术阶段、动态技术阶段和Web2.0新时期。
PS:我们所谓的动、静态是根据Web网页所采用的技术来划分的,动态网页不是指拥有动态效果的网页,它是指采用动态网站技术生成的网页。
3.3.1、Web技术发展的第一阶段——静态技术阶段
本阶段的Web主要是静态的Web页面。在这个阶段,HTML语言就是Web向用户展示信息的最有效的载体。HTML的全称是超文本标注语言(Hyper Text Markup Language),它通过提供超文本格式的信息,在客户端的用户机上显示出完整的页面。Web服务器使用HTTP(Hyper Text Transport Protocol)超文本传输协议将HTML文档从Web服务器传输到用户的Web浏览器上。在本阶段,由于受HTML语言和旧式浏览器的制约,Web页面只包含了静态的文本和图像信息,限制了资源共享,这个现象越来越不能满足人们对信息多样性和及时性的要求。而这一阶段的Web服务器基本上只是一个HTTP的服务器,它负责接收客户端浏览器的访问请求,建立连接,响应用户的请求,查找所需的静态的Web页面,再返回到客户端。
[图为:静态Web处理流程]
3.3.2、Web技术发展的第二阶段——动态技术阶段
在Web出现的同时,能存储、展现二维动画的GIF图像格式也已发展成熟,为HTML引入动态元素提供了条件。此后,为了能更好地克服静态页面的不足,人们将传统单机环境下的编程技术引入互联网络与Web技术相结合,从而形成新的网络编程技术。1995年Java语言的问世给Web的发展带来更大的变革,它为人们提供了一条在浏览器中开发应用的捷径。1996年,著名的Netscape浏览器2.0版本和Microsoft的IE 3.0增加了对JavaApplets和javascript的支持。javascript语音是一种一脚本方式运行的,简化的Java语言。Web世界里从此出现了脚本技术。Microsoft公司于1996年为IE3.0设计出了与javascript相抗衡的脚本语言——vbscript脚本语言。在Windows98及其后的Windows操作系统中,WSH(Windows script Host)技术将原本只能在浏览器中运行的javascript、vbscript变成了可以在WIN32环境下使用的通用脚本语言。1996年,Netscape 2.0成功引入了对QuickTime插件的支持,从此,实现了在HTML页面下音频、视频等更为复杂的多媒体应用。同年,IE 3.0正式支持在HTML页面中插入ActiveX控件的功能。从此,各式各样由不同公司所开发的各种插件先后在浏览器上取得了成功。
[图为:植入JVM的WEB浏览器架构中的WEB处理结构!!!-->只是实现动态效果]
PS:我们这里所说的动态页面和静态页面是相对应的,在引入了动态技术生成的网页中,网页URL的后缀不只是.htm、.html、.shtml、.xml等静态网页的常见形式,还可以是以.asp、.jsp、.php、.perl、.cgi等形式为后缀。从网页内容的显示上看,动态网页引入了各项技术,使得网页内容更多样化,引人入胜;从网站的开发管理和维护角度看,动态网页以数据库技术为基础,更利于网站的维护,而动态网页使用了ASP对象,可以实现诸如用户注册、用户登陆、数据管理等的功能,大大提高了网络的利用率,为用户提供更多的方便。
[图为:动态WEB执行图:动态资源请求会交给WEB容器进行拼凑HTML]
3.3.3、Web技术发展的第三阶段——Web2.0新时期
什么是Web2.0?其实,Web2.0并没有一个准确的定义,甚至于它并不是一个具体的事物,它只是人们对于一个阶段的描述。在这一阶段,用户可以自己主导信息的生产和传播,从而打破了原先所固有的单向传输模式。Web2.0并不是一个革命性的改变,而只是应用层面的东西,相对于传统的门户网站,它具备了更好的交互性。Web2.0是以Flickr、43Things.com等网站为代表,以Blog、TAG、SNS、RSS、wiki等社会软件的应用为核心,依据六度分隔、xml、ajax等新理论和技术实现的互联网新一代模式。
从 Web1.0到Web2.0的转变,具体的说,从模式上是从读向写、信息共同创造的一个改变;从基本结构上说,则是由网页向发表/展示工具演变;从工具上,是由互联网浏览器向各类浏览器、rss阅读器等内容发展;运行机制上,则是自“Client Server”向“Web Services”的转变;由此,互联网内容的缔造者也由专业人士向普通用户拓展。说白了,Web2.0的精髓就是以人为本,提升用户使用互联网的体验。
- 从知识生产的角度看,web1.0的任务,是将以前没有放在网上的人类知识,通过贸易的气力,放到网上去。web2.0的任务是,将这些个知识,通过每个用户的浏览求知的气力,协作工作,把知识有机的组织起来,在这个过程中接续将知识深化,并孕育发生新的思惟火花;
- 从内容孕育发生者角度看,web1.0是贸易公司为主体把内容往网上搬,而web2.0则是以用户为主,以简便随意方式,通过blog/podcsting 方式把新内容往网上搬;
- 从交互性看,web1.0是网站对用户为主;web2.0是以p2p为主。
- 从技术上看,web客户端化,工作效率越来越高。比如像jx技术, googlp/gmil里面用得出神入化。
PS:web2.0是以用户为核心的互联网。
4、关键词及附加说明
- 胖客户端\收客户端:胖客户端程序指当一个程序运行时要单独的客户端支持(如:桌面版QQ);瘦客户端操作时只需要在浏览器中直接访问即可(如:访问博客园)
- 静态WEB\动态WEB:本质来说,静态WEB无法进行数据库的操作,动态WEB的最大特点就是具有完备的交互性,根据用户请求显示不同结果。
- C/S和B/S模式:客户端服务器模式和浏览器服务器模式,嘿嘿,这个不做详解,一眼就明白~
- CGI(Common Gateway Interface,公共网关接口):最早出现的实现动态web的操作标准,具体问度娘:链接HERE
- PHP(Hypertext Preprocessor,超文本预处理):跨平台服务器端嵌入式语言,使用Apache服务器,适合个人和小项目:链接HERE
- ASP(Active Server Pages,动态服务页):采用VBS脚本,用于IIS服务器上,个人和小项目:链接HERE
- ASP.NET:微软在ASP上的更新版,受平台限制,适合中型项目开发:链接HERE
- JSP(Java Server Page,Java服务页):代码风格类似ASP,跨平台,多种服务器,适合中大型项目中,前身是Applet:链接HERE
5、后期计划
>_<"感觉有好多东西要学呀!一堆新名词,看得想哭啦~今天也不早啦,明天接着学吧~
6、一些链接:
WEB的度娘解释(挺全滴):http://baike.baidu.com/view/3912.htm?fr=aladdin
HTML教程(不错哦~):http://www.w3school.com.cn/html/index.asp
博主主页(嘻嘻,自打广告):http://www.cnblogs.com/zjutlitao/
PS:上面有哪些说错的地方还望大家指正...新手是从网上找的一些资料整合的,难免有错~
[Java Web] 1、Web开发初识——一大堆历史和技术名词的更多相关文章
- 实战突击: Java Web项目整合开发(PDF)
实战突击: Java Web项目整合开发(PDF)
- atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform
atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform 1. Absoluti 布局(经常使用) 1 2. ...
- 使用Java EE 在eclipse 开发动态的Web工程(Java web项目)
1.使用Java EE 在eclipse 开发动态的Web工程(Java web项目)1)开发开发选项切换到JavaEE2)可以在Windows->show view中找到package exp ...
- Java精选笔记_Tomcat开发Web站点
Tomcat开发Web站点 Web开发的相关知识 B/S架构和C/S架构 C/S架构是Client/Server的简写,也就是客户机/服务器端的交互.常见应用 : QQ. 迅雷. 360. 旺旺等 B ...
- IT兄弟连 Java Web教程 Web开发的相关知识
Web基本概念 Web,是环球信息网的缩写,也称作“WWW.W3”,英文全称为World Wide Web,中文名成为万维网,常简称为Web.Web分为Web客户端和Web服务器程序.Web可以让We ...
- 服务器部署Java Web及微信开发调试
参考摘抄: 阿里云部署Java网站和微信开发调试心得技巧(上):https://www.imooc.com/article/20583 阿里云部署Java网站和微信开发调试心得技巧(下):https: ...
- 编程语言 : Java的动态Web解决方案泛谈
文章概述 最近发现很久前一股脑地学习框架,发觉越发迷糊.知道了框架只是暂时的,重点是基础的技术.该文大篇幅回顾Servlet技术栈和简要的MVC框架. 至于为什么学J2EE,额,大家都用框架,可框架也 ...
- Java Servlet与Web容器之间的关系
自从计算机软件开发进入网络时代,就开始涉及到通讯问题.在客户/服务器(也叫C/S应用)时期,每个软件都有自己的客户端和服务器端软件.并且客户端和服务器端之间的通讯协议差别也很大.后来随着互联网的发展, ...
- 让人一用钟情的VS插件系列之一——Web Essentials(Web开发必备利器)
返回VS插件总目录 本篇目录 初识Web Essentials 看国外大牛如何评价Web Essentials Web Essentials下载与安装 Web Essentials涉及到了哪些内容 初 ...
随机推荐
- {CSDN}{英雄会}{反相互}
思路: 给定一个字符串,求两个不重叠的字串,他们翻转互补.其中一个字符串可以是删掉最多两个字符的原字符串子串. 动态规划,由于可以对子串进行删除操作,我首先想到了LCS问题,但需要枚举所有的长度,这样 ...
- 64 位 Ubuntu 下 android adb 不可用解决方法
解决方案: 安装ia32-libs 在终端执行 sudo apt-get install ia32-libs 其间会提示所依赖的某些包不存在,直接 sudo apt-get 安装即可.
- 为什么V8引擎这么快?
目录(?)[-] 高速引擎的需求 语言本身的问题 JIT编译 JIT Compile 垃圾回收管理 内嵌缓存inline cache 隐藏类 内嵌缓存Inline Cache 机器语言的特性 附录熟悉 ...
- 修改win10打开文件资源管理器
- 更改appstore开发商名字
个人账号,名字要改,google了半天也没找出解决方案,最后发邮件求助水果,发来解决办法. 您好: 感谢您参与 Apple 开发者计划.我是 Daniel , 非常荣幸能就更改 iTunes Conn ...
- hdu 1573 X问题 (非互质的中国剩余定理)
X问题 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- Missing letters
function fearNotLetter(str) { //return str; var arr = str.split(''); var temp = []; var start = str. ...
- Azure IOT (EventHub + Stream Analytics + Table Storage)的使用
最近研究利用Azure的 Event hub ,Stream Analytics和TableStorage来实现IOT的一个方案, 利用Event hub来采集传感器设备数据值,然后输入到Stream ...
- Servlet深层知识
一.ServletContext实现请求转发1.得到请求分发器:RequestDispatcherServletContext.getRequestDispatcher(String path):pa ...
- 在C代码中调用C++接口
一 在C源文件中调用C++封装的接口 例如: 要想在A.c文件中,调用生命在B.h,实现在B.cpp中的接口bool getMAC(char *mac_addr); 其实现方法 B.cpp 如下: / ...