我们身边有很多可以不用数据线就能对手机文件进行管理的APP,形态上有很多,例如传书,传视频,看文件列表等等。这类APP在PC端一般都不需要对应的客户端,只需要在浏览器中操作即可(有的APP为了提升体验,也会提供相应的PC客户端)。
浏览器不是用来看网页的吗,为什么可以做这样的无线文件管理的工具呢?这里来分析一下其中使用到的技术。
无线文件管理的使用场景是手机和PC在同一个局域网下。连接的过程一般是手机APP会提供一个IP地址,类似与192.168.1.139:80,这样的形式,这时,只需要在PC端的浏览器中输入这个地址,就可以连接手机,进行文件管理操作了。我们来看看这个过程中发生了什么:
首先,该局域网中的路由器为手机分配了一个在此局域网中的唯一标识IP,就如同为电话分配的电话号码。有了这个标识不同的设备才能在局域网中找到彼此,建立通讯。与我们平时看到的域名地址如www.baidu.com不同,这是一个纯数字组合的地址,域名地址是为了方便记忆,最后还是会被DNS(域名解析系统)服务器转换成IP地址。除了英特尔网,一般只有较大的局域网,例如公司网才会有专门的DNS服务器,而家用的局域网一般是没有DNS服务器的,所以暴露的地址都直接是纯数字形式的IP地址。这个IP地址并不是用户在使用这个功能时临时分配的,而是手机在连上局域网时就已经分配好的,这里只是借花献佛显示出来而已。IP地址后面还跟了一个数字,这个是端口号,因为要和应用建立通讯光靠IP地址是不够的,IP地址只帮助外部的请求找到了对应的手机,但是手机上的APP那么多,每个APP又有那么多功能,一个外部请求具体要和哪个功能建立通讯则是靠端口号来区分的。端口号和IP不同,它是在具体APP的网络通讯功能被启用时临时分配的。所以当一个无线文件管理的APP显示了这样的IP+端口号的信息时,它要告诉我们的是这台手机(IP)的无线文件管理功能(端口号)已经准备就绪,等待连接。
然后,我们在浏览器中输入这个地址确认时,就是向这个地址发了一个HTTP的请求,这和我们平时输入一个域名希望打开一个网页的请求没有什么本质区别。这个请求因为有IP和端口号的指引,精确的找到了对应手机的无线文件管理功能。手机侧在收到这个请求时,会将手机文件系统的目录信息(一般是根目录)读出来并数据化,将这些数据放在请求的响应中,送还给浏览器,为了方便用户查看,手机侧会将返还的文件系统的结构数据包装成漂亮的HTML的网页(当然有的APP做的也很简陋),最终展现给用户的是一个网页,里面显示了一个个文件(或目录)的链接,当用户点击这些链接时会再次向手机侧发送一个请求,这次的请求中则会携带用户点击的文件(或目录)的信息,手机侧则会根据请求的不同返回不同的文件结构信息。
这里所有的通讯都是建立在我们经常听到的TCP/IP协议上的,因为使用浏览器作为管理端,所以使用了HTTP协议(建立在TCP/IP协议基础上更高层的协议),如果APP提供了专用的PC管理客户端,那么也可以在TCP/IP协议之上,使用自己定义的协议。TCP/IP就像现实中的物流,只负责货物能够顺利到达收货人手中,至于货物是什么它可不管,收货方和发货方自己协商好就行了。
因为手机端和PC端的使用场景更为广泛,所以用它们来举例,但只要都遵循相同的协议,端可以是任何形态。
登录 | 立即注册