本节我们掌握FTP协议的数据包格式,为编码实现奠定基础。我们先看看控制命令的格式。当用户端通过控制命令通道想服务器端发送数据后,服务器端一定会产生回复。回复主要有三个目的,首先是让客户端确定服务端收到了消息,其次是通知客户端请求是否能被接收,第三通知客户端当前服务器的状态。
数据包格式的组成特点是数字与文本信息相混合。服务器返回给客户端的数据包中一定包含回复码,该数值用来通知客户端数据包的格式和内容。不同的服务器在回复的数据包中,同样目的的数据包回复码一定相同,但是字符串内容可能会有所不同,因此对数据包的解读必须根据回复码进行。回复码包含三位数值,每个数字对应不同意义,对于回复码“xyz”,第一位数字是x,第二位是y,第三位是z,下面我们依次看他们对应的含有。
接下来看数字y的含义:
数字z是对数字y含义的进一步说明。当客户端收到的回复数字码为530时表示请求被永久拒绝,同时这是有关登陆方面的请求被拒绝,0表示被拒绝情况的进一步说明,下面是一次客户端与服务器连接登陆时的会话情景:
还有不少命令我们没有标明,下一节我们通过抓包的方式来查看ftp数据包格式以及详细的连接沟通以及数据传输过程。
更多详细内容和视频讲解请点击阅读原文