向服务器传输文件(上传或下载)时,FTP与HTTP是两种最常用的应用层协议,这两个协议都是基于TCP协议之上。如果深入到数据包内(Packet)进行查看时,FTP与HTTP进行文件传输时有什么特征代码呢?
使用最常见的包截获软件WireShark来进行查看,可以发现对于FTP来说,文件的上传与下载分别有如下的特征:
 
对于FTP上传文件,有如下特征:
1、 TCP目标端口为21
2、命令为“STOR”关键字(STOR应该为Store之意)
关键字“STOR”后的参数,即是上传的文件名;
 
对于FTP下载文件,有如下特征:
1、TCP目标端口为21
2、 命令为“RETR”关键字(RETR应该为Retrieve之意)
关键字“RETR”后的参数,即是下载的文件名;
 
对于HTTP的文件传输来说,有如下的特征:
 
HTTP上传文件,有如下特征:
1、 TCP目标端口为80
2、 命令为“POST”关键字
3、 有键名filename,该键名之后的键值即为上传文件名
 
HTTP下载文件,有如下特征:
1、 TCP目标端口为80
2、 命令为“GET”关键字
但GET命令也表现出它的多样性。因为HTTP本身就是一种Web服务协议,使用GET命令的途径有许多,比如下载页面、下载CSS文件、下载JS文件、传递QueryString参数或者是从页面上下载一个图片、下载一个文件(.pdf .rar等非网页文件),所以,GET命令下载的文件具体是做什么用途,需要分析GET命令之后的文件名来判断。

wusir FTP与HTTP文件传输之TCP Packet解析的更多相关文章

  1. vsftpd-基于ftp协议的文件传输服务器软件

    第一部分:在Linux上部署vsftpd服务 1. vsftpd简介 1.1 vsftpd是什么? ftp(File Transfer Protocol)文件传输协议.(实现不同操作系统之间文件的传输 ...

  2. 巧用FTP命令进行文件传输

    巧用FTP进行文件传输   Internet作为现代信息高速公路已深入我们的生活,其中它所提供的电子邮件Web网站信息服务已被越来越多的人所熟知和使用.FTP作为Internet的功能之一,虽然没有像 ...

  3. Linux下常用的文件传输方式介绍与比较

    参考链接:http://mingxinglai.com/cn/2014/03/copy-file-in-linux/ 本文介绍了linux之间传输文件的几种方式,并通过具体实验测试了几种文件传输方式之 ...

  4. 【VSFTP服务】vsftpd文件传输协议

    vsftpd文件传输协议 系统环境:CentOS Linux release 7.6.1810 (Core) 一.简介 FTP(文件传输协议)全称是:Very Secure FTP Server.   ...

  5. Linux 上的常用文件传输方式介绍与比较

    ftp ftp 命令使用文件传输协议(File Transfer Protocol, FTP)在本地主机和远程主机之间或者在两个远程主机之间进行文件传输. FTP 协议允许数据在不同文件系统的主机之间 ...

  6. linux下常用文件传输命令 (转)

    因为工作原因,需要经常在不同的服务器见进行文件传输,特别是大文件的传输,因此对linux下不同服务器间数据传输命令和工具进行了研究和总结.主要是rcp,scp,rsync,ftp,sftp,lftp, ...

  7. Linux上常用的文件传输方式以及比较

    tp ftp 命令使用文件传输协议(File Transfer Protocol, FTP)在本地主机和远程主机之间或者在两个远程主机之间进行文件传输. FTP 协议允许数据在不同文件系统的主机之间传 ...

  8. C# FTP上传文件至服务器代码

    C# FTP上传文件至服务器代码 /// <summary> /// 上传文件 /// </summary> /// <param name="fileinfo ...

  9. linux下常用文件传输命令(转)

    因为工作原因,需要经常在不同的服务器见进行文件传输,特别是大文件的传输,因此对linux下不同服务器间数据传输命令和工具进行了研究和总结.主要是rcp,scp,rsync,ftp,sftp,lftp, ...

随机推荐

  1. cpuinfo

    在Linux系统中,如何详细了解CPU的信息呢? 当然是通过cat /proc/cpuinfo来检查了,但是比如几个物理CPU/几核/几线程,这些问题怎么确定呢? 经过查看,我的开发机器是1个物理CP ...

  2. Web前后端数据交换技术和规范发展史:Form、Ajax、Comet、Websocket

    第一阶段:Form web应用想要与服务器交互,必须提交一个表单(form).服务器接收并处理该表单,然后返回一个全新的页面. 缺点:前后两个页面需要更新的数据可能很少,这个过程可能传输了很多之前那个 ...

  3. eclipse 在线安装 properties 插件

    help - install new software - work with site http://propedit.sourceforge.jp/eclipse/updates/ 要耐心等待

  4. linux每天一小步---alias命令详解

    1 命令功能     alias命令用来设置指令的别名,alias命令设置的别名只限于该次登陆操作,若要每次登入即自动设好别名,可在/etc/profile或自己的~/.bashrc中设定指令的别名. ...

  5. Buffer Pool--内存总结1

    物理地址空间是处理器用来访问位于总线上的所有部件的集合.在32位处理器上,地址总线为32位,寻址空间为4GB.在使用PAE的32位服务器上,地址总线为36位,寻址空间为64GB.在64位的处理器上生产 ...

  6. PostgreSQL创建表及约束

    创建表 语法: create table table_name ( column_name type column_constraint, table_constraint table_constra ...

  7. django系列3.1--url路由配置, 正则, 分发include, 分组命名匹配

    一.url配置 在django项目中urls.py文件中就是为这个url调用的view(视图)函数之间的映射表,来配置访问的一个url执行什么代码 默认的基本格式: from django.conf. ...

  8. Java笔记(一)GC及类加载

    垃圾回收器(GC)    垃圾回收器:java中有一个线程,专门负责JVM中垃圾内存的释放    垃圾:没有引用的内存节点    垃圾回收的算法    注意:垃圾回收有自己的算法,我们是不能控制垃圾回 ...

  9. SpringMVC 的映射

    27.1.1 @RequestMapping使用 之前,我们是把@RequestMapping注解放在方法之上,用来给方法绑定一个请求映射.除此以外,@RequestMapping注解还可以放在类的上 ...

  10. netcat 工具传输文件

    因为电脑本地是 windows,多台机器间以 windows 为中介传输文件极度不爽.window 下的 MobaXterm 工具不能使用 sz 和 rz 命令, 而 SecureCRT 工具使用体验 ...