HTTP和FTP是两种网络传输协议的缩写,FTP是File Transportation Protocol(文件传输协议)的缩写,而HTTP则是Hyper Text Transportation Protocol(超文本传输协议)的缩写,它们是计算机之间交换数据的方式,也是两种最经典的文件下载方式。FTP专门用来下载,而HTTP的主要工作是用来浏览网页,不过也能用来下载。这两种下载方式的原理并不复杂,就是用户按照一定的规则(协议)和提供文件的服务器取得联系并将文件搬到自己的计算机中来。FTP下载方式最古老,在没有WWW的日子里,FTP就已经广为使用了。HTTP出现的较晚,但现在也应用的相当广泛。其实,如果你仅仅是为了下载而下载,那么你完全没必要把他们分的那么清,这两种使用的下载方式、下载工具几乎是一模一样的。 

使用Web浏览器时,这两个协议之间的差异几乎不会对使用的方便性及下载时间产生影响。不过,两者却拥有各自不同的结构。 
HTTP是一种为了将位于全球各个地方的Web服务器中的内容发送给不特定多数用户而制订的协议。也就是说,可以把HTTP看作是旨在向不特定多数的用户“发放”文件的协议。
HTTP使用于从服务器读取Web页面内容。Web浏览器下载Web服务器中的HTML文件及图像文件等,并临时保存在个人电脑硬盘及内存中以供显示。
使用HTTP下载软件等内容时的不同之处只是在于是否以Web浏览器显示的方式保存,还是以不显示的方式保存而已。结构则完全相同。因此,只要指定文件,任何人都可以进行下载。
另一方面,FTP是为了在特定主机之间“传输”文件而开发的协议。因此,在FTP通信的起始阶段,必须运行通过用户ID和密码确认通信对方的认证程序。 FTP下载和HTTP下载的区别之一就在与此。 不过,访问下载站点并进行FTP下载时,一般情况下不会出现输入用户ID及密码的窗口。这是因为使用了Anonymous FTP的结构。
所谓Anonymous FTP是指将用户名作为“Anonymous”(匿名之意)、将密码作为用户的邮件地址注册FTP服务器的方法。Web浏览器首先在用户名中输入Anonymous、并在密码中输入设定在自身的邮件地址来访问FTP服务器。
在下载站点的FTP服务器中,如果用户名是Anonymous,那么任何人都可以进行访问,用户无需一一输入用户名和密码也可以进行访问。

http和ftp下载的区别的更多相关文章

  1. FTP下载导致Zip解压失败的原因

    情形:网关通过FTP下载快钱对账文件时通过Apache下commons-net的commons-net-3.5.jar进行封装,对账文件中有中文和英文的文字,大部分情况下能够下载成功,而且也能解压成功 ...

  2. atitit.网络文件访问协议.unc smb nfs ftp http的区别

    atitit.网络文件访问协议.unc smb nfs ftp http的区别 1. 网络文件访问协议1 2. NETBios协议  2 3. SMB(Server Message Block)2 3 ...

  3. ftp下载目录下所有文件及文件夹内(递归)

    ftp下载目录下所有文件及文件夹内(递归)   /// <summary> /// ftp文件上传.下载操作类 /// </summary> public class FTPH ...

  4. 批处理:Windows主机通过FTP下载远程Linux主机上文件

    问题:在Windows上怎么写个批处理把多个文件FTP依次下载到本地某个目录. 批处理脚本示例: @echo off title Download db files. Don't close it!! ...

  5. (转)FTP操作类,从FTP下载文件

    using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Net ...

  6. java ftp下载文件

    1.使用官方正规的jar commons-net-1.4.1.jar jakarta-oro-2.0.8.jar 注意:使用ftp从windows服务器下载文件和从linux服务器下载文件不一样 2. ...

  7. [windows]快速从ftp下载最新软件包的批处理脚本

    背景 由于敏捷开发,快速迭代,我们项目一天会有三个版本,也就意味着我一天要去获取三次软件包.我负责服务端开发,所以我经常需要去拿最新的客户端.我们的客户端放置在一个公共的ftp上面.每天频繁登陆ftp ...

  8. C#FTP下载文件出现远程服务器返回错误: (500) 语法错误,无法识别命令

    如果下载多个文件的时候,有时候莫名其妙的出现500服务器错误,很有可能是没有设置KeepAlive 属性导致的. 出现应用程序未处理的异常:2015/1/6 11:40:56 异常类型:WebExce ...

  9. Python(x,y) 的 FTP 下载地址

    因为 Python(x,y) 软件包托管在 Google code 上 https://code.google.com/p/pythonxy/,所以国内比较难下载. 这里推荐一个 FTP 下载地址:f ...

随机推荐

  1. css3 rotate(1turn)的用法

    1turn:一圈,一个圆共一圈. 90deg = 0.25turn.

  2. golang goroutine

    goroutine-介绍 1)进程就是程序程序在操作系统中的一次执行过程,是系统进行资源分配和调度的基本单位2)线程是进程的一个执行实例,是程序执行的最小单元,它是比进程更小的能独立运行的基本单位.3 ...

  3. Git与GitHub学习笔记(六)使用 Github Pages 管理项目文档

    前言 你可能比较熟悉如何用 Github Pages 来分享你的工作,又或许你看过一堂教你建立你的第一个 Github Pages 网站的教程.近期 Github Pages 的改进使得从不同的数据源 ...

  4. Python正则的贪婪和非贪婪示例

    贪婪匹配 import re info = """ saas12 [STREAM] codec_type=audio111 [/STREAM]-- [STREAM] co ...

  5. redis的常用命令及实例讲解

    使用命令行操作redis 数据类型 字符串String 列表list 使用双向循序链表实现(LinkedList) 散列 Hash 一般应用于将redis作为分布式缓存,存储数据库中的数据对象 集合s ...

  6. GCC编译器原理(三)------编译原理三:编译过程(2-1)---编译之词法分析

    二.编译 引用文档:https://blog.csdn.net/chdhust/article/details/9040647 编译过程就是把预处理完的文件进行一系列词法分析.语法分析.语义分析及优化 ...

  7. 二十二、Linux 进程与信号---进程创建(续)

    22.2 父子进程操作文件 文件操作由两种模式: IO 系统调用操作文件 标准C IO 操作文件 看代码: #include <unistd.h> #include <string. ...

  8. .net DataTable序列化成Json

    /// <summary>/// DataTable序列化/// </summary>/// <param name="dt"></par ...

  9. antd card 组件实现鼠标移入移出效果

    鼠标移出: 鼠标移入: import React, { Component } from 'react' import { Card, Icon, Avatar } from 'antd'; cons ...

  10. webpack 配置全局 jQuery 对象

    将 lodash 添加到当前模块的上下文中 import _ from 'lodash' 但是你想每个模块都引入的话就特别麻烦,这里有插件可以帮助到您,只需在 webpack.config.js 中配 ...