2017-12-11 9 views
0

このヘッダーの仕組みを理解することが難しいです。HTTPヘッダーエンコーディングを受け入れる

簡単に言えば、私の質問は、私は、特定のリソースへのポストを要求していた場合は第一ケース応じて、その後しましょう セイは、いくつかのJSON文字列で、第二の場合には応答が.jarファイルである

です。

1.クライアントにはaccept-header:gzipが含まれています。どちらの場合も、HTTPリクエストを送信している間にdeflateを実行します。

2.レスポンスが既に圧縮されている場合、既に圧縮されたデータに対する応答を圧縮しても問題は発生しませんか?

3.私がaccept-encoding:gzipを含む場合は、json文字列が受信される最初のケースで発生します。だから私は私の応答として(私は確信していない場合でも、私は確信していないと確信していない場合は、応答としてzipデータを受信します。私はzipデータは.jar/.zipのような圧縮された意味と思うとエンコードされたデータを意味する元のデータ、どちらがジッピングまたはエンコードされていますか?)

4.サーバーはContentypeヘッダーの応答を "application/octet-stream"として送信します。今すぐaccept-headerを使用する必要があります:gzip、deflate

+0

"accept-encoding"と言っていると思いますか? –

+0

はい、ありがとうございます。それを編集しました。 –

答えて

1
  1. はい、どうしてですか? JSONペイロードが大きければ、それを圧縮することは非常に意味があります。

  2. これは単なるオーバーヘッドです。ないZIPファイル -

  3. あなたを受け取るデータをgzipで圧縮されたかもしれません。詳細については、RFC 7230およびRFC 7231をお読みください。

  4. ペイロードのインターネットメディアタイプは、コンテンツコーディングとは完全に独立しています。

0

クライアントは、それが圧縮された応答を受け入れることができ、サーバに伝えるためにAccept-Encoding HTTPリクエストヘッダを使用することができます。

サーバーは、要求ヘッダーを使用して、圧縮された応答を送信する必要があるかどうかを判断できます。それはヘッダーを無視し、非圧縮のレスポンスを送信することができます(非効率的な場合もあります)。ヘッダーを無視し、圧縮された応答を常に送信することができます(クライアントにデコードできない応答を与える危険性があります)。

万一クライアント・ヘッダーを受け入れる含まれます:gzipで、両方のケースで

を収縮私はないに何らかの理由を考えることができない(と仮定すると、クライアントは圧縮された応答を処理できるサーバーを伝えますその事実は真実です)。応答がすでにzip形式で圧縮されている場合、今すでにzip形式のデータを超える応答が問題

を作成しませんビュンそれはバイト単位のほとんど、あるいはまったく節約のためのプロセッサパワーの無駄かもしれない何

これは、クライアントが圧縮された応答を処理できないと言う理由ではありません。それはサーバー上で行われる決定です。

json文字列が受信される最初のケースでaccept-encoding:gzipを含めるとどうなりますか?

はその後、クライアントは圧縮された応答が受け入れ可能であることをサーバーに語っています。

は、だから私は圧縮された応答を送信することがあります私の応答

サーバーとしてzip形式のデータを受け取ります。ヘッダを無視するかもしれない。

「または」ここにはありません応答

として、zip形式のデータまたは一部の符号化データを取得する場合、私はさえわかりません。

データは、圧縮アルゴリズムを使用してエンコードされます。

は、サーバーが「アプリケーション/ octet-streamの」ちょうどそれが送信されるデータの種類を把握していないサーバーを意味

としてContentypeヘッダとレスポンスを送信するとしましょう。 「これはJSONです」または「これはjarファイルです」と言っているのではなく、「私はこれが何であるか分からない、それはちょうど私にとってはバイトの流れです」と言っています。今

それが受け入れヘッダを使用することが必要である:GZIP、それは違いはありません

を収縮させます。

サーバーはデータを圧縮できます。圧縮されていないデータを送信することができます。 Accept-Encoding要求ヘッダーを使用して、2つの要求ヘッダーを決定できます。

関連する問題