質問: ファイルのアップロードは実際にどのように機能しますか? アップロードは、写真や音声ファイルなどのファイルをweb上のサーバーに転送することとして説明されています。ネットワーク/通信手段としてアップロードがどのように行われるのか、いくつか疑問に思います。たとえば、コンピューターからfacebookプロファイルに写真をアップロードする場合、webブラウザー(クライアント)にも表示するため、そのファイルをダウンロードすることも意味しますか?2番目の質問、アップロードはダウンロードの逆のプロセスです。ただし、ファイルをサーバーにアップロードすると、ポート転送を行う必要はありません。一方、ダウンロードがプライベートネットワークからサーバーにリクエストを送信する(外部にアクセスする)場合、これにより、アップロードは外部からプライベートネットワークにアクセスする必要があります。このように、ポート転送を実行する必要があります。しかし、私たちがそれをしなくても、転送は機能しています。どうやって ?
回答: 正解です。ブラウザに写真を表示するには、最初に写真をダウンロードする必要があります。これはブラウザによって自動的に行われます。ダウンロードした写真は、同じ写真が短時間で繰り返しダウンロードされないように、しばらくの間ブラウザのキャッシュに保存されます。 サーバーとの通信は、クライアントからサーバーへの(tcp/ip)接続を開始することから始まります(これはハンドシェイクと呼ばれます)。これは、you(クライアント)がサーバーではなく、任意の通信から開始することを意味します。 接続が確立されると、両方の当事者が相互にデータを送受信できます。したがって、前述のように、サーバーは接続を開始しないため、サーバーとの間でデータを送受信するためにポート転送は必要ありません。 (web)サーバーからdownloadデータに、クライアント(あなた)はサーバーへの接続を開始し、通常http getリクエスト。サーバーに特定のデータ(webページなど)を提供するように要求するだけです。 サーバーにuploadデータを送信するために、クライアントは再びサーバーへの接続を開始し、通常はhttppostを送信しますアップロードするデータを含むリクエスト。サーバーはそのような要求を処理する方法を知っており、データを保存します。 詳細については、例: tcp/ip接続の確立またはさまざまなhttp要求方法については、 ハイパーテキスト転送プロトコル および 伝送制御プロトコル に関するウィキペディアの記事を検討してください。