私は、javaでプロキシサーバーを書くという割り当てを持っています。 httpヘッダーを読んで変更し、提供されたブラックリストでいくつかのサイトをブロックできる必要があります。すでにJavaでプロキシサーバーをプログラミングする方法
私は、Javaの経験を持っていますが、HTTP、ソケット、接続、ポートなどで働いたことはありません。..
Googleのいくつかの例やチュートリアルを試す日のカップルが、私は見つけることは非常にシンプルかつ丼のいずれかであります完全な能力を持っているか、非常に非常に複雑で働いていない。
関連する例、リンク、チュートリアルなどを教えてもらえますか?
私は、オープンソースのプロキシサーバーを備えたWebページを見つけましたが、実際には機能していないか、非常に複雑であることに気が付きました。
ありがとうございました!
編集:
こんにちは、私は、ブラウザからの接続をリッスンし、すべての接続のための新しいスレッドを開始し、いくつかのコードを発見しました。私は、サーバー(URL)に要求を転送する方法であると、本当に困惑している
public class Main {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = null;
boolean listening = true;
int port = 10000; //default
try {
port = Integer.parseInt(args[0]);
} catch (Exception e) {
//ignore me
}
try {
serverSocket = new ServerSocket(port);
System.out.println("Started on: " + port);
} catch (IOException e) {
System.err.println("Could not listen on port: " + args[0]);
System.exit(-1);
}
while (listening) {
new ProxyThreadServer(serverSocket.accept()).start();
}
serverSocket.close();
}
}
部分は、それからの応答を取得し、ブラウザに応答を送信します。
だから、基本的に、私は4つのステップが必要です。
Listen and get the request from a browser.
Forward the request to the web-server.
Get the response from the web server.
Send the response to the browser.
余分な機能をヘッダと協力し、いくつかの接続をブロックしています。しかし、これらの4つのステップを開始するためにはうまくいくでしょう。
これは余りにも終わりがなく、ここで話題になるのは曖昧です。この小さな部分を書く方法について質問がありますか?プロキシサーバーの仕組みを理解していますか? _それは何ですか?_ –
こんにちは、これでいくつかの時間を過ごした後。プロキシの仕組みを理解しています。基本的にブラウザとウェブサイトの真中にあるべきです。双方向チャンネルとして機能する必要があります。基本的な必要性は、透明なトンネルにすることです。余分な機能は、ヘッダーを編集し、いくつかのWebサイトやIPをフィルタリングする機能です。 – Gil