CでHTTPプロキシサーバーを実装しています
.browser(クライアント)からHTTPリクエストヘッダーを取得し、それを解析してurl、ポート番号などを見つけています。次に、次の形式でリモート サーバーにリクエストを送信します:
GET / HTTP1.0\r\nホスト: www.gmail.com:80\r\n\r\n
しかし、実行中、プロキシ サーバーは機能しません。リモートサーバーから日付全体を読み取ります。
プロキシ サーバーからリモート サーバーへのヘッダーまたはサーバーからのデータの読み取りに問題がありますか。
void handle_connection(......)
{
......
//request send from proxy to remote server
sprintf(buffer, "%s %s HTTP/1.%d\r\nHost: %s:80\r\n\r\n"
, http_args[0], requested_url->file, requested_url->proto, requested_url->host);
//sending the request to remote server connection socket rfd
n = write(rfd, buffer, sizeof(buffer));
//reading data from the response of the server
while ((n = read(rfd, buffer, BUFFSIZE)) > 0) {
write(connfd, buffer, BUFFSIZE); //sending it to client web brownser
bzero(buffer, BUFFSIZE);
}
close(rfd);
}