实验名称: 较复杂的页面访问 学生姓名: 班级:网络 1301 实验目的:
1. 掌握 HTTP 的报文格式 2. 掌握 HTTP 的工作原理 3. 掌握 HTTP 常用方法
实验成绩 学号: 主机编号:1—A 指导教师: 实验日期:2015.11.27
实验原理:
一. 体系结构 万维网(WWW)服务是分布式的客户/服务器服务,客户使用浏览器能够得到服务器提供 的服务,这种服务的提供是分布在许多网站中的,如下图所示:
每一个网站保存有一个或多个文档,叫做万维网页面。在图 12-1 所示的例子中,客户需要查看网站 A 的 某些信息。浏览器用来读取万维网上的文档。它向网站 A 发送一个请求,这个请求包含了网站 A 和网站中 万维网页面的地址,这个地址叫做统一资源定位符(URL)。网站 A 收到请求后,将指定的文档发送给这 个客户。它用同样的方法与网站 B 通信。
1. 客户(浏览器) 许多厂商提供商用浏览器, 可以解释和显示万维网页面。 每一个浏览器通常由 3 个部分组成: 控制程序、 客户程序及解释程序。控制程序从键盘或鼠标接收输入,使用客户程序访问要浏览的文档。在文档找到后, 控制程序就使用解释程序(可以是 HTML、Java 或 JavaScript 等)中的一个,把文档显示在屏幕上。 2. 服务器 万维网页面存储在服务器上。每当有客户请求到达时,对应的文档就发送给客户。为了提高效率,服务 器通常在其高速缓存中存储被请求过的文档;对高速缓存进行访问要比磁盘快得多。通过多线程或多进程
可使服务器的效率更加提高,服务器在同一时间可回答多个请求。 3. 统一资源定位符(URL) 客户要访问万维网页面就需要这个页面地址。为了方便地访问文档,HTTP 协议使用统一资源定位符 (URL)。URL 是 Internet 上指定信息的标准。URL 由 4 部分组成:协议、主机、端口和路径,如下图所
示:
协议:协议指定了用这个 URL 的客户/服务器程序。例如,HTTP 协议、FTP 协议和 TELNET 协议等。 主机:主机指明了信息所存放的地址,可以是逻辑地址也可以是相应的域名。存放万维网页面的计
算机通常使用以字符“WWW”开始的域名,但这不是强制性的。
端口:端口指定了使用主机的某个端口,端口是可选的。如果包含了端口,那么端口就插入在主机
和路径之间,和主机用冒号分隔开。
路径:路径指定了文件存放的位置。路径本身可以包含斜线,用于将目录与子目录和文件分隔开。
二. 万维网文档 万维网文档可分为 3 类:静态文档、动态文档和活动文档。这种分类是基于文档内容被确定的时间。 1. 静态文档 静态文档是固定内容的文档,它由服务器创建,并存储在服务
器中。客户只能得到文档的一个副本。换 言之,文件的内容是在文件被创建时就确定的,而不是在它被使用时。当然,在服务器中的内容是可以改 变的,但用户不能改变它。当客户访问文档时,文档的一个副本就被发送出去。用户可以使用浏览程序显 示这个文档,如下图所示
2. 动态文档 动态文档是在浏览器请求该文档时才由万维网服务器创建出来。当请求到达时,万维网服务器就运行创 建动态文档的应用程序。服务器返回这个程序或脚本的输出,把它作为对请求该文档的浏览器的响应。因 为对每一个请求都创建出新的文档,因此每一个请求得到的动态文档的内容就会不同。 3. 活动文档 对于许多应用,需要程序能够在客户端运行,这就叫做活动文档。当浏览器请求活动文档时,服务器就 发送这个文档的一个副本或脚本。然后这个文档就在客户(浏览器)端运行
三. HTTP 协议简介 HTTP(超文本传输协议)主要用于访问万维网上的数据。协议以普通文本、超文本、音频、视频等格 式传输数据。之所以称为超文本协议,原因是在应用环境中,它可以快速的在文档之间跳转。HTTP 在熟 知端口 80 上使用 TCP 服务。 四. HTTP 报文格式 HTTP 报文有两种一般的类型:请求和响应。这两种类型的报文格式几乎是相同的。报文格式如下图所 示:
五. HTTP 方法 HTTP 报文中的方法是客户端向服务器端发出的实际命令和请求。常用 HTTP 方法如下表所示:
六 持久与非持久连接 在版本 1.1 以前的 HTTP 协议默认是非持久连接的,而在版本 1.1 中,持久连接是默认的连接。 1. 非持久连接 在非持久连接中,对每一个请求/响应都要建立一次 TCP 连接。非持久连接的步骤如下: ● 客户打开 TCP 连接,并发送请求。 ● 服务器发送响应,并关闭连接。 ● 客户读取数据,直到它遇到文件结束标记;然后它关闭连接。 使用非持久连接时,对于在不同文件中的 N 个不同图片的请求,连接必须打开和关闭 N 次。非持久连 接策略给服务器造成了很大的开销,因为服务器需要 N 个不同的缓存,而每次打开连接时都要使用慢开始 过程。 2. 持久连接 HTTP 版本 1.1 指明持久连接是默认的策略。在使用持久连接时,服务器在发送响应后,让连接继续为 一些请求打开。服务器可以在客户发送关闭请求时等待或关闭这个连接。发送端通常在每一个响应中都发 送数据长度。但是,有时发送端并不知道数据的长度(例如动态文档或活动文档) ,这时服务器就把长度不 知道这件事通知客户,并在发送数据后关闭这个连接,这样客户就知道数据结束的地方已经到了。 八. HTTP 代理服务器 HTTP 支持
代理服务器(proxy server) 。代理服务器保留对最近请求的响应的副本。在有代理服务器的情 况下,HTTP 客户把请求发送给代理服务器。代理服务器检查它的高速缓存。如果在高速缓存中有这个响 应,代理服务器就直接应答客户的请求;反之,如果在高速缓存中没有这个响应,代理服务器就把请求发 送给相应的 HTTP 服务器,当 HTTP 服务器的响应到达代理服务器时,代理服务器将该响应转发给客户,
同时将该响应存储到高速缓存中,以便以后为其它客户的请求使用。 代理服务器减少了原始服务器的负荷,减小了通信量,也减小了延时。但是,由于使用了代理服务器, 客户必须配置成接入到代理服务器而不是那个目标服务器
实验环境(画出拓扑结构)
实验步骤:
本练习将主机 A、B、C、D、E、F 作为一组进行实验。 1. 本练习中要求主机 A、C、E 设置 DNS 服务器地址,(DNS 服务器的 IP 地址即 Linux 服务器 的 IP 地址)其 IP 地址以 172.16.0.253 为例。 2. 主机 A 使用“ipconfig /flushdns”命令清空 DNS 高速缓存。 3. 主机 B 启动协议分析器开始捕获数据并设置过滤条件(提取 DNS、HTTP 协议)。 4. 主机 A 启动 IE 浏览器,在地址框中输入 http://JServer.NetLab/complexpage.htm。
5. 主机 B 停止捕获数据,察看相关会话,分析捕获到的数据,并回答以下问题: ● 结合本次实验结果,简述浏览器是如何处理一个访问请求的。 6. 恢复网络环境,将“首选 DNS 服务器”清空。
实验数据及结构分析
结合本次实验结果,简述浏览器是如何处理一个访问请求的。
用户在浏览器的地址栏中输入 WEB 站点的 URL,URL 的信息被浏览器提取出来打包到一个 HTTP 的请求
报文中,然后传输给底层的传输层,网络层和链路层协议。该请求报文由运行的 WEB 服务器软件的目标 计算机接受。服务器处理该请求报文并获得相应的信息,然后创建一个 HTTP 相应报文再传输,这个相应 由客户端接收,浏览器解释,然后显示给用户。
课后习题: 为什么 HTTP 不保持与客户端的 TCP 连接?
HTTP 不同,他所对应的策略也就不同,有的是默认为非持续连接,有的是持续性连接,在非持续连 接中,对应每一个请求/响应都要建立一次 TCP 连接;在使用非持续性连接的时候,服务器在发送响应后, 让连接继续为一些响应打开。
结合本次实验结果,简述浏览器是如何处理一个访问请求的。
用户在浏览器的地址栏中输入 WEB 站点的 URL,URL 的信息被浏览器提取出来打包到一个 HTTP 的请求 报文中,然后传输给底层的传输层,网络层和链路层协议。该请求报文由运行的 WEB 服务器软件的目标 计算机接受。服务器处
理该请求报文并获得相应的信息,然后创建一个 HTTP 相应报文再传输,这个相应 由客户端接收,浏览器解释,然后显示给用户。
实验名称: 较复杂的页面访问 学生姓名: 班级:网络 1301 实验目的:
1. 掌握 HTTP 的报文格式 2. 掌握 HTTP 的工作原理 3. 掌握 HTTP 常用方法
实验成绩 学号: 主机编号:1—A 指导教师: 实验日期:2015.11.27
实验原理:
一. 体系结构 万维网(WWW)服务是分布式的客户/服务器服务,客户使用浏览器能够得到服务器提供 的服务,这种服务的提供是分布在许多网站中的,如下图所示:
每一个网站保存有一个或多个文档,叫做万维网页面。在图 12-1 所示的例子中,客户需要查看网站 A 的 某些信息。浏览器用来读取万维网上的文档。它向网站 A 发送一个请求,这个请求包含了网站 A 和网站中 万维网页面的地址,这个地址叫做统一资源定位符(URL)。网站 A 收到请求后,将指定的文档发送给这 个客户。它用同样的方法与网站 B 通信。
1. 客户(浏览器) 许多厂商提供商用浏览器, 可以解释和显示万维网页面。 每一个浏览器通常由 3 个部分组成: 控制程序、 客户程序及解释程序。控制程序从键盘或鼠标接收输入,使用客户程序访问要浏览的文档。在文档找到后, 控制程序就使用解释程序(可以是 HTML、Java 或 JavaScript 等)中的一个,把文档显示在屏幕上。 2. 服务器 万维网页面存储在服务器上。每当有客户请求到达时,对应的文档就发送给客户。为了提高效率,服务 器通常在其高速缓存中存储被请求过的文档;对高速缓存进行访问要比磁盘快得多。通过多线程或多进程
可使服务器的效率更加提高,服务器在同一时间可回答多个请求。 3. 统一资源定位符(URL) 客户要访问万维网页面就需要这个页面地址。为了方便地访问文档,HTTP 协议使用统一资源定位符 (URL)。URL 是 Internet 上指定信息的标准。URL 由 4 部分组成:协议、主机、端口和路径,如下图所
示:
协议:协议指定了用这个 URL 的客户/服务器程序。例如,HTTP 协议、FTP 协议和 TELNET 协议等。 主机:主机指明了信息所存放的地址,可以是逻辑地址也可以是相应的域名。存放万维网页面的计
算机通常使用以字符“WWW”开始的域名,但这不是强制性的。
端口:端口指定了使用主机的某个端口,端口是可选的。如果包含了端口,那么端口就插入在主机
和路径之间,和主机用冒号分隔开。
路径:路径指定了文件存放的位置。路径本身可以包含斜线,用于将目录与子目录和文件分隔开。
二. 万维网文档 万维网文档可分为 3 类:静态文档、动态文档和活动文档。这种分类是基于文档内容被确定的时间。 1. 静态文档 静态文档是固定内容的文档,它由服务器创建,并存储在服务
器中。客户只能得到文档的一个副本。换 言之,文件的内容是在文件被创建时就确定的,而不是在它被使用时。当然,在服务器中的内容是可以改 变的,但用户不能改变它。当客户访问文档时,文档的一个副本就被发送出去。用户可以使用浏览程序显 示这个文档,如下图所示
2. 动态文档 动态文档是在浏览器请求该文档时才由万维网服务器创建出来。当请求到达时,万维网服务器就运行创 建动态文档的应用程序。服务器返回这个程序或脚本的输出,把它作为对请求该文档的浏览器的响应。因 为对每一个请求都创建出新的文档,因此每一个请求得到的动态文档的内容就会不同。 3. 活动文档 对于许多应用,需要程序能够在客户端运行,这就叫做活动文档。当浏览器请求活动文档时,服务器就 发送这个文档的一个副本或脚本。然后这个文档就在客户(浏览器)端运行
三. HTTP 协议简介 HTTP(超文本传输协议)主要用于访问万维网上的数据。协议以普通文本、超文本、音频、视频等格 式传输数据。之所以称为超文本协议,原因是在应用环境中,它可以快速的在文档之间跳转。HTTP 在熟 知端口 80 上使用 TCP 服务。 四. HTTP 报文格式 HTTP 报文有两种一般的类型:请求和响应。这两种类型的报文格式几乎是相同的。报文格式如下图所 示:
五. HTTP 方法 HTTP 报文中的方法是客户端向服务器端发出的实际命令和请求。常用 HTTP 方法如下表所示:
六 持久与非持久连接 在版本 1.1 以前的 HTTP 协议默认是非持久连接的,而在版本 1.1 中,持久连接是默认的连接。 1. 非持久连接 在非持久连接中,对每一个请求/响应都要建立一次 TCP 连接。非持久连接的步骤如下: ● 客户打开 TCP 连接,并发送请求。 ● 服务器发送响应,并关闭连接。 ● 客户读取数据,直到它遇到文件结束标记;然后它关闭连接。 使用非持久连接时,对于在不同文件中的 N 个不同图片的请求,连接必须打开和关闭 N 次。非持久连 接策略给服务器造成了很大的开销,因为服务器需要 N 个不同的缓存,而每次打开连接时都要使用慢开始 过程。 2. 持久连接 HTTP 版本 1.1 指明持久连接是默认的策略。在使用持久连接时,服务器在发送响应后,让连接继续为 一些请求打开。服务器可以在客户发送关闭请求时等待或关闭这个连接。发送端通常在每一个响应中都发 送数据长度。但是,有时发送端并不知道数据的长度(例如动态文档或活动文档) ,这时服务器就把长度不 知道这件事通知客户,并在发送数据后关闭这个连接,这样客户就知道数据结束的地方已经到了。 八. HTTP 代理服务器 HTTP 支持
代理服务器(proxy server) 。代理服务器保留对最近请求的响应的副本。在有代理服务器的情 况下,HTTP 客户把请求发送给代理服务器。代理服务器检查它的高速缓存。如果在高速缓存中有这个响 应,代理服务器就直接应答客户的请求;反之,如果在高速缓存中没有这个响应,代理服务器就把请求发 送给相应的 HTTP 服务器,当 HTTP 服务器的响应到达代理服务器时,代理服务器将该响应转发给客户,
同时将该响应存储到高速缓存中,以便以后为其它客户的请求使用。 代理服务器减少了原始服务器的负荷,减小了通信量,也减小了延时。但是,由于使用了代理服务器, 客户必须配置成接入到代理服务器而不是那个目标服务器
实验环境(画出拓扑结构)
实验步骤:
本练习将主机 A、B、C、D、E、F 作为一组进行实验。 1. 本练习中要求主机 A、C、E 设置 DNS 服务器地址,(DNS 服务器的 IP 地址即 Linux 服务器 的 IP 地址)其 IP 地址以 172.16.0.253 为例。 2. 主机 A 使用“ipconfig /flushdns”命令清空 DNS 高速缓存。 3. 主机 B 启动协议分析器开始捕获数据并设置过滤条件(提取 DNS、HTTP 协议)。 4. 主机 A 启动 IE 浏览器,在地址框中输入 http://JServer.NetLab/complexpage.htm。
5. 主机 B 停止捕获数据,察看相关会话,分析捕获到的数据,并回答以下问题: ● 结合本次实验结果,简述浏览器是如何处理一个访问请求的。 6. 恢复网络环境,将“首选 DNS 服务器”清空。
实验数据及结构分析
结合本次实验结果,简述浏览器是如何处理一个访问请求的。
用户在浏览器的地址栏中输入 WEB 站点的 URL,URL 的信息被浏览器提取出来打包到一个 HTTP 的请求
报文中,然后传输给底层的传输层,网络层和链路层协议。该请求报文由运行的 WEB 服务器软件的目标 计算机接受。服务器处理该请求报文并获得相应的信息,然后创建一个 HTTP 相应报文再传输,这个相应 由客户端接收,浏览器解释,然后显示给用户。
课后习题: 为什么 HTTP 不保持与客户端的 TCP 连接?
HTTP 不同,他所对应的策略也就不同,有的是默认为非持续连接,有的是持续性连接,在非持续连 接中,对应每一个请求/响应都要建立一次 TCP 连接;在使用非持续性连接的时候,服务器在发送响应后, 让连接继续为一些响应打开。
结合本次实验结果,简述浏览器是如何处理一个访问请求的。
用户在浏览器的地址栏中输入 WEB 站点的 URL,URL 的信息被浏览器提取出来打包到一个 HTTP 的请求 报文中,然后传输给底层的传输层,网络层和链路层协议。该请求报文由运行的 WEB 服务器软件的目标 计算机接受。服务器处
理该请求报文并获得相应的信息,然后创建一个 HTTP 相应报文再传输,这个相应 由客户端接收,浏览器解释,然后显示给用户。