Uploading is described as transferring a file(s) like photo, audio file etc. to a server on the web. I wonder a couple of things how uploading occurs as network/communication means. For example, when I upload a photo from my computer to my facebook profile, does it also mean downloading that file because I display it on my web browser(client) too ?
Second question, uploading is the reverse process of the downloading. However, once we upload a file to a server, we don't have to make port forwarding. On the other hand, if downloading is sending requests to a server from a private network(accessing the outside), by this means, uploading should be accessing the private network from outside. That way, port forwarding should be performed. But even we don't do it, transferring is working. How ?
11 Answer
Correct, to display a photo in your browser, it has to be downloaded first. This is automatically done by your browser. The downloaded photo will be stored in the browser cache for a time to avoid repeated downloads of the same photo within a short time.
The communication with a server starts by initiating a (TCP/IP) connection from the client to the server (this is called the handshake). This means that you (the client) start with any communication, not the server.
When a connection has been established, both parties can send and receive data to/from each other. Therefore, you don't need any port forwarding to send/receive data to/from a server because, as mentioned, a server doesn't initiate any connections.
To download data from a (web) server, the client (you) initiates a connection to the server and typically sends a HTTP GET request which just asks the server to provide specific data (e.g. a web page).
To upload data to a server, the client again initiates a connection to the server and then typically sends a HTTP POST request which contains the data to be uploaded. The server knows how to handle such a request and stores the data.
For further information e.g. regarding TCP/IP connection establishment or the various HTTP request methods, consider the wikipedia articles about the Hypertext Transfer Protocol and the Transmission Control Protocol.
4