2017-04-22 4 views
0

私はこれまでにMozillaのWebサイトからこれを読んでいましたが、クライアントサイドのコードがどのように動作するかについて質問がありました。WebデータはどのようにWebブラウザに表示されますか?

特に、Web開発のコンテキストでは、サーバー側とクライアント側の用語が使用されることがあります。クライアント側のコードは、ユーザーのコンピュータ上で実行されるコードです。Webページを表示すると、ページのクライアント側のコードがダウンロードされ、ブラウザによって実行され、表示されます。このJavaScriptモジュールでは、クライアント側のJavaScriptについて明確に話しています。

コードを「ダウンロード」し、ブラウザで実行して表示すると、どこにダウンロードされますか?一時的にダウンロードしたり、ユーザーのコンピュータに保存したりしていますか?

答えて

0

ファイルがダウンロードされ、キャッシュに保存され、表示されます。これらのファイルはhtml、css、JS、画像などです。 サーバ側はPHPなどです。これらはダウンロードされません。サーバ上でのみ実行されます。

0

すべてのブラウザには、ダウンロードされたスクリプト、スタイルシートこれらは一時的であり、ブラウザの対応する機能を介してユーザによって削除することができる。 Google Chromeの "clear browsing data"

This page explains the location of the temporary files downloaded by Chrome on various systems

+0

ありがとうございました。あなたが「YouTube」に行ってビデオを観るのであれば、それを少しだけ拡張するだけです。動画も一時的にダウンロードされていますか? – Bail3y

+0

いいえ、私の知る限り、これらのビデオはストリーミングされ、ローカルシステムに一時ファイルは残されません。 –

+0

すべてのブラウザがファイルシステム上にディレクトリを持っているわけではありません。たとえば、elinksにはキャッシュがありません。また、キャッシュが永久に無効になるように最新のブラウザを構成することもできます。また、通常、シークレット/プライベートブラウジングモードではキャッシュされません(少なくともディスクには格納されません)。 – phihag

0

クライアントでは、HTML、CSS、JavaScriptコード、画像や動画などのアセットは、通常はメインRAMのような種類のメモリに格納されます。このメモリは通常、タブを閉じるか、タブが非アクティブになるとすぐに再要求されます。

イメージなどのアセットをデコードした後、GPUメモリにコピーしてより高速にレンダリングすることができます。 3Dコードは、グラフィックスカードの命令に変換され、グラフィックスカード上に一時的に存在することもあります。

メモリが逼迫している場合、オペレーティングシステムはメモリをスワップしてディスクに書き出す可能性があります。詳細はvirtual memoryをご覧ください。

ブラウザにはディスクにキャッシュがあります。これは通常、最初のレンダリングでは使用されません(ページをレンダリングする前にディスクを待つ必要があるため)。プログラマは、HTTP Cache-Controlother headersを設定できます。キャッシュファイルをいつ削除するかは、ブラウザによって異なります。通常、古くなったり古いキャッシュサイズに達したり、ユーザーが手作業で削除したりすると、それらは削除されます。ブラウザーとユーザーは、キャッシュが実行されているかどうか、キャッシュがどの程度正確に実行されているかを設定します。

Proxy serversもキャッシュできます。一部の大企業では、インターネットのトラフィックを削減して制御するために、それらを使用していますこの場合、コードはサーバーからプロキシにダウンロードされ、プロキシから各クライアントにダウンロードされます。

HTML5 offline web applicationsは通常、より長い時間ディスクに保存されます。ブラウザのキャッシュとは異なり、オフラインのWebアプリケーションはブラウザによって削除されることは想定されていませんが、実際のブラウザは異なる動作をする可能性があります。ユーザーがオフラインWebアプリケーションのURLを入力すると、新しいバージョンの要求が送信される前にディスクからロードされます。対照的に、通常のブラウザキャッシュでは、リソースはディスク上に存在するか(HTTPヘッダーが正しくない場合は失効します)、またはダウンロードされます。

Service workersは、オフラインWebアプリケーションと同様に、HTTP要求を傍受するためにWebサイトによってインストールすることもできます。ディスクにlocalStorageというコード/アセットを格納して読み込むことができます。要約すれば、コードが格納される場所は、多くの要因に依存する。現在のコンピューティングアーキテクチャの性質により、コードはしばらくの間メインメモリに格納されます。幸いにも、あなたのWebアプリケーションは、実際にコードがどこにあるかを気にする必要はほとんどありません。ブラウザは自動的にそれを利用できるようにします。それにもかかわらず、キャッシュヘッダーを構成し、オフラインWebアプリケーションまたはサービスワーカーを使用することで、パフォーマンスが向上し、インターネットが利用できない場合でもWebサイトが利用できるようになります。

実際のWebサイトにキャッシュされているリソース(少なくともセットアップ時)を知りたい場合は、Webブラウザの開発ツール(多くのシステムでF12でアクセス可能)を使用できます。

Chrome developer tools: Network view

注どのキャッシュから(クロームは、メモリ内の1つのディスク上の1持っている)と言うコラムサイズ、いかなる場合:たとえば、ここにChromeで有効になってキャッシュを搭載したこの非常にページですファイルが来ています。

+0

ありがとうございます。ブラウザのキャッシングが有効になっているとします。ブラウザはすべてのhtml、css、jsなどのファイルをキャッシュしますか?または、それはより選択的で、他のファイルよりもいくつかのファイルだけをキャッシュしますか?例を挙げると、あなたがFaceBookを使い、各ステータスポストがページに動的に読み込まれているとしましょう。それらはRAMにダウンロードされるのかキャッシュされるのか、あるいはその両方ですか? – Bail3y

+0

@ Bail3yまず、すべてがネットワークカードにダウンロードされます。それ以降は復号化されます。現在のコンピューティングアーキテクチャでは、RAMで発生していますが、CPU、専用の暗号化カード、または将来のネットワークカード(理論上)で直接発生することはありません。 次に、いくつかのリソースはキャッシュされ、他のリソースはキャッシュされません。それはHTTPヘッダーとブラウザー構成に依存します。詳細な技術情報については、この回答のリンクに従ってください。たとえば、[HTTP Cache Controlヘッダー](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9)に従ってください。 – phihag

関連する問題