利用 http协议代替ftp协议进行数据传输

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://dgd2010.blog.51cto.com/1539422/1394077

Internet上的网络往往有内网,架构上大都是前端是防火墙+NAT,后端是内网的各个主机,因此要穿透防火墙进行传输需要对防火墙或NAT进行额外的配置。Internet上的两个Windows服务器之间传输数据,最长用就是FTP,其次还有HTTP等。Linux上还有SSH中的scp和NFS以及其他方法。古老的TFTP已经很少有人用了,或许思科的一些网络设备中还依然保留了TFTP,尽管现在思科的大多数设备也添加了对FTP的支持。

   由于FTP工作在被动模式时不仅需要将21作为FTP的控制(命令)端口,还要将20作为FTP的数据端口,因此在配置防火墙时比较麻烦,不如用http协议传输文件。因此可以利用原有的网站结合Alias的方法加目录访问控制来实现。   
   例如:原有网站为http://www.lightcdn.cn,现在想在此网站下开启一个基于HTTP的ftp,如访问http://www.lightcdn.cn/ftpoverhttp/就能下载其中的文件,但又不影响原有网站的目录结构(如有的网站根目录是SVN的一个checkout点)。    
# Linux上的Apache的写法:    
<VirtualHost *:80>    
   ServerAdmin bbs@lightcdn.cn
   DocumentRoot /www/html/mainweb    
   ServerName www.lightcdn.cn
   ServerAlias ftp.lightcdn.cn    
   Alias /ftpoverhttp/www/html/ftpoverhttp    
   <Directory "/www/html/ftpoverhttp">    
        Options Indexes FollowSymLinks #注释有Indexes才能列出目录内容。    
        AllowOverride None    
        Order allow,deny #注释:否则会报403错误。    
        Allow from all    
   </Directory>    
   #ErrorLog logs/ftp.lightcdn.cn-error_log    
   #CustomLog logs/ftp.lightcdn.cn-access_log common #注释:如果访问量很大全完可以去掉日志。    
</VirtualHost>    
# Windows上的Apache的写法:    
<VirtualHost *:80>    
   ServerAdmin bbs@lightcdn.cn
   DocumentRoot C:/WWW/mainweb    
   ServerName www.lightcdn.cn
   ServerAlias ftp.lightcdn.cn    
   Alias /ftpoverhttp C:/WWW/mainftp/ftpoverhttp    
   <Directory "C:/WWW/mainftp/ftpoverhttp">    
        Options Indexes FollowSymLinks    
        AllowOverride None    
        Order allow,deny    
        Allow from all    
   </Directory>    
   #ErrorLog logs/ftp.lightcdn.cn-error_log    
   #CustomLog logs/ftp.lightcdn.cn-access_log common    
</VirtualHost>    
附:根据SELinux的设计:    
   标准的非HTTPS端口多采用为:80,8008,8009    
   标准的HTTPS端口多采用为:443,8443

end

本文出自 “通信,我的最爱” 博客,请务必保留此出处http://dgd2010.blog.51cto.com/1539422/1394077

时间: 2025-01-02 07:14:08

利用 http协议代替ftp协议进行数据传输的相关文章

解析Ftp协议的两种工作模式

Ftp协议的两种工作模式:主动模式active和被动模式passive FTP 是一种数据传输协议 (File Transfer Protocol),它的连接模式有两种: 主动模式( active )和被动模式( passive ). 以下说明FTP的连接是怎样建立的: 在 active 模式下 (一般预设的模式): FTP client 开启一个随机选择的TCP port 呼叫 FTP server 的 port 21请求建立连接.当完成 Three-Way Handshake 之后,连接就成

Ftp协议的两种工作模式

Ftp协议的两种工作模式:主动模式active和被动模式passive FTP 是一种数据传输协议 (File Transfer Protocol),它的连接模式有两种: 主动模式( active )和被动模式( passive ). 以下说明FTP的连接是怎样建立的: 在 active 模式下 (一般预设的模式): FTP client 开启一个随机选择的TCP port 呼叫 FTP server 的 port 21请求建立连接.当完成 Three-Way Handshake 之后,连接就成

文件传输协议(FTP)必将消亡

文件传输协议(FTP)在RFC 959中定义,于1985年http://www.aliyun.com/zixun/aggregation/2952.html">10月发布.文件传输协议(FTP)被设计成为一个跨平台的.简单且易于实现的协议. 文件传输协议(FTP)有一个漫长的演化史,是互联网上最重要的应用之一,但时至今日,却已江河日下.本文作者从各方面列举了一些文件传输协议(FTP)为人诟病的缺点. 1.数据传输模式不合理 不考虑文件自身的内容,一味使用ASCII模式传输数据是不合理的.文

FTP协议的命令的使用(转)

  FTP 协议命令 如果想自己编写一个FTP客户端程序,首先得搞清楚FTP协议中的这些命令和用法. FTP COMMANDS          The following are the FTP commands:             USER <SP> <username> <CRLF>       登录的用户名             PASS <SP> <password> <CRLF>       密码         

Java实现上传下载的的功能,比用ftp协议有什么优点

问题描述 Java实现上传下载的的功能,比用ftp协议有什么优点 Function check() //定义一个检查函数{If(document.formAdd.fujian.value=="") //判断fujian是否存在{ Alert("请选择文件"); Return false;}Return ture;}public String upload(){ ... File dstFile = new File(dstPath); //在给定的目录下,创建一个文

怎样在java 代码中通过ftp协议实现远程压缩文件 哪位指点一二,小弟不胜感激呀

问题描述 具体情况是这样的: 服务器端有好多xml文件有几个G,在客户端要下载下来,由于文件太大,若加上网络不好,就会下载失败. 考虑到xml文件压缩后会少的很多,就想在下载前将其压缩, 问题就在 怎样在客户端通过ftp协议将服务器端的xml文件压缩呢? 现在用的是commons-net 链接的 各位朋友都说说有啥好的解决方案莫 问题补充:能否通过写sheel脚本来执行服务器上的xml文件压缩呢? 若能实现,怎样在java代码中 执行sheel脚本 让其压缩服务器上的文件呢 解决方案 这个从理论

Java语言实现简单FTP软件------&amp;gt;FTP协议分析(一)

FTP(File Transfer Protocol)就是文件传输协议.通过FTP客户端从远程FTP服务器上拷贝文件到本地计算机称为下载,将本地计算机上的文件复制到远程FTP服务器上称为上传,上传和下载是FTP最常用的两个功能.FTP使用传输层的TCP协议进行传输,因此客户端与服务器之间的连接是可靠的,而且是面向连接,为数据的传输提供了可靠的保证.FTP的目标有以下目标:   提高文件的共享性 提供非直接地远程操纵计算机  避免用户因主机之间的文件存储系统的差异而导致的变化 为数据的传送提供可靠

winform程序如何实现在规定的时间通过FTP协议读取服务器上的文本文件?

问题描述 winform程序如何实现在规定的时间通过FTP协议读取服务器上的文本文件?例如在Web.config里,设置每天8点读取服务器上的文件,应该怎么做,用Timer吗?程序里如何调用Web.config里的信息啊? 解决方案 解决方案二:namespaceConfigureRead{///<summary>/////自定义配置结点ftpServerGroup的处理程序///</summary>publicclassReadConfigInfo:IConfigurationS

《计算机网络:自顶向下方法(原书第6版)》一2.3 文件传输协议:FTP

2.3 文件传输协议:FTP 在一个典型的FTP会话中,用户坐在一台主机(本地主机)前面,向一台远程主机传输(或接收来自远程主机的)文件.为使用户能访问它的远程账户,用户必须提供一个用户标识和口令.在提供了这种授权信息后,用户就能从本地文件系统向远程主机文件系统传送文件,反之亦然.如图2-14所示,用户通过一个FTP用户代理与FTP交互.该用户首先提供远程主机的主机名,使本地主机的FTP客户进程建立一个到远程主机FTP服务器进程的TCP连接.该用户接着提供用户标识和口令,作为FTP命令的一部分在