問題タブ [http-compression]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
compression - HTTP経由で配信されたドキュメントをgzipで圧縮しない理由はありますか?
一部のブラウザではgzip圧縮されたコンテンツがキャッシュされないと誰かが言ったのを覚えていますか?これは本当ですか?
コンテンツ(ページ、javascript、cssファイル)をhtaccessでgzip圧縮しない理由は他にありますか?
asp-classic - ASP からの XML 応答を解凍/膨張させる方法
従来の ASP で XML 応答を解凍する方法について、誰かが洞察を提供できますか。いくつかのコードを渡され、それを機能させるように依頼されました。
どうやら応答が gzip を使用して圧縮されたので、データの処理を開始する前に XML 応答を圧縮解除する必要があります。
これについてどうすればいいですか?
iis-7 - iis7 での Gzip http 圧縮の問題
私の Web ホスティング プロバイダーは IIS7 を実行しており、gzip 圧縮を適切に機能させるために多くの問題を抱えています。ホスト管理者は、圧縮がインストールされていると言います。一部のオンライン チェック サービスを使用して圧縮を確認できますが、他のサービスでは確認できません。PageSpeed Firefox アドオンも、サイトが圧縮されていないと述べています。私は個人的に Squid プロキシの背後に座っていますが、web.config 設定でプロキシの問題を処理する必要があります。以下は、関連する web.config スニペットです。いろいろなサイトからの借用がほとんどです。何かご意見は?
gzip - Accept-Encoding ヘッダーがブラウザーによって送信されているが、サーバーによって受信されていない
私はこれを何週間もデバッグしようとしています。ホーム ネットワーク上のすべてのクライアントのすべてのブラウザが、「Accept-Encoding: gzip,deflate」を送信しています。ただし、そのヘッダーは、リクエストがWebサーバーに到達する前に、何らかの形でどこかにドロップされています。たとえば、http://www.whatsmyip.org/http_compression/は、「いいえ、お使いのブラウザは圧縮されたコンテンツを要求していません」と表示されます。
Fiddler を使用して、すべてのブラウザーが実際にヘッダーを送信していることを確認しました。ルーターを交換しました。すべてのウイルス対策ソフトウェアをオフにしました。
Brighthouse/Roadrunner (地元のケーブル ISP) は、フィルタリングを行っていないと述べています (この場合、なぜフィルタリングを行うのかわかりません)。
どんな提案でも大歓迎です!
wcf - IIS7でホストされているWCFを使用したGZip圧縮
皆さん、私に関する限り、この質問はEDIT 2で回答されています。これは、問題のIIS側の部分的な解決策にすぎませんが、私が探していたものです。
それで、私はこの主題に関する質問の小さな海に私の質問を追加するつもりです。
WCFサービスからの大きな石鹸応答でGZip圧縮を有効にしようとしています。これまで、 IISで動的圧縮を有効にするために、ここや他のさまざまな場所での指示に従いました。これがapplicationHost.configのdynamicTypesセクションです。
そしてまた:
なぜそれが必要なのかはよくわかりませんが。
念のため、そこにいくつかの追加のmimeタイプをスローしました。IClientMessageInspectorを実装して、Accept-Encoding:gzipを追加し、クライアントのHttpRequestsにデフレートしました。これは、フィドラーから取得したリクエストヘッダーの例です。
さて、これは機能しません。メッセージのサイズに関係なく、圧縮は発生しません(1.5Mbまで試行)。私はこの投稿を見ましたが、彼が説明しているように例外に遭遇したことはないので、彼が提案するCodeProjectの実装を試していません。また、これを機能させることになっている他の多くの実装を見てきましたが、それらを理解することはできません(たとえば、msdnのGZipエンコーダー)。エンコーダーまたはコードプロジェクトソリューションを実装する必要があるのはなぜですか?IISが圧縮を処理するべきではありませんか?
では、これを機能させるために他に何をする必要がありますか?
ジョニ
編集:WCFバインディングは投稿する価値があるかもしれないと思いましたが、それらが関連しているかどうかはわかりません(これらはクライアントからのものです):
編集2:この不思議な状況にいる他の人にとっては、部分的な解決策があります。つまり、IIS7で少なくともサービスからのsoapメッセージを圧縮するようになりました(クライアントで例外が発生しましたが、そのためにいくつかの解決策が投稿されています)。問題は、DynamicCompressionModuleがサーバーにインストールされていないことでした。実際に「インストール」するということは、私にとっては、単にこの行をapplicationHost.configのセクションに追加することを意味します。
(dllがそのディレクトリに存在すると仮定します。私の場合は存在します。)次に、WebサイトまたはサーバーのIIS7の[モジュール]セクションからモジュールを追加します。
json - WindowsAzure動的コンテンツでgzipHTTP圧縮を有効にする方法
WindowsAzureでホストされているWCFRestfulサービスでgzipHTTP圧縮を有効にしようとして失敗しました。このサービスは、GETおよびPOSTリクエストからのみJSONを返します。
たくさんのことを試したので、すべてをリストするのに苦労しましたが、(古いバージョンの紺碧などに関して)矛盾する情報を扱っていることに気づきました。きれいな状態から始めるのが最善だと思います。
Visual Studio用の2010年2月のツールを使用して、VisualStudio2008を使用しています。
だから、次のリンクによると..
..HTTP圧縮が有効になりました。次のページのアドバイスを使用しました(URL圧縮のアドバイスのみ)。
http://blog.smarx.com/posts/iis-compression-in-windows-azure
..しかし、圧縮されません。urlCompressionとhttpCompressionの違いがわからないのは役に立ちません。私は見つけようとしましたが、役に立ちませんでした!
Visual Studioのツールが、圧縮をサポートするバージョンのAzureより前にリリースされたという事実が問題になる可能性がありますか?どこかで読んだことがありますが、最新のツールを使用すると、公開時に使用するAzure OSのバージョンを選択できます...しかし、それが本当かどうかはわかりません。本当かどうかはわかりません。選択します。httpより前のバージョンを使用できますか?
ブローリーhttp圧縮モジュールも試しましたが、結果がありません。
これを達成する方法について、誰かが最新のアドバイスを持っていますか?つまり、AzureOSの現在のバージョンに関連するアドバイス。
乾杯!
スティーブン
更新:上記のコードを編集して、web.configスニペットのタイプを修正しました。
更新2:以下の回答に示されているwhatsmyip URLを使用して応答をテストすると、service.svcからのJSON応答が圧縮なしで返されますが、静的HTMLページはgzip圧縮で返されます。JSON応答を圧縮する方法についてのアドバイスはありがたいことに受け取られます!
更新3: 256KBを超えるJSON応答を試し、以下のコメントで説明されているように、JSON応答がこれよりも小さいことが問題の原因であるかどうかを確認しました。残念ながら、応答はまだ圧縮されていません。
http - gzipを使用したHTTP圧縮の信頼性はどれくらいですか?
YSlowは、サイトのパフォーマンスを向上させるためにHTTP圧縮を使用することを提案しました。ただし、Yahooが指摘しているように、いくつかの問題があります。
ブラウザとプロキシには既知の問題があり、圧縮されたコンテンツに関してブラウザが期待するものと受信するものに不一致が生じる可能性があります。幸いなことに、これらのエッジケースは、古いブラウザの使用が減少するにつれて減少しています。Apacheモジュールは、適切なVary応答ヘッダーを自動的に追加することで役立ちます。
最も一般的な問題は、プロキシの背後にあるIE6で発生することを理解しています。しかし、これらの問題は今日どのくらい一般的ですか?それを定量化するために、Webユーザーのおよそ何パーセントがHTTP圧縮でバグを経験しますか?
apache - ApacheでHTTP圧縮を有効にするにはどうすればよいですか?
.htaccessを使用して、CSSおよびJSフィールドのHTTP圧縮を有効にするようにApacheを構成するための推奨される方法は何ですか?Webの例で使用されているいくつかの異なるディレクティブを見てきました。私はこれらのいくつかを試しましたが、それでも動作させることができませんでした。Firebugを使用してHTTPヘッダーをチェックしています。
php - これらのイースロー規則でグレード A を取得するにはどうすればよいですか?
コンテンツ配信ネットワーク (CDN) を使用する
コンポーネントを gzip で圧縮する
エンティティ タグ (ETag) を構成する
Expires ヘッダーを追加する
Apache 構成にアクセスできない場合。
iphone - GZIPまたはdeflateを使用してobjective-c(iphone)でNSStringを圧縮/解凍します
Windows Azureで実行されているWebサービスがあり、iPhoneアプリで使用するJSONを返します。
残念ながら、Windows Azureはまだ動的応答の圧縮をサポートしていないようです(長い話)ので、圧縮された(GZIPを使用した)文字列を含む非圧縮のJSONパッケージを返すことで回避することにしました。
例えば
...ここで、valueは、JSONで表される複雑なオブジェクトの圧縮された文字列です。
これはサーバーに実装するのは本当に簡単でしたが、私の人生では、gzipで圧縮されたNSStringを非圧縮のNSStringに解凍する方法を理解できません。zlibなどで見つけることができるすべての例は、ファイルなどを扱っています。
誰かが私にこれを行う方法についての手がかりを与えることができますか?(サーバー側の実装をdeflateを使用するように変更できるので、deflateを使用したソリューションにも満足しています)。
ありがとう!!
スティーブン
編集1:ああ、ASIHTTPRequestがソースコードで次の関数を使用していることがわかります。
...そしてNSStringをNSDataに変換できることを知っているので、これが私をどこにでも導くかどうかを確認します!
編集2:残念ながら、編集1で説明した方法では、どこにもつながりませんでした。
編集3: base64のエンコード/デコードに関する以下のアドバイスに従って、次のコードを思いつきました。encodeGzippedStringは、ご想像のとおり、gzipで圧縮されてbase64文字列に変換される文字列「こんにちは。私の名前はStevenElliottです」です。残念ながら、NSLogを使用して印刷した結果は空白になります。