2017-03-15 5 views
0

私はzLibで作業しています。私の目標は自分のサーバーに送信されたデータをデコードすることです。私はこれを行う方法について理解しようとしています。クライアント側でのHTTPリクエストのデコード方法を理解するには?

Referer: http://google.com\r\n 
Content-Type: application/x-www-form-urlencoded\r\n 
Accept-Encoding: gzip, deflate\r\n 
\r\n 
ENCODED_DATA 

Accept-Encoding:ヘッダ内から抽出されたコンテンツを使用する:

は、私は(私の頭の上から)HTTPリクエストヘッダを持っていると仮定する。

Ctx = ENCODED_DATA

を想定し、これは、プレーンテキストCtxを取得するために、私はGzip(Ctx)、その後Deflate(Ctx)を適用する必要があることを教えていますか?

基本的には、クライアント側でHTTPリクエスト内にENCODED_DATAをデコードするにはどうすればよいですか?

答えて

1

まず、大規模なセキュリティバグが導入されるため、自分のWebサーバーを作成することをお勧めします。 特にあなたが標準を理解していない場合

第2に、という応答を送信するときに、サーバを送信するクライアントは、「Accept-Encoding:gzip、deflate」です.gzipまたはdeflateのいずれかの形式にすることができます。これは、リクエストの「ENCODED_DATA」部分とは関係ありません。

クライアントが "Content-Encoding:"ヘッダーも送信しない限り、要求内のデータは圧縮されません。 (ヘッダーには "gzip"または "deflate"と表示されます)。示されたリクエストから、あなたのデータはおそらく圧縮されていませんが、 "www-form-urlencoded"にあります。

標準を学ぶことを目標にしない限り(この場合、あなたはそれらを読んでいて、Webサーバーのコードも必要です)、このレイヤーでの演奏は絶対に避けてください。あなたのためにこの仕事をする何百ものWebフレームワークのうちの1つを使用してください。

+0

ウェブサーバーを作成していません。ローカルパイプサーバー用のクライアント側サーバーアプリケーション。また、HTTPリクエストから取得したデータはurlencodeされておらず、不正な文字が含まれています。コンテンツコーディングと何か関係があることはほぼ99%です。他のアイデア? – Droopy

+0

クライアントを作成している場合、有効なURLエンコードされたデータを送信していない場合、Content-Typeをurl-encodedに設定したのはなぜですか?サーバーがデータを正しくデコードするようにするには、送信する内容をサーバーに伝える必要があります。私はあなたが何をやろうとしているのか、なぜそうなのかはまだ分かりません。なぜなら、あなたはこれを行うためにライブラリ/フレームワークを使用するべきだからです。 – BraveNewCurrency

関連する問題