动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C/C++教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ C/C++教程 ]的信息

本月文章推荐
.C++中数组和指针类型的关系.
.在CB中使用ActiveX控件显示Flash.
..
.用C++产生QL*Loader各类文件.
.VC中借助DirectDraw实现水波的模.
.Windows Sockets:使用 CAsyncSo.
.More Effective C++:不使用多态.
.我的最爱.
.数据结构算法集---C++语言实现.
.数据结构学习(C++)之排序.
.C++箴言:谨慎使用模板元编程.
.C\C++建立IPC连接之后续操作.
.数据结构学习C++——图(1&2&3&4.
.汇编语言的高级语言特性.
.如何获得CPU使用率.
.如何简化临时内存的分配与释放.
.C语言编程常见问题解答之常用函数.
.gcc支持在#pragma语句中使用宏替.
.揭开C/C++中数组形参的迷雾.
.网络上的数据报侦听.

Web应用程序开发技术

发表日期:2008-3-8 |



  ----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应用程序作出响应。通过这种方式,我们可将各种服务功能放置在网页文件中,用不同
上一篇:用游戏串起程序员的基本功之二 人气:280
下一篇:在客户端重新创建对象 人气:371
浏览全部C/C++的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-8-20 25175 学生成绩管理查询系统 v2.
2008-8-20 OA企业智能办公自动化系统边缘特
2008-8-20 欣颐免费时尚发廊美发厅全站程序
2008-8-19 久溜溜电影系统(免维护+小偷) v5
2008-8-19 晴天免费电影系统完整版(带迅雷采
2008-8-19 Twinklous File Manager v1.5
2008-8-19 千米旅游网站管理系统 v2.0
2008-8-19 资阳人才网 v2.0
2008-8-19 全球商务B2B网站系统 v1.0 asp版
2008-8-16 iLaba Player(小喇叭播放器) v2.
2008-8-16 DoubleClickFix 鼠标双击修正工具
2008-8-16 CrystalCPUID 4.15.2.451
2008-8-16 VeryCD 电驴(easyMule) 1.0.4 Bu
2008-8-16 uTorrent 1.8 Build 11813 - Sta
2008-8-16 比特精灵(BitSpirit) v3.3.2.287
2008-8-16 StayInTune音叉 v1.0 破解版
2008-8-16 iChing《周易》汉化补丁 v1.0
2008-8-16 Starmap星空图v1.0汉化破解版
  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵