简单文件传送协议TFTP 是一个很小且易于实现的文件传送协议。TFTP 利用UDP 数据报,采用客户/服务器方式进行通信。TFTP 的主要优点有两个:第一,TFTP 可用于UDP 环境。例如,当需要将程序或文件同时向许多机器下载时,往往需要使用TFTP。但TFTP 没有安全性措施,未设置用户标识和口令,仅限于非关键文件的访问。......
2023-10-19
超文本传输协议HTTP 是万维网的核心,是浏览器与服务器之间的通信协议。每个万维网站点都有一个服务器进程,它不断地监听TCP 的80 端口,以便发现是否有浏览器向它发出连接请求。一旦监听到建立连接的请求并建立TCP 连接后,浏览器就向万维网服务器发出浏览某个页面的请求,服务器接着就返回所请求的页面作为响应。最后,TCP 连接就被释放了。在浏览器和服务器之间的请求和响应的交互中,必须遵循的规则和格式就是超文本传输协议HTTP。
从协议功能角度看,HTTP 和TELNET、FTP 等应用程序一样均采用客户/服务器方式工作。因为HTTP 只使用一条TCP 连接,即数据连接,没有控制连接,所以比FTP 简单。
HTTP 报文由HTTP 客户和HTTP 服务器读取和解释,采用立即交付的方式进行通信。客户发给服务器的命令嵌入在请求报文中,而服务器回送的内容或其他信息则嵌入在响应报文中。
(1)HTTP 的操作过程
用户可采用两种方法浏览页面:一种是在浏览器的地址窗口中输入所要寻找页面的URL,另一种是在某个页面上用鼠标单击可链接的地方。这时,浏览器就会自动地在互联网上寻找到所要链接的页面。
当客户发起访问万维网的请求,万维网的基本工作过程如下:
①客户浏览器根据用户输入的URL 或者鼠标单击的“超链”标志,向DNS 查询对应网站的IP 地址。
②浏览器根据DNS 返回的IP 地址,与服务器的熟知端口80 建立TCP 连接。
③浏览器向服务器提交一个HTTP 请求,内含取文件命令:Get/show/index.html。
④基于该请求的内容,服务器找到相应的文件,并根据文件的扩展名,形成一个HTTP 回答报文回送给浏览器,服务器释放本次TCP 连接。
⑤根据HTTP 回答报文首部,浏览器按某种方式显示该文件内容。如果该文件中有超链接,浏览器将随时发出新的请求以获取相关内容。
其中步骤②~步骤④是HTTP 的一次操作,也称为HTTP 的一次事务。在一次事务操作过程中,HTTP 首先要经历三次握手,与服务器建立TCP 连接。而万维网客户的HTTP 请求报文作为三次握手的第三个报文发送给万维网服务器。服务器收到这个请求后,将所有请求的文档作为响应回送给客户。这是一种花费在TCP 连接上的系统开销。
另外,万维网客户和服务器需要为每一次TCP 连接分配缓存和变量,这也是一种系统开销。当服务器为多个客户提供服务时,为每一次TCP 连接分配缓存和变量的方式会造成服务器的负担过重。为了解决这个问题,HTTP1.1 使用了持续连接的概念。所谓持续连接,是指万维网服务器在发送响应后仍在一段时间内保持这条连接,以使同一客户与该服务器可以继续在这条连接上传送后续的HTTP 请求报文和响应报文。只要这些文档来自同一服务器,就不局限于传送同一个页面上链接的文档。HTTP1.1 将持续连接作为默认连接。目前一些浏览器(例如,IE 6.0)的默认设置就是使用HTTP1.1。
持续连接有两种工作方式:非流水线和流水线。非流水线方式是指客户在收到前一个响应报文才能发出下一个请求,这比非持续连接的两倍RTT 的开销节省了建立TCP 连接所需的一个RTT 时间。但服务器在发送完一个对象后,其TCP 连接就处于空闲状态,浪费了服务器资源。流水线方式是指客户在收到HTTP 响应报文之前就能够接着发送新的请求报文。一个接一个的请求报文到达服务器后,服务器就可连续发回响应报文。使用流水线方式时,客户访问所有的对象只需花费一个RTT 时间,使TCP 连接中的空闲时间减少,提高了下载文档效率。
(2)HTTP 的报文格式
HTTP 有以下两类报文:请求报文(从客户向服务器发送请求报文)、响应报文(从服务器到客户的回答)。由于HTTP 是面向文本的,在报文中的每一个字段都是ASCII 码串,因而每个字段的长度都是不确定的。
HTTP 请求报文和响应报文都是由三个部分组成,即开始行、首部行和实体主体。HTTP报文格式如图9.6所示。
图9.6 HTTP 的报文格式
开始行用于区分是请求报文还是响应报文。在开始行的三个字段之间都可以用空格分隔开,最后的“CR”和“LF”分别代表“回车”和“换行”。首部行用来说明浏览器、服务器或报文主体的一些信息,可以有几行,也可以不使用。实体主体字段在请求报文中一般不用,在响应报文中也可能没有。请求报文和响应报文的开始行是不同的。
在请求报文中,开始行就是请求行。它由三个内容组成,即方法、请求资源的URL 以及HTTP 的版本。“方法”实质上就是一些命令,决定着请求报文的类型。表9.1 给出了请求报文中常用的几种方法。
表9.1 请求报文中常见的方法
而在响应报文中,开始行是状态行。状态行包括三项内容,即HTTP 的版本、状态码以及解释状态码的简单短语。状态码都是三位数字,分为五大类共33 种,例如:
①1xx 表示通知信息,如请求收到了或正在进行处理。(www.chuimin.cn)
②2xx 表示成功,如接受或知道了。
③3xx 表示重定向,如要完成请求还必须采取进一步的行动。
④4xx 表示客户的差错,如请求中有错误的语法或不能完成。
⑤5xx 表示服务器的差错,如服务器失效无法完成请求。
下面三种状态行在响应报文中是经常见到的:
HTTP/1.1 202 Accepted {接受}
HTTP/1.1 400 Bad Request {错误的请求}
HTTP/1.1 404 Not Found {找不到}
若请求的网页从一个页面转移到了一个新的地址,则响应报文的状态行和一个首部行就是下面的形式:
HTTP/1.1 301 Moved Permanently {永久性地转义了}
Location:http:/ /www.cqu.edu.cn/ttt/index.html {新的URL}
(3)代理服务器
代理服务器又称为万维网高速缓存。它将最近一些请求和响应的副本保存下来。在有代理服务器的情况下,HTTP 客户把请求发送给代理服务器,代理服务器检查它的高速缓存。如果代理服务器发现这个请求与暂存在高速缓存中的请求相同则返回响应,而不需要按URL 的地址再去互联网上访问该资源。如果没有所需的响应,代理服务器就把请求发送给相应的服务器,最终代理服务器获得所需的响应,将它存储在高速缓存中备用,再将响应结果返回给发出这次请求的客户。
代理服务器减少了目标服务器的负担,减少了互联网的通信量,也减少了访问互联网所带来的时延。但是,由于使用了代理服务器,客户必须进行合理的配置才能正确使用。
(4)万维网站点识别用户的功能
HTTP 具有无状态的特点,即服务器不会记住曾经为客户服务的次数。这种无状态特性虽然简化了服务器的设计,但是实际使用中却希望万维网站点具有识别用户的功能。例如,如果用户在万维网站点中已经注册了,则希望下次再访问该站点时站点能够自动识别。为了做到这点,HTTP 使用Cookie 来传递HTTP 服务器与客户之间的状态信息。
Cookie 是指某些站点为了识别用户身份而存储在客户终端上的数据(通常经过加密)。使用、创建和存储Cookie 与具体实现有关,但原理是相同的。其基本过程如下:
①当服务器收到来自客户的请求后,就将有关客户信息存储在一个文件或字符串当中。客户信息包括域名、用户名、注册号、时间戳等。
②服务器在回答的响应报文中包含Cookie 内容。
③当客户收到响应时,浏览器就将Cookie 内容存储到按域名服务器的名字来分类的Cookie 目录中。
于是,当一个客户向服务器发送请求时,客户的浏览器就查找Cookie 目录中是否有那个服务器发送的Cookie。如果有,就将这个Cookie 包含在请求当中。当服务器收到这个请求后,就知道这是一个老客户,否则,就认为是新客户。
在操作过程中,Cookie 的内容并没有被客户所知晓,也不暴露给客户。
这样,万维网上使用Cookie 的站点便能够识别用户。服务器可以在客户首次注册时,向该客户发送一个Cookie,从而达到识别用户的功能。利用Cookie 识别用户的功能,也适合于在电子商店购物中购物车的实现。
有关计算机网络技术的文章
简单文件传送协议TFTP 是一个很小且易于实现的文件传送协议。TFTP 利用UDP 数据报,采用客户/服务器方式进行通信。TFTP 的主要优点有两个:第一,TFTP 可用于UDP 环境。例如,当需要将程序或文件同时向许多机器下载时,往往需要使用TFTP。但TFTP 没有安全性措施,未设置用户标识和口令,仅限于非关键文件的访问。......
2023-10-19
图7—11SLIP主机在帧末尾加上END字符为了消除由于线路噪声带来的错误,可以在帧头和帧尾都使用END字符。SLIP没有类型层,因此,在SLIP连接上仅能运行一种协议。......
2023-10-22
TCP是传输控制协议,它是TCP/IP协议簇中的一个重要协议。图2-9显示出了从发送方的高层协议通过TCP到达接收方的高层协议数据传输的完整过程。TCP允许两个应用程序建立一个连接,然后发送完数据并终止连接。总之,TCP协议使两台计算机上的程序通过互联网以类似于电话的方式进行通信成为可能。TCP将自动检测丢失的数据包,并且要求对方计算机在数据丢失时重发数据。......
2023-11-04
与TCP配合使用的网络层协议是IP,人们常常称这些相关协议为TCP/IP协议。虽然TCP和IP不是OSI标准,但已被公认为当前的工业标准,称为目前最流行的传输层协议。下面将TCP/IP和相应的OSI层次进行对比,如图3—31所示。图3—31TCP/IP和OSI层次对比对应于OSI的5~7层,相应的高层协议有:SMTP,简单邮件传输协议,关于电子邮件方面的。对应于OSI的第四层的协议有三个:TCP传输控制协议,是面向连接的协议,也是最主要的协议。......
2023-10-22
TCP/IP Monitor 是Eclipse 的一个插件,它是用于监测浏览器与服务器之间的所有请求和响应的一台简单的服务器。图上机1.9启动Tomcat 服务器过程中输出日志信息使用TCP/IP Monitor 监测HTTP 协议传输的数据根据题目要求要使用TCP/IP Monitor 来监测HTTP 协议传输的数据,下面介绍TCP/IP Monitor 的使用方法。......
2023-11-21
Net BEUI协议是非可路由协议,由包括Windows 2000在内的所有Microsoft网络产品支持。基于Windows 2000的Net BEUI称为Net BIOS帧,它提供与已存在的使用Net BEUI协议的局域网的兼容性。Net BEUI也是微软最钟爱的一种通信协议,所以它被称为微软所有产品中通信协议的“母语”。后来,IBM发现Net BIOS存在许多缺陷,所以于1985年对其进行了改进,推出了Net BEUI协议。而Net BEUI是建立在Net BIOS基础之上的一个网络传输协议。......
2023-11-04
关于互联网网络层安全,主要内容是IP 安全体系结构和IPSec 协议族即IP 安全协议。IPSec 为了保证网络的安全需求,首先需要制定能够满足安全通信的数据报格式,然后根据这些数据报的首部信息完成安全需求。IPSec 最重要的两个协议是:鉴别首部AH协议和封装安全有效载荷ESP协议。隧道方式采用隧道技术对整个IP 分组提供安全保护。这种数据处理方式,可对AH 和ESP 首部的后一部分及内层IP 分组进行加密。......
2023-10-19
前面谈到了HTTP 协议是如何工作的,但仅仅从宏观层面上谈,还没有涉及其具体的内容,比如客户端浏览器发送的请求信息是什么样的,Web 服务器返回的响应信息又是什么样的,接下来将介绍这些与HTTP 协议相关的内容。GET 指请求方法;GET 后面的“/”表示当前请求站点的根路径;“HTTP/1.1”指定使用的是HTTP 协议及其版本。在HTTP/1.1 协议中,所有的请求头,除Host 外,都是可选的。......
2023-11-21
相关推荐