Web 应用程序学习笔记

时间:2022-09-08 21:03:42

缘起

决定投身web开发了,不过,现在有个问题,那就是web是什么?为了搞清楚这个问题,去图书馆借了本《web应用程序 --CGIweb三层系统》,以下是一些笔记。博客的版式不好,PDF地址:http://www.ntu.edu.cn/

正文

万维网(web)是信息的仓库,是可以用来查询,购物,沟通的平台。Web应用就是实现了具体功能的程序。

Web应用的类型:1.网络商店 2.信息服务 3.企业内部系统 娱乐

Web应用的优点:方便,统一界面

缺点:维护成本,web浏览器的限制,分布式处理的优劣

Web的构造

功能决定结构,要理解其结构,首先要明白其功能。Web功能是共享数据,围绕这一点,抽象出请求响应模型。首先,准备数据(HTML),然后,服务器响应请求,传递数据,最后,浏览器接受数据。

动态网页:1.服务器方式,即服务器程序(CGI)动态生成HTML 2.客户端下载,JavaScriptJava AppletFlash

Web分布式系统:web 3层系统(数据库服务器,应用服务器和浏览器)和分布式对象(EJBCORBA

在构建web系统时,要考虑什么内容在何处处理,客户端还是服务器端,还是外部程序。

客户端驱动程序:1.各种插件程序(动画,pdf阅读器等) 2.Java AppletActiveX 3.javascript脚本

服务器驱动程序:SSICGIJava Servlet,服务器脚本(PerlPHPJSPASP

其他技术:数据库协作,Session管理,安全管理,移动终端

开发Web应用对应的问题:

在何处处理(服务器还是客户端)速度是互联网的生命(处理速度,更新速度,网络速度),可扩展性

Web-共享信息系统,HTTPHTML

HTTP request response,状态码,HTTP的特征(容易使用)和问题(无状态和安全性)

无状态--Session管理,安全性--SSL

HTTP客户机:web浏览器,wgetRobot程序(Sipder或者爬虫程序)

HTTP客户机程序可以使用C++/Java,可视化环境(VBDelphi),PerlRubyPython

Web程序运行的环境:LinuxFreeBSDApache

HTTP的扩充协议-WebDAVhttp://www.webdav,org

互联网与TCP/IP

Internet(最大的网络)和 internet(将计算机网络连接起来网络)。

互联网的特征:1.自律分散型的网络 2.使用TCP/IP标准协议 3.互联网必须存在服务器 4.ISP/ICP

LANWAN:拓扑结构,主干线,公众网,路由选择

Web 应用的链路

终端的类型,线路的速度,计量式付费还是固定费用

连接方式:可变IP地址,拨号连接

连接方法:模拟,ADSL,光纤

TCP/IP的层次:链路层(网络接口层),网络层(InternetIPICMPIGMP),传输层(TCPUDP),应用层(HTTP-web,TELNET-远程终端协议,[SMTP,POP,IMAP]-电子邮件协议,NNTP-配置网络新闻,LDAP-目录服务,DHCP-动态主机构成协议)

端口号:可以在同一IP上运行多种不同的服务。一些well-known的端口:FTP20-传送数据,21-控制),TELNET23),SMTP25),HTTP80),POP3110

虚拟域(Virtual Domain)可以在同一台服务器上使用多个域名。

DDNS(动态域名系统):当DNS数据库内容发生变更时,可立即获取通知的DNSDDNS

DNS服务询问时,可以使用的协议如下:ARPRARPBOOTPDHCPRIPDNS

数据库:文件数据库,面向对象数据库(OODBMS-将数据类型和处理的内容作为一套对象,ORDMS-可以存储对象数据的RDBMS

SQLDMLDDL

数据库与接口:web程序访问数据 的方式,ODBCJDBC、独立的API(利用数据库和OS的特定API

XML格式的数据库:1.输入输出XML格式数据的数据库 2.可以存储XML数据的数据库

数据库服务器的选择:规模与功能,成本,与web的协同工作的能力

免费的RDBMS:PostgreSQL(面向微机的高性能数据库服务器),MySQL(简单方便的数据库服务器)

数据仓库(warehouse:可用于数据挖掘的信息积聚地。在不能看到顾客的电子商务中,数据仓库就是电子商务积累的经验。对其数据进行多元的解析和分析的处理称为OLAPOn-Line Analytical Processing,现在流行的叫法为数据挖掘)

数据库与全文检索,google公司的PageRank算法。

面向对象是将数据和处理方法作为一个整体对待的思维方式。具体的实现方法是:1.将有关联的东西放在一起 2.封装和隐藏 (误区:过度隐藏和过度关联)3.类和继承 4.组件化编程 5.消息和参数(就是方法调用) 6.对象之间的通信(即传递什么消息,参数如何传递,如何存取处理结果,这些统称通信协议) 7.对象处理流程的封装

分布式对象:在多台机器上联合驱动对象的技术,机器之间采用TCP/IP协议进行通信。

Object Management GroupOMGhttp//www.omg.org/

分布式对象技术,为了在不同的平台上利用不同编程语言进行开发的对象能够通信,开发了以RPC为首的各种技术。分布式对象的分类:

1.以windows环境为中心的分布式对象(COM+),OLEDCOMActiveXCOM+,事件驱动

2.CORBA为中心的通用技术,ORBObject Request Broker),IDL(Interface Definition Language)IIOP(Internet Inter-ORB Protocol,在互联网上ORB之间的通信的协议),除了IIOP协议之外,还有RMI over IIOPHORB,利用XML定制SOAPSimple Object Access Protocol

3.Java环境为中心的分布式对象技术,RMI,以及基于RMIEJBEnterprise JavaBeans),RMI/IIOP

Web三层架构:表示层(UI,浏览器或其他利用HTTP的软件),功能层(应用服务器),数据层(数据服务器)

Web 应用程序学习笔记

应用程序服务器可以提高系统的开发效率和性能,具体的作用如下:事务管理,Session管理,安全性管理,多任务管理和负载均衡(clustering & load balancer)。

主流的web应用程序服务器软件,Java对应,EJB尤其。例如:weblogicwebsphereOracle Internet Application ServerTomcatJakarta项目的web服务器)

计算模式从集中(大型机)到分散(二层系统)再到集中(三层系统,应用层)

安全性

加密技术(秘钥和公钥,数字签名,电子水印,认证中心和数字IDPKI-Public Key Infrastructure是认证中心和认证中心发行的数字ID的支柱,一些应用程序有SSLS/MIME

防火墙可以分为包过滤和代理两种。

SSL(Secure Socket Layer)可以为HTTPFTP等数据进行加密传输。SSL通信的前置条件: 1.web服务器和客户端支持SSL 2.被制作成用来加密的秘钥(公钥) IISSSL作为标准支持,Apache使用OpenSSLmod_ssl

SSL的结构:处于TCP/IP之上,应用协议之下。完成如下的操作:1.服务器认证 2.客户机认证 3.通信内容加密

VPN(Virtual Private Network),利用加密技术,将互联网作为私有网络。

HTML

Dynamic HTMLCSSJavaScriptHTMLXML

HTMLCSS(Cascading Style Sheets),构造与表现分离,表现和设计都可以再利用。除了CSS,还有JSS和与XML搭配的XSL

HTML是以SGML(Standard Generalized Markup Language)为基础发展过来的。SGML是标记语言的一种,以tag表示文本的逻辑结构。

DTD(Document Type Definition),XHTML利用XML重定义HTML

HTML主要分为head部分要素(标题,列表之类)和body部分要素(行要素,块要素和表单)

CSS的使用:1.head中定义(嵌入样式表) 2.别的文件定义,需要时读取(外部样式表) 3.在元素的属性中标明(内联样式)

XML

XMLeXtensible Markup Language)以互联网为中心的广泛使用的数据格式,带有可扩展的功能。

XML的用途: 1.作为数据的一种形式 2.作为交换数据的协议 3.作为一种表现手段(将过去的HTML形式的web页面修改为XML形式-XHTML

XML树形结构,序列化和反序列化,数据schema,名称空间,链接信息(XLink,XPointer,XPath),XML中数据与风格分离

基于XML的语言:XHTMLSMILMathMLSVGRDFBML

Schema语言:定义标记和属性(即数据结构)的语言。例如:DTD(形如<! ELEMENT 要素名 内容模式>,XML Schema(与XML语法相同),RELAX

XML中使用的样式表:CSSXSL

XML解析器:MSXML以及Java.NET平台的xml库代码

XML API: Document Object ModelDOM),Simple API fof XMLSAX

XML的主要用途是作为协议,最具代表性的是Simple Object Access Protocol(SOAP)SOAP是互联网相连接的软件之间相互访问的共用框架,使用HTTP作为上层协议,可以交换基于XML的信息。

XHTML:同XML组合使用的下一代HTML

XHTMLDTD申明:Strict, Transitional,Frameset

互联网上提供了各种各样的Web 服务,web服务是以web为中心的,特指使用XML开展电子商务相关的服务的总和,是一种动态协作结构。Web服务的基础是:UDDIUniversal DescriptionDiscovery and Integration,其中的信息都是以WSDL记述的),WSDLWeb Services Description Language,记录商业活动的内容和企业联系方式,以及贸易中使用的协议和数据格式,WSDL是基于XML定义的),SOAPSimple Object Access Protocol,主要通过XML交换数据时调用)

UDDI:http://www.uddi.org

WSDL:http://www.w3.org/TR?wsdl

SOAP:http://www.w3.org/TR/SOAP

服务器端程序

ASPPHPJSPCGI

CGI的启动源表单(最常见),链接,SSI

Cookie:通过web浏览器向用户计算机中写入一些数据的结构。限制:1.文本形式 2.大小限制4kb 3.单个web服务器最多20Cookie 4.web浏览器最多300Cookie。通过HTMLmeta保存/发送Cookie,通过HTTP_COOKIE获取/接受Cookie

格式:name=value;expires=有效期;domain=xxx;path=xxx;

web浏览器为基础的是瘦客户端,利用的对象的机器是胖客户端(使用SOAP

.NETC#+CRL,新web计算构想)与Java

JavaBeansEJB可以通过网络使得不同虚拟机上的对象协同工作

J2EE 面向企业,特别是电子商务

表示层:JSP,Servlet,HTML

商业逻辑:EJB

后台:数据库连接JDBC,目录服务JNDI,分布式事务JTA,分布式消息JMS,分布式对象RMI,邮件连接JavaMail,网络资源管理JMX

后记

图解和漫画很有趣易懂,意外的发现日本作者写图书内容很翔实,图解很亲切易懂。因为自己比较喜欢看漫画,所以觉得这种讲解的方式既有趣又能学习新知识;想想那些教科书,正襟危坐+洗耳恭听,单调而乏味,看过之后,形如手握细沙,兜不住一星半点。浏览过书后,对web有了个大体的了解,不过理解不太深刻。

看过关于人类记忆的短文,大意是通过建立关联记忆概念。抽象和抽象之间关联,抽象和具体之间关联,具体和具体之间的关联。人脑的图形处理能力强于文字处理能力。记忆的基本单元是神经元,神经元之间通过突触建立关联,整个大脑可以看作是一个由神经元和突触构建的巨大网络,而且还是并行的(左右脑独立处理,并通过神经束通信)。孤立的记一点,可以看作将信息存储在单个神经元上,试想在亿万神经元中搜寻那个特定的点应该会很慢;但是,如果将该点和一簇活跃的神经元关联,这样被检索到的概率将大大增加。

参考资料

1.web 应用程序--CGIweb三层系统,西村著,高敬译,科学出版社,2004