インターネットコンテンツの書き換え

こんにちは、ハラジテリ!



これは、インターネットのパーソナライズに関する入門記事の続きです。 以下では、インターネットをパーソナライズするための同社の製品のベースとなる技術について簡単に説明します。



Avveaは、動的なWebページのコンテンツを転写する技術を開発しました。 この技術は新しいものではなく、リバースプロキシとして知られています。 ビジネスにおける高品質のリバースプロキシサーバーの例は、F5とジュニパーの開発です。 これらの各企業のリバースプロキシサーバーの開発技術は10年以上の開発を経ており、企業クライアントの限られた数の複雑なアプリケーションをサポートすることを目的としています。



アマチュアレベルのリバーシプロキシの例は、フリーウェアのGlype開発です。 そのようなサーバーはたくさんありますが、中でも最も人気があるのは、いわゆるアノニマイザーです。



いくつかの技術的な機能を考えてみましょう。 リバースプロキシサーバーの主なタスクは、ブラウザーインターフェイスとクライアントプログラムコードの間に仮想レイヤーを作成することです。 そして、この問題が解決されるほど、最終的なリバースプロキシサーバーはより良くなります。



画像



弊社の技術には、Webページのすべてのアクティブな要素(HTML、JavaScript、Adobe Flash、Javaなど)のすべてのインターフェイスプロパティとメソッドをインターセプトおよび書き換えすることが含まれます。 したがって、一種の「仮想ブラウザ」が実際のブラウザ内に作成されます。



すべてがHTMLでシンプルであり、無料のアノニマイザーでさえ静的HTMLを書き直すのに良い仕事をするなら、例えば、JavaScriptで物事はずっと複雑になります。 これまで、この問題を解決する統一的なアプローチはありませんでした。 私たちの開発は状況を変えました。



リバースプロキシサーバーのJavaScriptを書き換えるマシンの例で、新しいアプローチの主なアイデアを示します。 概略的には、マシンは3つの部分で構成されます:レクサー、パーサー、およびパッチャー。それぞれがシステムの独立した要素です。



画像



字句解析器はマシンの構文ベースであり、文字ストリーム内の言語要素を認識する役割を果たします。 パーサーは、レクサーに基づいて、入力ストリームを変数、関数、操作、言語自体などのコンポーネントに解析します。 パッチは、見つかったインターフェイスのプロパティとメソッドに適用されます。



これがどのように機能するかについてのいくつかの言葉。



入力ストリームは、式に基づいて処理されます。パーサーによる処理の観点からは、ユーザープログラムコードの基本的な分割不可能な構造です。 パーサーは、特殊な2スタックの逆アセンブリ/アセンブリメソッドを使用します。 一方のスタックにはオペランドがあり、もう一方のスタックには優先順位のある操作があります。 1つのスタック充填サイクル-1つの式。 これにより、システムはシングルパスおよびストリーミングであることが判明しました。 これは、ダウンロード時にブラウザにコードが提供されることを意味します。 つまり 最初に見つかった式は、コード全体がロードされるのを待たずに、パッチャーバッファーに完全に表示されるとすぐに処理されます。 これはすべて、システムのパフォーマンスと「明るさ」にプラスの効果をもたらしました。 パッチを適用したコードの合理的なキャッシングと組み合わせて、リバースプロキシサーバーによって書き換えられたサイトが直接よりも高速である場合に、効果を観察できる場合があります。



したがって、リバースプロキシサーバーは初めて作成されました。これは、実際のインターネットのサイトで正しく機能し、ブラウザーアプリケーションの限定的なセットでは機能しません。 これは、テクノロジーがすでに正常に使用できることを意味します。



特定の問題を解決するためのテクノロジーの使用方法については、次の記事で詳しく説明します。



All Articles