`
XiangdongLee
  • 浏览: 91272 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

【应用层】之一:HTTP协议与FTP协议

 
阅读更多
本文围绕以下三个部分展开:

一、HTTP协议
二、FTP协议
三、HTTP与FTP的异同点






一、HTTP协议简介

        1. 概念

        HTTP: HyperText Transfer Protocal,超文本传输协议。它是Web的核心。

        HTTP协议由两部分程序实现:一个客户机程序和一个服务器程序,它们运行在不同的端系统中,通过交换HTTP报文进行会话。

        HTTP定义了这些报文的格式,以及客户机和服务器是如何进行报文交换的,即:Web客户机是如何向Web服务器请求Web页面,以及服务器如何将Web页面传送给客户机。




        2. HTTP是一个无状态协议(stateless protocal)

        服务器向客户机发送被请求的文件时,并不存储任何关于该客户机的状态信息。

        假如某个特定的客户机在短短的几秒钟内两次请求同一个对象,服务器并不会因为刚刚为该用户提供了该对象就不再做出反应,而是重新发送该对象,就像该服务器已经完全忘记不久之前所做过的事一样。

        正因为一个HTTP服务器并不保存关于客户机的任何信息,所以我们说HTTP是一个无状态协议。


        3. 非持久连接(non-persistent connection)和持久连接(persistent connection)

        (1)在许多因特网应用中,客户机和服务器进行长时间的通信,其中客户机发出一系列请求,服务器对每个请求进行响应。

        根据不同的应用程序以及应用程序使用的方式,这一系列请求,可以周期性地一个接一个地发出,也可以间断性地发出。

        当这种客户机/服务器的交互运行于TCP协议之上时,应用程序的研制者需要确定每个请求/响应对,是经一个 单独的TCP连接 发送,还是所有的请求及相应的响应经 相同的TCP连接 发送。

        如果每个请求/响应对,都是经一个 单独的TCP连接 发送,该应用程序被称为 使用 非持久连接;如果所有的请求及相应的响应都经 相同的TCP连接 发送,则该应用程序被称为 使用 持久连接


        (2)HTTP既可以使用非持久连接,也可以使用持久连接,默认方式下,HTTP使用持久连接。


        (3)非持久连接的缺点:

        1)非持久连接必须为每一个请求的对象建立和维护一个全新的连接。
        对于这样的连接,在客户机和服务器都要分配TCP的缓冲区和变量,这给服务器带来了严重的负担,因为一台Web服务器可能同时服务于数以百计的客户机请求。

        2)每一个对象的传输时延为两个RTT(Round-Trip Time,往返时间),即一个RTT用于建立TCP,另一个RTT用于请求和接收一个对象。传输时延太大。


        在持久连接的情况下,服务器在发送响应后保持该TCP连接打开。
        在相同的客户机和服务器之间的后续请求和响应报文,可通过相同的连接进行传送。特别是一个完整的Web页面(如基本的HTML文件,加上10个图形),可以用单个持久的TCP连接进行传送。
        更有甚者,位于同一台服务器的多个Web页面,在从该服务器发送给同一个客户机时,可以在单个持久的TCP连接上进行。对这些对象的请求可一个接一个地发出,而不必等待未决请求的回答,像流水线一样进行。

        一般来说,如果一个连接经过一定时间间隔(一个可配置的超时间隔)仍未被使用,HTTP服务器就关闭该连接。

        HTTP的默认模式使用了流水线方式的持久连接。


        4. HTTP报文格式

        HTTP报文有两种:请求报文和响应报文。

        (详情以后补充)


二、FTP协议

        FTP:File Transfer Protocol,文件传输协议。

        在典型的FTP会话中,用户坐在一台主机(本地主机)前面,向一台远程主机上传文件或从远程主机下载文件。



        用户通过一个FTP用户接口与FTP交互。用户首先提供远程主机的主机名,使本地主机的FTP客户机进程建立一个到远程主机FTP服务器进程的TCP连接。

        然后,为使用户能访问远程主机的账户,用户必须提供一个用户标识和口令,作为FTP命令的一部分在该TCP连接上传送。一旦该服务器向该用户授权,用户就能从本地文件系统向远程文件系统传送文件,反之亦然。


三、HTTP与FTP的异同点

        1. 同:

        (1)都是应用层协议;

        (2)都运行在TCP上,即都使用TCP(而不是UDP)作为其支撑的运输层协议。

        2. 异:

        (1)HTTP是超文本传输协议,是面向网页的;FTP是文件传输协议,是面向文件的。

        (1)HTTP协议默认端口:80号端口。FTP协议默认端口:21号端口。

        (3)FTP的控制信息是带外(out-of-band)传送的,而HTTP的控制信息是带内(in-band)传送的。

        FTP使用两个并行的TCP连接来传输文件,一个是 控制连接(control connection),一个是 数据连接(data connection)。

        控制连接用于在两个主机之间传输控制信息,如用户标识、口令、改变远程目录的命令以及“put”和“get”文件的命令。

        数据连接用于实际传输一个文件。



        因为FTP协议使用一个分离的控制连接,因此称FTP的控制信息是带外传送的。
        而HTTP协议是在传输文件的TCP连接中发送请求和响应首部行的,因此其控制信息是带内传送的。

        (3)FTP服务器必须在整个会话期间保留用户的状态(state)信息,而HTTP是无状态的。

        FTP服务器必须把特定的用户账户与控制连接联系起来,随着用户在远程目录树上移动,服务器必须追踪用户在远程目录树上的当前位置。对每个活动着的用户会话的状态进行追踪,可以对FTP会话总数进行限制。

        (4)FTP的控制连接是持久连接,数据连接是非持久连接;而HTTP既可以使用非持久连接,也可以使用持久连接,默认方式下,HTTP使用持久连接。

        当用户主机与远程主机开始一个FTP会话前,FTP的客户机(用户)首先在21号端口上发起一个用于控制的与服务器(远程主机)的TCP连接。FTP的客户机通过该控制连接,发送用户的标识和口令,也发送改变远程目录的命令。

        1)FTP的PORT(主动式)工作方式:当需要传送数据时,客户端在控制连接链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据连接链路来传送数据。

        2)FTP的PASV(被动式)工作方式:当需要传送数据时,服务器在控制连接链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据连接链路来传送数据。

        如果在同一个会话期间,用户还需要传输另一个文件,FTP则打开另一个数据连接。

        因此,FTP的控制连接贯穿了整个用户会话期间,但是针对会话中的每一次文件传输,都需要建立一个新的数据连接。故,控制连接是持久连接,而数据连接是非持久连接。





整理时重点参考:《Computer Networking - A Top-Down Approach》(Fouth Edition) -- James F.Kurose, Keith W. Ross
  • 大小: 67.2 KB
  • 大小: 65.9 KB
  • 大小: 35.4 KB
0
1
分享到:
评论
2 楼 lzg406 2015-08-24  
HTTP默认方式下,使用持久连接。 这个值得推敲
1 楼 mute_ 2015-08-23  
我觉得不错

相关推荐

    典型应用层协议FTP

    典型应用层协议FTP FTP(File Transfer Protocol)是一种应用层协议,用于在网络上进行文件传输。FTP 协议使得用户可以在远程主机上存储和检索文件。 FTP 模型与测试分析环境 FTP 协议分析器的作用是监视 FTP ...

    Ftp协议:RFC959和HTTP协议:RFC2616

    FTP是一种用于在网络上进行文件传输的应用层协议,最初设计用于在主机之间高效地交换文件。RFC959是FTP协议的官方标准文档,它定义了FTP的命令和响应格式、连接管理、数据传输机制以及用户认证方式等。FTP支持两种...

    FTP协议分析

    FTP(文件传输协议)是网络协议中的重要组成部分,它...此外,了解FTP协议与其他应用层协议,如HTTP、SMTP等,的区别和联系也是十分必要的。通过综合分析和实验操作,能够全面掌握FTP协议的理论知识和实际应用技能。

    应用层协议与应用.rar

    总结来说,“应用层协议与应用.rar”涵盖了网络通信中的多个重要方面,包括但不限于HTTP、HTTPS、FTP、SFTP、NFS、DNS、SMTP、POP3、IMAP以及TCP和UDP等协议的工作原理和应用场景。深入理解这些协议对于网络管理员、...

    网络协议概述:物理层、连接层、网络层、传输层、应用层详解

    **应用层**是网络协议的最高层,它直接与用户的应用程序交互。HTTP(HyperText Transfer Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)等协议都在这一层工作,它们处理网页...

    应用层协议学习ppt

    在计算机网络中,应用层协议是位于OSI模型最顶层的一类协议,它们直接与用户的应用程序交互,实现各种网络服务。本文将深入探讨五种重要的应用层协议:FTP(文件传输协议)、HTTP(超文本传输协议)、DNS(域名系统...

    应用层协议介绍分析说明。。。

    【应用层协议】是TCP/IP协议族中的最高层,它涉及到的应用程序范围广泛,包括电子邮件、文件传输、网络管理、远程登录等多个方面。本部分主要介绍四种常见的应用层协议:简单网络管理协议(SNMP)、远程登录(Rlogin...

    IIS 6.0入门及进阶系列课程之六:应用程序层协议揭秘——HTTP和FTP

    IIS 6.0入门及进阶系列课程之六:应用程序层协议揭秘——HTTP和FTP

    应用层协议识别

    该论文可以有效识网络中传输数据的协议,准确率高,效率高。

    计算机网络:CH6 应用层-FTP 协议.ppt

    计算机网络:CH6 应用层-FTP 协议 FTP(File Transfer Protocol)是互联网最早的协议,最初是 ARPANET 的组成部分,并早于 TCP/IP。FTP 的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。FTP 使用客户 -...

    计算机网络课件:5_8_3 应用程序体系结构与应用层协议.pptx

    计算机网络课件:应用程序体系结构与应用层协议 计算机网络是现代信息技术的基础设施,研究和应用网络技术是计算机科学和技术专业的重要组成部分。应用程序体系结构和应用层协议是计算机网络的核心内容,本节课将...

    应用层:介绍应用层的工作原理和技术,包括HTTP、FTP和SMTP等协议.md

    应用层:介绍应用层的工作原理和技术,包括HTTP、FTP和SMTP等协议

    计算机网络协议分析(数据层、网络层、传输层、应用层协议分析)

    **应用层协议分析** 应用层是用户直接交互的层级,协议如HTTP(超文本传输协议)用于网页浏览,FTP(文件传输协议)用于文件传输,DNS(域名系统)则负责将人类可读的域名转换为IP地址。HTTP是基于TCP的,保证了...

    VC++_应用层协议及编程实例

    HTTP协议是互联网上应用最广泛的应用层协议之一,主要用于Web浏览器和服务器之间的通信。在VC++中实现HTTP客户端,你需要理解HTTP请求的构造,包括GET、POST方法的使用,以及头信息的设置。同时,理解HTTP响应的解析...

    ccna/ccnp 习题之二 研究应用层和传输层协议

    当你从PC使用URL发起一个Web请求时,首先,浏览器解析URL,确定应用层协议(通常是HTTP或HTTPS)。然后,它向指定的服务器发送一个请求,这个请求包含在HTTP头部,可能包括方法(GET、POST等),请求URI,协议版本,...

    计算机网络应用层协议-测试题.pdf

    计算机网络应用层协议是计算机网络中的一层,负责在网络中提供各种服务,例如文件传输、电子邮件传输、域名解析等。应用层协议是计算机网络中最高的一层,直接面向用户,提供了各种服务,使用户可以方便地使用网络。...

    嵌入式系统TCP_IP应用层协议_11031410.rar

    嵌入式系统TCP/IP应用层协议是网络通信中的一个重要组成部分,尤其在当今物联网技术日益发展的时代,嵌入式设备与互联网的交互变得越来越普遍。应用层是TCP/IP协议栈的最高层,它负责处理特定的应用程序,如HTTP、...

    3-2019054001-张诗宇-Internet应用与应用层协议分析1

    实验报告“3-2019054001-张诗宇-Internet应用与应用层协议分析1”主要涉及互联网应用中的关键协议和工作流程,包括HTTP、DNS、FTP和SMTP。这个实验的主要目的是理解和掌握这些协议的作用、原理以及如何使用Wireshark...

    应用层协议综合实现

    【应用层协议综合实现】是计算机网络实验中的一个重要部分,主要目标是深入理解应用层协议的基本原理,并通过实际操作来观察服务应用中的活动链接变化。实验涵盖了多种关键概念和技术,如HTTP、FTP、DNS以及端口和...

Global site tag (gtag.js) - Google Analytics