《HTTP客户端Wininet精品教程(PowerPoint 48页)》由会员分享,可在线阅读,更多相关《HTTP客户端Wininet精品教程(PowerPoint 48页)(50页珍藏版)》请在金锄头文库上搜索。
1、1、难得糊涂是一种境界,心平如境是一种修养9/4/2022 8:49:05 AM08:49:0504-9月-22。9月-229月-222、顺其自然是一种超脱,威武不屈是一种品格。9/4/2022 8:49 AM9/4/2022 8:49 AM9月-229月-22 08:49:0508:49Sep-2204-Sep-224、富贵不淫是一种情操,常笑就是健康,快乐成就人生。08:49:0508:49:0508:49Sunday,September 4,20225、积极向上的心态,是成功者的最基本要素。9月-229月-2208:49:0508:49:05September 4,20226、人言纷杂,
2、保持自我;工作勤奋,娱乐适度。04 九月 20228:49:05 上午08:49:059月-227、积极的人在每一次忧患中都看到一个机会。九月 228:49 上午9月-2208:49September 4,20228、业余生活要有意义,不要越轨。2022/9/4 8:49:0508:49:0504 September 20229、9/4/2022 8:49:05 AM08:49:0504-9月-22。8:49:05 上午8:49 上午08:49:059月-2210、上帝说爱情需要缘份,两个命中注定相爱的人。9/4/2022 8:49:05 AM08:49:0504-9月-2211、爱已欠费,情
3、已停机,缘分不在服务区。9/4/2022 8:49 AM9/4/2022 8:49 AM9月-229月-22HTTP客户端Wininet精品教程(ppt 48页)2.9 HTTP2.9 HTTP应用应用n n2.9.1 HTTP2.9.1 HTTP应用开发的分类应用开发的分类n nHTTPHTTPHTTPHTTP客户客户客户客户n nHTTPHTTPHTTPHTTP服务器服务器服务器服务器n n 服务器端应用程序服务器端应用程序服务器端应用程序服务器端应用程序n n2.9.2 HTTP2.9.2 HTTP应用开发方法应用开发方法n n 使用使用使用使用SocketSocketSocketSoc
4、ket编程接口编程接口编程接口编程接口n n 使用动态链接库或使用动态链接库或使用动态链接库或使用动态链接库或ActiveXActiveXActiveXActiveX控件控件控件控件 本讲内容本讲内容n n2.9.3 使用控件开发使用控件开发HTTP客户端应用客户端应用n nInternet TransferInternet Transfer控件属性控件属性n nInternet TransferInternet Transfer控件方法控件方法n nInternet TransferInternet Transfer控件事件控件事件n n2.9.4 使用使用WinInet开发开发HTTP客户
5、端应用客户端应用n n 示例示例n n 主要实现步骤主要实现步骤2.9.1 HTTP2.9.1 HTTP应用开发的分类应用开发的分类n n1.1 HTTP1.1 HTTP客户程序客户程序客户程序客户程序n n HTTP HTTP协议作为协议作为WebWeb的技术组件之一为的技术组件之一为WebWeb的成功奠定了重要的基的成功奠定了重要的基础它提供了客户和服务器进行交互的机制并对交互的语法和语义础它提供了客户和服务器进行交互的机制并对交互的语法和语义制定了统一的标准制定了统一的标准n n Web Web上很多应用的开发都与上很多应用的开发都与HTTPHTTP协议有着关联或者围绕着协议有着关联或者
6、围绕着HTTPHTTP协议展开或者需要协议展开或者需要HTTPHTTP协议的支持协议的支持n n 可以说可以说HTTPHTTP协议贯穿了协议贯穿了WebWeb上多个层次的应用开发如图所示上多个层次的应用开发如图所示 n n 从该图中可以看出从该图中可以看出HTTPHTTP应用可以分为三种类型应用可以分为三种类型HTTPHTTP客户程序客户程序2.9.1 HTTP2.9.1 HTTP应用开发的分类应用开发的分类(续续)n n HTTP HTTP客户程序客户程序n n HTTP HTTP客户程序可以看作是一种用户代理客户程序可以看作是一种用户代理agent,agent,它的作它的作用是代表用户和用
7、是代表用户和WebWeb服务器进行交互服务器进行交互,以实现下载文档提以实现下载文档提交信息等目的。交信息等目的。n n 一些典型的一些典型的HTTPHTTP客户程序包括客户程序包括n n Web Web浏览器:其用途主要是供用户浏览浏览器:其用途主要是供用户浏览WebWeb服务器上的服务器上的HTMLHTML文档。例如文档。例如Netscape Navigator Microsoft IENetscape Navigator Microsoft IE等等n n Web Web文档下载工具:其用途主要是采用断点续传多线程等手文档下载工具:其用途主要是采用断点续传多线程等手段帮助用户快速地从段帮
8、助用户快速地从WebWeb服务器上下载资源。例如服务器上下载资源。例如NetAntsNet NetAntsNet VampireVampire等等n n Web Robot Web Robot:其用途主要是出于信息检索等目的而对其用途主要是出于信息检索等目的而对WebWeb遍历,遍历,即从某个即从某个URLURL开始沿着开始沿着WebWeb上的超链采用深度优先或广度优先上的超链采用深度优先或广度优先的方法来下载所有的的方法来下载所有的WebWeb页面。例如页面。例如AltavistaAltavista等搜索引擎中等搜索引擎中均使均使用了这种程序用了这种程序 2.9.1 HTTP2.9.1 HT
9、TP应用开发的分类应用开发的分类(续续)n n HTTP HTTP客户程序的基本功能客户程序的基本功能n n 虽然上述各个虽然上述各个HTTPHTTP客户程序的作用和实现方法各不客户程序的作用和实现方法各不相同,但至少都具备以下两项基本功能:相同,但至少都具备以下两项基本功能:n n 与用户的交互与用户的交互n n-提供人机交互的手段可视化界面或者命令行方式供用户来表达其提供人机交互的手段可视化界面或者命令行方式供用户来表达其要求,同时将执行的结果展现给用户。要求,同时将执行的结果展现给用户。n n-对于最终用户而言,要求他们掌握对于最终用户而言,要求他们掌握HTTPHTTP中的各种消息的语法
10、和中的各种消息的语法和语义是不现实的,因此人机交互要尽可能地简单直观。例如在语义是不现实的,因此人机交互要尽可能地简单直观。例如在WebWeb浏览器中,用户仅给出要浏览的浏览器中,用户仅给出要浏览的WebWeb页面的地址就可以看到该页面的地址就可以看到该页面,至于使用页面,至于使用HTTPHTTP协议来实现这一目的细节对用户是透明的,协议来实现这一目的细节对用户是透明的,这些工作应该由这些工作应该由HTTPHTTP客户程序代替用户完成。客户程序代替用户完成。2.9.1 HTTP2.9.1 HTTP应用开发的分类应用开发的分类(续续)n n 与服务器的交互与服务器的交互n n-根据用户提出的要求
11、按照根据用户提出的要求按照HTTPHTTP协议规范和服务器进行交互,以协议规范和服务器进行交互,以完成用户的要求完成用户的要求n n-处理如何和服务器建立连接,使用何种语法格式来发送请求消息、处理如何和服务器建立连接,使用何种语法格式来发送请求消息、如何解释服务器的响应消息等问题。这一切都要遵循如何解释服务器的响应消息等问题。这一切都要遵循HTTPHTTP协议中协议中给出的规定给出的规定n n可以看出,一个可以看出,一个HTTPHTTP客户程序实际上是客户程序实际上是HTTPHTTP协议内容的部分实现。协议内容的部分实现。因此要能够开发因此要能够开发HTTPHTTP客户程序就应该透彻地理解客户
12、程序就应该透彻地理解HTTPHTTP协议中给出的协议中给出的客户和服务器的交互机制,正确地掌握各种消息的语法和语义规范客户和服务器的交互机制,正确地掌握各种消息的语法和语义规范n n需要说明的是除了要实现上述基本功能以外需要说明的是除了要实现上述基本功能以外HTTPHTTP客户程序可能还要客户程序可能还要具备一些与具备一些与HTTPHTTP协议本身无关的功能例如一个协议本身无关的功能例如一个WebWeb浏览器浏览器n n除了能够根据用户的要求将指定的除了能够根据用户的要求将指定的WebWeb页面下载下来,还要能够按照页面下载下来,还要能够按照HTMLHTML规范对该页面进行解析,并在可视化的界
13、面上将其展现出来规范对该页面进行解析,并在可视化的界面上将其展现出来2.9.1 HTTP2.9.1 HTTP应用开发的分类应用开发的分类(续续)n n下面我们以Web浏览器为例对HTTP客户程序的内部结构进行粗略的分析2.9.1 HTTP2.9.1 HTTP应用开发的分类应用开发的分类(续续)n n该该WebWeb浏览器由以下几个部分组成:浏览器由以下几个部分组成:n n 用户接口:接收用户的输入,并将服务器返回的响应展示给用户。用户接口:接收用户的输入,并将服务器返回的响应展示给用户。n n 用户输入解析器:对用户输入进行解析,并将结果传送给控制器。用户输入解析器:对用户输入进行解析,并将结
14、果传送给控制器。n n 控制部分:是控制部分:是WebWeb浏览器的核心部分,负责协调各个部件的运作。浏览器的核心部分,负责协调各个部件的运作。n n HTTP HTTP客户:如果用户的输入是要求访问客户:如果用户的输入是要求访问HTTPHTTP服务器,那么就将其以服务器,那么就将其以HTTPHTTP请求消息的形式提交给服务器,并接收和解析服务器的响应。请求消息的形式提交给服务器,并接收和解析服务器的响应。n n 其它客户用户:可能还会访问其它客户用户:可能还会访问InternetInternet上的上的FTPFTP等服务,因此需要有基等服务,因此需要有基于相应协议的客户部分,例如于相应协议的
15、客户部分,例如FTPFTP客户。客户。n n HTML HTML解析器:如果服务器返回的消息中包含解析器:如果服务器返回的消息中包含HTMLHTML文件,那么对其文件,那么对其按照按照HTMLHTML语法进行解析。语法进行解析。n n 其它解析器:如果其它解析器:如果HTMLHTML文件中包含脚本语言等成分,例如文件中包含脚本语言等成分,例如VBScriptVBScript,那么对其按照相应的规范进行解析,在后面的章节中我们将对那么对其按照相应的规范进行解析,在后面的章节中我们将对VBScriptVBScript进行详细讨论。进行详细讨论。n n 格式化显示:将解析结果输出到可视化界面上供用户
16、浏览。格式化显示:将解析结果输出到可视化界面上供用户浏览。2.9.1 HTTP2.9.1 HTTP应用开发的分类应用开发的分类(续续)n n1.2 HTTP1.2 HTTP服务器程序服务器程序服务器程序服务器程序n n HTTP HTTP服务器服务器n n HTTP HTTP服务器程序的作用是为用户提供服务。例如返回用户想浏览的服务器程序的作用是为用户提供服务。例如返回用户想浏览的文档等,为了实现这一目标,文档等,为了实现这一目标,HTTPHTTP服务器程序必须按照服务器程序必须按照HTTPHTTP协议规协议规范和客户进行交互。范和客户进行交互。n n 如何和客户建立连接如何和客户建立连接n n 如何解释客户的请求消息如何解释客户的请求消息n n 如何按照用户的要求执行相应的处理如何按照用户的要求执行相应的处理n n 使用何种语法格式来将处理结果作为响应消息返回给客户使用何种语法格式来将处理结果作为响应消息返回给客户n n 一个一个HTTPHTTP服务器程序实际上也是服务器程序实际上也是HTTPHTTP协议内容的部分实现,因此协议内容的部分实现,因此n n要能够开发要能够开发HTTPH