FTP 协议和 HTTP 协议的比较

参考:http://www.oschina.net/news/28162/http-vs-ftp

以下列出了一些两者的不同点:

1、HTTP协议是用来浏览网站的,而FTP是用来访问和传输文件的,FTP文件传输有点批量上传和维护网站的意思,而HTTP文件传输更多的是为终端用户提供文件传输,比如电影、图片、音乐之类。

2、HTTP 和 FTP 客户端:通常的HTTP客户端就是浏览器,而FTP服务可以通过命令行或者用户自有的图形界面客户端。

3、HTTP 头:HTTP 头包含了 metadata ,比如说最后更改的日期、编码方式、服务器名称版本还有其他的一些信息,而这些在FTP中是不存在的。

4、FTP要比HTTP早出现10年左右。

5、数据格式:FTP能传输ACSII数据或者二进制格式的数据,而HTTP只用二进制格式。

6、HTTP中的流水线:HTTP支持流水线,这就意味着客户端可以在上一个请求处理完之前,发出下一个请求,其结果就是多次请求数据之前省掉了部分服务器客户端往返时延。而FTP并没有这项支持。

7、HTTP中的动态端口:FTP一个最大的问题就是它使用两个连接,第一个连接用来发送控制指令,当接受或者发送数据的时候,又打开第二个TCP连接。而HTTP在双向传输中使用动态端口。

8、HTTP中的持久连接:对一个HTTP会话来讲,客户端可以维护一个单个的连接并使用它进行任意数量的数据传输。FTP每次有数据的需要时都创建一个新的连接。重复的创建新的连接带来的体验并不好,因为每次创建连接都必须让双方握手验证,这消耗了很多时间。

9、HTTP中的压缩算法:HTTP提供了一个在一些压缩算法中客户端和服务器共同协商选择的办法。其中gzip可以说是最有影响力的一种,而FTP中并不存在这种复杂的算法。

10、HTTP支持代理:HTTP一个很大的特点就是支持代理,这种功能是构建在协议里的,而FTP并不支持。

11、而FTP也能脱颖而出的一点是这个协议是直接面向文件级别的。这以为着FTP有例如可以通过命令列出远程服务器上的目录列表,而HTTP没有这个概念。

12、速度:可能最通常的问题了:哪一个传输更快?

什么使FTP服务更快?

1、没有在发出的数据中加入meta-data,仅传输原二进制文件。

2、没有过度的分块编码

什么使HTTP服务更快?

1、重用已存在的持久连接,从而有更好的TCP表现。

2、流水线的支持使得从同一个服务器上请求多个文件更快。

3、自动的压缩机制使得传输的数据更少

4、没有命令/应答机制最大限度的减少了往返时延。

总结:当然最终的结果会因具体的情况而异,但我想说的是,单次传输一个静态的文件,很难衡量两者的区别对单个的小文件来说,FTP传输更快,当传输多个文件时,HTTP更快。

转载于:https://www.cnblogs.com/wjw334/p/6868010.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468568.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

线程基础知识_Synchronized_ThreadAPI_自定义锁_获取线程运行时异常

Synchronized synchronized包含monitor enter, monitor exit 2个JVM指令(遵循happens-before原则), 执行monitor exit之前必须存在monitor enter指令. 由于每个对象与一个monitor产生关联, 线程执行monitor enter时, 就会获取monitor的lock, monitor中存在计数器, 用于记录当前…

32位和64位系统区别及int字节数

一)64位系统和32位有什么区别? 1、64bit CPU拥有更大的寻址能力,最大支持到16GB内存,而32bit只支持4G内存 2、64位CPU一次可提取64位数据,比32位提高了一倍,理论上性能会提升1倍。但这是建立在64bit操作系…

在统计学中参数的含义是指_《统计学》名词解释及公式

章节主要内容学习要点1.1统计及其应用领域什么是统计学概念:统计学,描述统计,推断统计。统计的应用领域统计在工商管理中的应用。统计的其他应用领域。1.2数据的类型分类数据、顺序数据、数值型数据概念:分类数据&#xf…

2019深圳入户攻略

我上次说了,等我把户口办好了,我就把攻略写出来,给大家一个参考,今天刚好是我最后的一个步骤,去派出所把身份证给办了,好了,我以后就是深圳人了,来深圳快十年了,现在才真…

NIO之ByteBuffer_NIO之网络IO_与ChannelNetty初窥门径

NIO之ByteBuffer与Channel 传统IO:byte[] < inputStream < 文件 > outputStream > byte[] NIO:文件 > inputChannel <> buffer <> outputChannel > 文件文件 < inputChannel <> outputChannel > 文件文件复制, 并测试ByteBuffer常用…

ubuntu 12.04 samba 服务器搭建

为什么要搭建samba 服务器 我在 windows 下安装了个虚拟机,然后想两边同步下资料,原来虚拟机是可以共享文件的,可是不知道什么见鬼了,就是不行,没办法了,我只好拿出我的杀手锏,安装 samba 安装 samba 工具 安装samba:sudo apt-get install samba 安装smbclient:sud…

mp4 拍摄时间如何看_时间不多了,如何备考期末最有效?这些复习技巧,看了你就会了...

再过不到一个月就要过年了&#xff0c;虽然天气越来越冷&#xff0c;但是有阻挡不了年度大戏“期末考”的前进步伐&#xff0c;尤其是对于紧张复习之中的高考备考生而言&#xff0c;高三第一学期的期末考就可以算是对自己第一轮复习的一个检验&#xff0c;如果成绩不理想&#…

vue实战学习第二天

1.怎么运行别人的项目 步骤一&#xff1a;搭建脚手架&#xff1a;npm i -g vue-cli 步骤二&#xff1a;vue init webpack 不要一直默认回车&#xff0c;去除一些不必要的依赖&#xff0c;减少代码的编写难度 步骤三&#xff1a;下载依赖的文件 npm i &#xff08;可能有些人会…

Netty之自定义RPC

需求分析 使用netty实现方法远程调用, 在client调用本地接口中方法时, 使用反射进行远程调用, server执行完结果后, 将执行结果进行封装, 发送到client RPC调用模型: 1. 服务消费方(client)以本地调用方式调用服务 2. client stub 接收到调用后负责将方法、参数等封装成能够…

vue垂直布局_vue实现长图垂直居上 vue实现短图垂直居中

大致效果如下图&#xff0c;只考虑垂直方向。长图可以通过滚动条看&#xff0c;短图居中效果&#xff0c;布局合理html代码(vue作用域内)&#xff1a;css代码&#xff1a;.box{height: 100%;//如高度等于网页高度overflow: auto;display: flex;flex-direction: column;justify-…

samba 服务器搭建

为什么要搭建samba 服务器我在 windows 下安装了个虚拟机&#xff0c;然后想两边同步下资料&#xff0c;原来虚拟机是可以共享文件的&#xff0c;可是不知道什么见鬼了&#xff0c;就是不行&#xff0c;没办法了&#xff0c;我只好拿出我的杀手锏&#xff0c;安装 samba。这个在…

Codis的源码编译生成tar包

一、Go环境的安装 1、下载地址 https://golang.org/dl/2、解压 tar -zxvf go1.7.1.linux-amd64.tar.gz -C /usr/local 3、修改配置文件   vi /etc/profile     export GOROOT/usr/local/go     export GOPATH/usr/local/data/go     export PATH$PATH:$GOROOT/b…

一直想说的,技术职业化

最近后台有人一直跟我说&#xff0c;为什么不好好写一篇技术比较强的文章&#xff0c;说实话&#xff0c;最近时间比较紧张&#xff0c;早上 8 点出门&#xff0c;晚上12点左右到家。刚好今天整理了一个不错文章的列表&#xff0c;明天发出来&#xff0c;希望给学习的同学们有点…

MyBatis初级入门及常见问题

入门案例 创建maven工程 项目目录结构: 首先在maven的pom.xml导入Mybatis和MySQL的依赖坐标: <dependencies><!--Junit测试依赖--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</…

科沃斯机器人招股_科沃斯机器人首次公开发行A股股票的初步询价公告

随着科沃斯机器人公开发行A股股票&#xff0c;朋友圈都有谈论它的声音。那么小编就跟一跟风来给各位详细介绍一下目前科沃斯机器人首次公开发行A股股票的价格有关内容。希望下文能过给你们带来更多的收获哦。首次公开发行A股股票发行安排及初步询价公告保荐人(主承销商)&#x…

读书笔记:Information Architecture for the World Wide Web, 3rd Edition 北极熊 第一部分 1-3...

Introducing Information Architecture 信息架构简介 Chapter 1 Defining Information Architecture 信息架构的意义&#xff08;我们盖房子&#xff0c;之后&#xff0c;房子影响我们&#xff09; A DefinitionTablets, Scrolls, Books, and Libraries 石板、卷轴、书籍&#…

Mybatis执行流程分析_自定义简易Mybatis框架

自定义简易Mybatis框架 Mybatis执行流程分析 Mybatis代码编写流程: Mybatis配置文件加载过程: 需求分析及技术概述 根据上述的功能结构图, 得出如下需求: 1. 需要具有配置文件加载模块. 2. 支持使用构建者进行SessionFactory构建. 3. 支持使用工厂模式构建Session对象. 4.…

给大家推荐一个优质Linux内核技术公众号-Linux阅码场

作为一个Linux 技术公众号的作者&#xff0c;我觉得有义务推荐优秀的公众号&#xff0c;推广内容&#xff0c;希望对大家的学习有所帮助~Linux阅码场是一个专注Linux内核和系统编程与调试调优技术的公众号&#xff0c;它的文章云集了国内众多知名企业一线工程师的心得。无论你工…

图数据库_ONgDB图数据库与Spark的集成

快速探索图数据与图计算图计算是研究客观世界当中的任何事物和事物之间的关系&#xff0c;对其进行完整的刻划、计算和分析的一门技术。图计算依赖底于底层图数据模型&#xff0c;在图数据模型基础上计算分析Spark是一个非常流行且成熟稳定的计算引擎。下面文章从ONgDB与Spark的…

MyBatis动态SQL_多表查询_延迟加载_缓存

POJO包装传递对象 //POJO实体 public class QueryConditionObject {private User user;//user get,set方法 }//Dao 接口 public interface UserMapper{List<User> findByCondition(QueryConditionObject qco); }//UserMapper.xml中的select标签 <select id"find…