プロキシ サーバーは基本的に 1 つの単純なことを行います: 要求した日付を読み込み (簡単にするために、残りの回答では Web サイトであると想定します)、それを送信します。Web サイトに直接接続していないため、ページへの要求を行う場所、つまりサーバーにいると見なされます。
プロキシ サーバーに接続する方法は複数あります。カスタム プロトコルを使用する方法もあれば、Web ブラウザーで http(s) を使用して接続する方法もあります。Firefox を使用してプロキシに接続したいとおっしゃっていたので、 hidemyass.comなどの Web プロキシが必要であると仮定します。
Web プロキシで Web ページを要求すると、次のことがこの順序で行われます。
- コンピューターが Web プロキシに要求を送信します。このリクエストには、ロードする Web サイトのアドレスも含まれています。
- プロキシは、要求した Web サイトを開きます。Web サイトは基本的に単なるデータのドキュメントなので、 などの簡単な関数を使用して開きます
file_get_contents()
。CURL
または、より多くのオプションとパフォーマンスの向上のために使用できます。このデータを変数に保存します。
- プロキシは Web サイトを取得しましたが、まだユーザーに表示できません。ほとんどすべての Web サイトは他のファイル (スタイルシート、スクリプト、画像、または他の HTML ドキュメントなど) を読み込むため、ユーザーのインターネット接続ではなく、プロキシを使用してこれらを読み込む必要があります。これを実装する最も簡単な (完全ではない) 方法は、おそらくデータ内のすべてを探して
http://
、プロキシ サーバーへの要求に置き換えることです。
- Web サイトをサーバー上の変数に保存したので、後はそれをユーザーに表示するだけです。画面にそのまま出力できます。要求されたファイルで正しいヘッダーを渡すようにしてください!
これは完璧なプロキシ サーバーではないことに注意してください。そのためには、たとえば、https リクエストをサポートし、AJAX リクエストをチェックする (または、多くのプロキシ サーバーが行うように Javascript を完全に無効にする) 必要があります。プロキシ サーバーを使用するだけの場合は、既存のもの (または、リンク先の Sourceforge プロジェクトのコメントを参照してください。これには、より良い代替手段へのリンクが含まれています) を参照することをお勧めします。しかし、これが面白いプロジェクトだと思ったら、頑張ってください!