170325 第六章应用层 TELNET HTTP

一.远程终端协议 TELNET

1.1 概述

(1)TELNET 是一个简单的远程终端协议,也是因特网的正式标准。

(2)用户用 TELNET 就可在其所在地通过 TCP 连接注册(即登录)到远地的另一个主机上(使用主机名或 IP 地址)。

(3)TELNET 能将用户的击键传到远地主机,同时也能将远地主机的输出通过 TCP 连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上。

1.2 客户服务器方式

(1)现在由于 PC 机的功能越来越强,用户已较少使用 TELNET 了。

(2)TELNET 也使用客户服务器方式。在本地系统运行 TELNET 客户进程,而在远地主机则运行 TELNET 服务器进程。

(3)和 FTP 的情况相似,服务器中的主进程等待新的请求,并产生从属进程来处理每一个连接。

1.3 TELNET 使用 网络虚拟终端 NVT 格式

(1)客户软件把用户的击键和命令转换成 NVT 格式,并送交服务器。

(2)服务器软件把收到的数据和命令,从 NVT 格式转换成远地系统所需的格式。

(3)向用户返回数据时,服务器把远地系统的格式转换为 NVT 格式,本地客户再从 NVT 格式转换到本地系统所需的格式。

  

二.万维网 WWW

2.1 概述

(1)万维网 WWW (World Wide Web)并非某种特殊的计算机网络。

(2)万维网是一个大规模的、联机式的信息储藏所。

(3)万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。

(4)这种访问方式称为“链接”。

 2.2 万维网提供分布式服务

  

2.3 超媒体与超文本

(1)万维网是分布式超媒体(hypermedia)系统,它是超文本(hypertext)系统的扩充。

(2)一个超文本由多个信息源链接成。利用一个链接可使用户找到另一个文档。这些文档可以位于世界上任何一个接在因特网上的超文本系统中。超文本是万维网的基础。

(3)超媒体与超文本的区别是文档内容不同。超文本文档仅包含文本信息,而超媒体文档还包含其他表示方式的信息,如图形、图像、声音、动画,甚至活动视频图像。

2.4 万维网的工作方式

(1)万维网以客户服务器方式工作。

(2)浏览器就是在用户计算机上的万维网客户程序

   万维网文档所驻留的计算机则运行服务器程序

   因此这个计算机也称为万维网服务器

(3)客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。

(4)在一个客户程序主窗口上显示出的万维网文档称为页面(page)。

2.5 万维网必须解决的问题

(1)怎样标志分布在整个因特网上的万维网文档?

  使用统一资源定位符 URL (Uniform Resource Locator)来标志万维网上的各种文档。

使每一个文档在整个因特网的范围内具有唯一的标识符 URL。

(2)用什么协议实现万维网上各种超链的链接?

  在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。

(3)怎样使各种万维网文档都能在因特网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链?

  超文本标记语言 HTML (HyperText Markup Language)使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到因特网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。

(4)怎样使用户能够很方便地找到所需的信息?

  为了在万维网上方便地查找信息,用户可使用各种的搜索工具(即搜索引擎)。

2.6 统一资源定位符 URL

(1)统一资源定位符 URL 是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示。

(2)URL 给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。

(3)URL的格式

  ①只要能够对资源定位,系统就可以对资源进行各种操作,如存取、更新、替换和查找。

  ②URL 相当于一个文件名在网络范围的扩展。因此 URL 是与因特网相连的机器上的任何可访问对象的一个指针。

(4)URL的一般形式

  ①由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。

  ②URL 的一般形式是:

      //<主机>是存放资源的主机在因特网中的域名

      //<端口>有时可省略

    

(5)使用HTTP的URL

  使用HTTP的URL的一般格式

    http://<主机>:<端口>/<路径>

  //冒号和两个斜线是规定的格式

  //<主机>写主机的域名

  //HTTP的默认端口号是80,通常可省略

  //<路径>:若再省略文件的<路径>项,则 URL 就指到因特网上的某个主页(home page)。主页的文件名通常是index.htm、index.html、default.htm、default.html等

三. 超文本传送协议 HTTP

3.1 HTTP 的操作过程

(1)为了使超文本的链接能够高效率地完成,需要用 HTTP 协议来传送一切必须的信息。

(2)从层次的角度看,HTTP 是面向事务的(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。

3.2 万维网的工作过程

用鼠标点击链接后所发生的事件

(1)浏览器分析超链指向页面的 URL。

(2)浏览器向 DNS 请求解析 www.tsinghua.edu.cn 的 IP 地址。

(3)域名系统 DNS 解析出清华大学服务器的 IP 地址。

(4)浏览器与服务器建立 TCP 连接

(5)浏览器发出取文件命令:GET /chn/yxsz/index.htm。

(6)服务器给出响应,把文件 index.htm 发给浏览器。

(7)TCP 连接释放。

(8)浏览器显示“清华大学院系设置”文件 index.htm 中的所有文本。

  

 3.3 HTTP 的主要特点

(1)HTTP 是面向事务的客户服务器协议。

(2)HTTP 1.0 协议是无状态的(stateless)。所谓无状态是指服务器不记录访问者。当一次访问结束后,再访问的时候,服务器也不知道你是否已经访问过了。

(3)HTTP 协议本身也是无连接的,虽然它使用了面向连接的 TCP 向上提供的服务。

3.4 请求一个万维网文档所需的时间

  

3.5 持续连接(persistent connection)

(1)HTTP/1.1 协议使用持续连接。

(2)万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的 HTTP 请求报文和响应报文。

(3)这并不局限于传送同一个页面上链接的文档,而是只要这些文档都在同一个服务器上就行。

(4)目前一些流行的浏览器(例如,IE 6.0)的默认设置就是使用 HTTP/1.1。

(5)持续连接的两种工作方式

  ①非流水线方式:客户在收到前一个响应后才能发出下一个请求。

  ② 流水线方式:客户在收到 HTTP 的响应报文之前就能够接着发送新的请求报文。

3.6 代理服务器(proxy server)

(1)代理服务器(proxy server)又称为万维网高速缓存(Web cache),它代表浏览器发出 HTTP 请求。

(2)万维网高速缓存把最近的一些请求和响应暂存在本地磁盘中。

(3)当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按 URL 的地址再去因特网访问该资源。

3.7 使用高速缓存可减少 访问因特网服务器的时延

  

3.8 使用高速缓存的情况

(1)浏览器访问因特网的服务器时,要先与校园网的高速缓存建立 TCP 连接,并向高速缓存发出 HTTP 请求报文

  

(2)若高速缓存已经存放了所请求的对象,则将此对象放入 HTTP 响应报文中返回给浏览器。

(3)否则,高速缓存就代表发出请求的用户浏览器,与因特网上的源点服务器建立 TCP 连接,并发送 HTTP 请求报文。

  

(4)源点服务器将所请求的对象放在 HTTP 响应报文中返回给校园网的高速缓存。

   

(5)高速缓存收到此对象后,先复制在其本地存储器中(为今后使用),然后再将该对象放在 HTTP 响应报文中,通过已建立的 TCP 连接,返回给请求该对象的浏览器。

  

3.9 HTTP的报文结构

(1)HTTP 有两类报文:

  请求报文——客户向服务器发送请求报文。

  响应报文——服务器返回客户的回答。

  由于 HTTP 是面向正文的(text-oriented),因此在报文中的每一个字段都是一些 ASCII 码串,因而每个字段的长度都是不确定的。

(2)请求报文

  

  

  报文由三个部分组成,即开始行、首部行和实体主体。 在请求报文中,开始行就是请求行。  

  “方法”是面向对象技术中使用的专门名词。所谓“方法”就是对所请求的对象进行的操作,因此这些方法实际上也就是一些命令。因此,请求报文的类型是由它所采用的方法决定的。

  “URL”是所请求的资源的 URL。

  “版本”是 HTTP 的版本。

(3)HTTP 请求报文的一些方法

   方法(操作)     意义

    OPTION   请求一些选项的信息

    GET     请求读取由

     URL    所标志的信息

     HEAD     请求读取由

     URL      所标志的信息的首部

     POST     给服务器添加信息(例如,注释)

    PUT       在指明的 URL下存储一个文档

    DELETE     删除指明的 URL所标志的资源

    TRACE     用来进行环回测试的请求报文

    CONNECT     用于代理服务器

(4)响应报文

  

  响应报文的开始行是状态行

  状态行包括三项内容,即 HTTP 的版本,状态码,以及解释状态码的简单短语

    状态码都是三位数字:

    ①1xx 表示通知信息的,如请求收到了或正在进行处理。

    ②2xx 表示成功,如接受或知道了。

    ③3xx 表示重定向,表示要完成请求还必须采取进一步的行动。

    ④4xx 表示客户的差错,如请求中有错误的语法或不能完成。

    ⑤5xx 表示服务器的差错,如服务器失效无法完成请求。

 (5)在服务器上存放用户的信息

  ①万维网站点使用 Cookie 来跟踪用户。

  ②Cookie 表示在 HTTP 服务器和客户之间传递的状态信息。

  ③使用 Cookie 的网站服务器为用户产生一个唯一的识别码。利用此识别码,网站就能够跟踪该用户在该网站的活动。

 (6)超文本传输协议—实例

四.万维网的文档

4.1 超文本标记语言HTML

(1)超文本标记语言 HTML 中的 Markup 的意思就是“设置标记”。

(2)HTML 定义了许多用于排版的命令(即标签)。

(3)HTML 把各种标签嵌入到万维网的页面中。这样就构成了所谓的 HTML 文档。HTML 文档是一种可以用纯文本编辑器创建的 ASCII 码文件。

4.2 HTML 文档

(1)仅当 HTML 文档是以.html 或 .htm 为后缀时,浏览器才对此文档的各种标签进行解释。

(2)如 HTML 文档改换以 .txt 为其后缀,则 HTML 解释程序就不对标签进行解释,而浏览器只能看见原来的文本文件。

(3)当浏览器从服务器读取 HTML 文档后,就按照 HTML 文档中的各种标签,根据浏览器所使用的显示器的尺寸和分辨率大小,重新进行排版并恢复出所读取的页面。

4.3 两种不同的链接

(1)远程链接:超链的终点是其他网点上的页面。

(2)本地链接:超链指向本计算机中的某个文件。

4.4 动态万维网文档

(1)静态文档是指该文档创作完毕后就存放在万维网服务器中,在被用户浏览的过程中,内容不会改变。

(2)动态文档是指文档的内容是在浏览器访问万维网服务器时才由应用程序动态创建。

(3)动态文档和静态文档之间的主要差别体现在服务器一端。这主要是文档内容的生成方法不同。而从浏览器的角度看,这两种文档并没有区别。

4.5 如何实现动态文档

(1)应增加另一个应用程序,用来处理浏览器发来的数据,并创建动态文档。

(2)应增加一个机制,用来使万维网服务器把浏览器发来的数据传送给这个应用程序,然后万维网服务器能够解释这个应用程序的输出,并向浏览器返回 HTML 文档。

4.6 扩充了功能的万维网服务器

  

(1)通用网关接口 CGI (Common Gateway Interface) 

  CGI 是一种标准,它定义了动态文档应如何创建,输入数据应如何提供给应用程序,以及输出结果应如何使用。

  万维网服务器与 CGI 的通信遵循 CGI 标准。

  “通用”:CGI 标准所定义的规则对其他任何语言都是通用的。

  “网关”:CGI 程序的作用像网关。

  “接口”:有一些已定义好的变量和调用等可供其他 CGI 程序使用。

(2)CGI 程序

  CGI 程序的正式名字是 CGI 脚本(script)。

  “脚本”指的是一个程序,它被另一个程序(解释程序)而不是计算机的处理机来解释或执行。

   脚本运行起来要比一般的编译程序要慢,因为它的每一条指令先要被另一个程序来处理(这就要一些附加的指令),而不是直接被指令处理器来处理。

4.7 活动万维网文档

(1)活动文档(active document)技术把所有的工作都转移给浏览器端。

(2)每当浏览器请求一个活动文档时,服务器就返回一段程序副本在浏览器端运行。

(3)活动文档程序可与用户直接交互,并可连续地改变屏幕的显示。

(4)由于活动文档技术不需要服务器的连续更新传送,对网络带宽的要求也不会太高。

4.8 活动文档在客户端创建

  

4.9 浏览器的结构

(1)

  

(2)浏览器的主要组成部分

  浏览器有一组客户、一组解释程序,以及管理这些客户和解释程序的控制程序。

  控制程序是其中的核心部件,它解释鼠标的点击和键盘的输入,并调用有关的组件来执行用户指定的操作。

  例如,当用户用鼠标点击一个超链的起点时,控制程序就调用一个客户从所需文档所在的远地服务器上取回该文档,并调用解释程序向用户显示该文档。

 (3)解释程序

  HTML 解释程序是必不可少的,而其他的解释程序则是可选的。

  解释程序把 HTML 规格转换为适合用户显示的命令来处理版面的细节。

  许多浏览器还包含 FTP 客户程序,用来获取文件传送服务。

  一些浏览器也包含电子邮件客户程序,使浏览器能够发送和接收电子邮件。

(4)浏览器中的缓存

  浏览器将它取回的每一个页面副本都放入本地磁盘的缓存中。

  当用户用鼠标点击某个选项时,浏览器首先检查磁盘的缓存。若缓存中保存了该项,浏览器就直接从缓存中得到该项副本而不必从网络获取,这样就明显地改善浏览器的运行特性。

  但缓存要占用磁盘大量的空间,而浏览器性能的改善只有在用户再次查看缓存中的页面时才有帮助。

  许多浏览器允许用户调整缓存策略。

 五.万维网的信息检索系统

 5.1 全文检索搜索和分类目录搜索

  在万维网中用来进行搜索的程序叫做搜索引擎

(1)全文检索搜索引擎是一种纯技术型的检索工具。它的工作原理是通过搜索软件到因特网上的各网站收集信息,找到一个网站后可以从这个网站再链接到另一个网站。然后按照一定的规则建立一个很大的在线数据库供用户查询。

  用户在查询时只要输入关键词,就从已经建立的索引数据库上进行查询(并不是实时地在因特网上检索到的信息)。

 (2)分类目录搜索引擎并不采集网站的任何信息,而是利用各网站向搜索引擎提交网站信息时填写的关键词和网站描述等信息,经过人工审核编辑后,如果认为符合网站登录的条件,则输入到分类目录的数据库中,供网上用户查询。

  分类目录搜索也叫做分类网站搜索

5.2 一些著名的搜索引擎

最著名的全文检索搜索引擎:

   Google(谷歌)(www.google.com)

   百度 (www.baidu.com)

最著名的分类目录搜索引擎:

  雅虎 (www.yahoo.com)

  雅虎中国 (cn.yahoo.com)

  新浪 (www.sina.com)

  搜狐 (www.sohu.com)

  网易 (www.163.com)

 5.3 垂直搜索引擎 (Vertical Search Engine)

  针对某一特定领域、特定人群或某一特定需求提供搜索服务。

  垂直搜索也是提供关键字来进行搜索的,但被放到了一个行业知识的上下文中,返回的结果更倾向于信息、消息、条目等。如购物、旅游、汽车、求职、交友等行业。

5.4 元搜索引擎

  将用户提交的检索请求发送到多个独立的搜索引擎上搜索,将结果集中处理,以统一的格式提供给用户。

5.5 Google搜索技术的特点

   利用在因特网上相互链接的PC机来快速查找每个搜索的答案,并且成功地缩短了查找的时间。

  可以同时运行多种运算,采用了网页排名技术(PageRankTM)。

  网页排名对搜索出来的结果按重要性进行排序。

  确定排名,如果有很多网站上的链接都指向某页面,则该页面就比较重要,会排在前面。

  网站排名的次序还有一个因素可以决定----费用。

课程总结

1、Telnet远程登录协议。

  该协议是使客户端能通过该协议使用远程主机上的资源。

2、HTTP协议。

  HTTP协议的两种报文结构,HTTP使用的下层协议,代理服务器,静态和动态文档,搜索引擎。

原文地址:https://www.cnblogs.com/liao13160678112/p/6618871.html