Web应用程序开发技术

雪花飘飞了

雪花飘飞了

2016-02-19 12:40

今天图老师小编给大家展示的是Web应用程序开发技术,精心挑选的内容希望大家多多支持、多多分享,喜欢就赶紧get哦!

  ----Internet无疑是一种重要的信息传播媒体,随着其迅猛发展,将会有越来越多的企业、商团、政府机关、学校、科研机构需要在Internet上建立自己的网点。建设一个网点,硬件上需要专用服务器、集线器、路由器,租用数据通信用的专线,软件上需要安装网络操作系统和Internet服务器(www、FTP和gopher服务器),更为重要的是,需要编写大量的Internet服务器应用程序。这种应用程序接收Internet服务器传送过来的用户请求,从内部数据库检索出用户需要的数据,再将数据传送给用户。目前在Internet上广泛应用的是www系统,这种系统用Html文件格式(即通常所说的网页)传播信息,用统一资源定位符(URL)连接世界各地计算机上的信息资源,按照HTTP协议在浏览器和www服务器之间通信。www服务器又称为web服务器,相应的服务器应用程序称为web应用程序。在Windows操作系统下,web应用程序可分为两种类型:CGI(CommonGateInterface)应用程序和ISAPI(NSAPI)应用程序。这两种应用程序的功能是一样的,都是接收web服务器传送过来的用户请求,作出响应,将用户需要的数据以网页或其它形式传送给用户。它们的区别在于,前者用标准输入输出或文件在web服务器和web应用程序之间传送信息,后者则是一种动态联接库程序(DLL),其数据可被web服务器直接访问。ISAPI是指Microsoft的Internet信息服务器(IIS)编程接口,而NSAPI则指Netscape的Internet服务器编程接口。本文将以Borland公司的C++Builder编写ISAPI(NSAPI)程序的方法为例,介绍开发web应用程序的原理和方法。这种应用程序在32位的Windows操作系统下运行,假如网点使用WindowsNT,则本身就有IIS(包括www、ftp、gopher三个服务器),开发、运行都很方便。
  
  HTTP协议和HTML规范
  ----众所周知,Internet的底层通信协议是TCP/IP协议,在Internet上传送的数据被划分为一个个的IP数据报,每一个IP数据报都指明信源和信宿的地址,沿途的网关按照信宿地址决定数据报的去向。而TCP协议则为通信的双方建立一条虚电路,保证所有的数据报都能按正确的次序到达目的地。TCP/IP只是实现计算机之间的二进制数据传输,对这些数据如何解释,则是上层协议的事情。开发web应用程序的程序员并不需要过问TCP/IP的工作,我们所必须了解的是其上层协议HTTP。
  
  ----HTTP是一个应用层协议,目前广泛应用于web浏览器和web服务器之间的通信。HTTP用字符串进行通信,所传送的信息称为HTTP消息(HTTP-Message)。HTTP消息有两种类型:浏览器传送给服务器的请求消息和服务器传送给浏览器的响应消息,其基本格式如下:请求消息:
  
  MethodRequest-URIHTTP-Version;请求行
  general-header;通用消息头
  request-header;请求消息头
  entity-header;实体消息头
  ;空行
  message-body;消息实体
  其中三种消息头的次序是任意的。
  响应消息:
  HTTP-VersionStatus-CodeReason-Phrase;状态行
  general-header;通用消息头
  response-header;响应消息头
  entity-header;实体消息头
  ;空行
  message-body;消息实体
  
  ----其中三种消息头的次序同样是任意的。
  
  ----对于请求消息,请求行是必不可少的,其余部分是可选的。请求行中的Method(方法)指定具体的请求操作,这些方法是HTTP指定的,常用的方法有:
  
  ----GET浏览器要求从服务器处获得信息。
  
  ----HEAD作用等同于GET但是服务器在响应时不必返回消息实体。通常用来
  
  ----测试信息资源是否可用,是否已更改。
  
  ----POST浏览器向服务器传送信息。
  
  ----PUT浏览器要求将消息中所包含的消息实体写入服务器。
  
  ----请求行中的Request-URI是信息资源的定位符,类似于我们通常所说的"网址",但网址通常是指某个网点IP地址对应的域名,而URI则要进一步指明网址下的路径、网页文件名、web应用程序名等信息资源。请求行中的HTTP-Version则指明浏览器所能执行的HTTP协议版本号,多数是1.0或1.1。例如,当我们要求访问某个abc公司网址www.abc.com上的网页xyz.htm时,浏览器将会发出如下请求行:
  
  
  ----GEThttp://www.abc.com/xyz.htmHTTP/1.0
  
  ----请求消息中的通用消息头、请求消息头和实体消息头的一般格式是
  
  ----field-name:field-value
  
  ----也就是说,消息头由多个字段(field)组成,每个字段一行(HTTP用回车换行符CRLF作为每一行的结束标志),每行由字段名和字段值组成,彼此用冒号隔开。HTTP对于每一个字段的意义及其对应的值都有具体的规定。可供使用的字段很多,但并不是每次发送请求消息都要使用所有的字段,而是根据需要使用其中的若干个。以下是一个请求消息的具体例子:
  
  GET/default.htmHTTP/1.0
  Host:http://default
  Accept:text/html
  User-Agent:Mozilla/2.0
  (compatible;NEWTActiveX;Win32)
  对于请求消息,常用的字段有:
  通用消息头:Cache-Control、Connection、Date
  请求消息头:Accept、Authorization、
  From、Host、If-Modified-Since、
  Referer、User-Agent
  实体消息头:Content-Encoding、
  Content-Length、Content-Type、EXPires
  
  ----限于篇幅,本文无法具体解释每一个字段的含义,有爱好的读者可参阅参考文献[1]。
  
  ----请求消息中的消息实体(Message-Body)是浏览器要传送给服务器的数据。使用GET方法的请求消息一般不会有消息实体,而POST和PUT方法则一般会有消息实体,其具体内容可以是任何数据,由实体消息头中的字段指明其编码方式、类型和长度。
  
  ----对于响应消息,开头的状态行是必不可少的,其中开头的HTTP版本号(HTTP-Version)指明服务器所执行的HTTP协议是哪个版本的,然后是由3位数字组成的状态码(Status-Code),说明对浏览器请求消息的响应状态,最后的原因短语(Reason-Phrase)是对状态码的简短文字说明。
  
  ----状态码的第一位数字定义响应状态的类型,可能的数值及其含义如下:
  
  1xx:已接收到请求消息,正在处理中。
  
  2xx:对接收到的请求消息已成功地作出响应。
  
  3xx:必须采取进一步的行动才能完成请求。例如,请求消息中的URI对应多个资源,或请求消息要访问的资源的URI已改变,或必须通过代理服务器才能访问等。
  
  4xx:浏览器错误,请求消息语法错误或请求无法执行。
  
  5xx:服务器错误,服务器无法执行一个有效的请求。响应消息的状态行之后是与请求消息类似的、由各种字段名和字段值组成的消息头,对于响应消息,常用的字段有:
  ----通用消息头:Date
  
  ----响应消息头:Server、www-Authenticate、Location
  
  ----实体消息头:Allow、Content-Encoding、Content-Length、Content-Type、
  
  ----Expires、Last-Modified
  
  ----响应消息最后的实体(Message-Body)部分是服务器按照浏览器的请求传送回来的数据,最常见的情况就是一个网页文件的内容。以下是一个响应消息的具体例子,最后一行是消息实体:
  
  HTTP/1.0200OK
  Server:Microsoft-PWS-95/2.0
  Date:Thu,15Oct199807:40:14GMT
  Content-Type:text/html
  Content-Length:21
  Content:
  
  Hi,gladtomeetyou!
  
  ----通常,上述消息通信过程是由用户浏览某个网页而发起的。网页是一个按照HTML规范编写的纯文本文件,其基本框架结构如下:
  
  HTML
  HEAD
  T99vLE网页标题/T99vLE
  /HEAD
  BODY
  ......(网页的具体内容)
  /BODY
  /HTML
  
  ----关于HTML规范的具体内容,可参见参考文献[2]。其实,我们完全可以通过实验方法来把握这个规范。利用一些网页编辑软件(例如Microsoft的FrontPage)可以直观地设计页面,然后观察所生成的HTML文本,便可以轻而易举地学会编写HTML文件。
  
  ----在每个网点上都有一个默认网页,当用户在浏览器上指定一个网点的网址时,浏览器向该网址上的web服务器发出一个请求消息,其中的URI即为该网点web服务器的根目录。web服务器接收到这个消息后,认为默认网页就是用户需要的信息资源并将之传送给浏览器。网页上包含各种链接,其基本格式是:
  
  ----Ahref="URI"说明文字/A
  
  
  ----当用户点击这些链接时,就有可能启动浏览器与服务器的再次通信。链接中的URI可能是同一个网页中的某个节点,或者是另一个网点的网址,或者是网点上的某一个网页或其它已存放在网点服务器上的文件。这些都由web服务器自动作出响应,不需要web应用程序的介入。对于编写web应用程序的程序员,所关心的是一种称为"查询"(Query)的链接,例如,在网页中设计如下链接:
  
  ----Ahref=http://www.Tside.com/Scripts/handll.dll?MyQuery查询服务器/A当用户点击这个链接时,浏览器将会向服务器发出类似于如下的请求消息
  
  ----GET/Scripts/handll.dll?MyQueryHTTP/1.0
  
  ----Host:http://www.Tside.com网点www.Tside.com上的web服务器接收到这样的请求消息后,将会向web服务器根目录下的子目录Scripts下的web应用程序handll.dll传送查询字串"MyQuery",由web应用程序作出响应。通过这种方式,我们可将各种服务功能放置在网页文件中,用不同
展开更多 50%)
分享

猜你喜欢

Web应用程序开发技术

编程语言 网络编程
Web应用程序开发技术

如何使用Ajax技术开发Web应用程序(2)

Web开发
如何使用Ajax技术开发Web应用程序(2)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

如何使用Ajax技术开发Web应用程序(3)

Web开发
如何使用Ajax技术开发Web应用程序(3)

如何使用Ajax技术开发Web应用程序(1)

Web开发
如何使用Ajax技术开发Web应用程序(1)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

用JBuilderX开发WEB应用程序

编程语言 网络编程
用JBuilderX开发WEB应用程序

如何使用Ajax技术开发Web应用程序(3)

Web开发
如何使用Ajax技术开发Web应用程序(3)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

全面解读Shift键在Word中的使用技巧

全面解读Shift键在Word中的使用技巧

Mysql 4.1 Windows 下升级问题

Mysql 4.1 Windows 下升级问题
下拉加载更多内容 ↓