上传是指将照片、音频文件等文件传输到网络上的服务器。我想知道上传作为网络/通信手段是如何发生的。例如,当我从我的电脑上传一张照片到我的 Facebook 个人资料时,这是否也意味着下载该文件,因为我也在我的网络浏览器(客户端)上显示它?
第二个问题,上传是下载的逆过程。但是,一旦我们将文件上传到服务器,我们就不必进行端口转发。另一方面,如果下载是从私有网络向服务器发送请求(访问外部),那么上传应该是从外部访问私有网络。这样,就应该进行端口转发。但即使我们不这样做,传输也可以正常工作。如何?
答案1
正确,要在浏览器中显示照片,必须先下载照片。浏览器会自动下载照片。下载的照片将在浏览器缓存中保存一段时间,以避免在短时间内重复下载同一张照片。
与服务器的通信始于从客户端到服务器发起 (TCP/IP) 连接(这称为握手)。 这意味着你(客户端)从任何通信开始,而不是服务器。
建立连接后,双方可以相互发送和接收数据。因此,您不需要任何端口转发来向服务器发送数据或从服务器接收数据,因为如上所述,服务器不会发起任何连接。
到下载来自(网络)服务器的数据,客户端(你)启动与服务器的连接,并通常发送HTTP 获取请求只是要求服务器提供特定数据(例如网页)。
到上传数据发送到服务器后,客户端再次启动与服务器的连接,然后通常会发送HTTP POST包含要上传的数据的请求。服务器知道如何处理这样的请求并存储数据。