AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung PHP gzcompress(); Delphi ZDecompressStr ( ) Data error
Thema durchsuchen
Ansicht
Themen-Optionen

PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

Ein Thema von luisk · begonnen am 27. Mai 2016 · letzter Beitrag vom 30. Mai 2016
Antwort Antwort
Seite 4 von 5   « Erste     234 5      
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#31

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 29. Mai 2016, 12:02
ich hab das jetzt mal mit einer Standarddatei applications.html gemacht:
sie ist 1,40 KB (1.441 Bytes) lang. Es sieht demnach nicht nach Komprimierung aus:
Weder mit noch ohne der .htaccess-Datei

C:\Programme\curl>curl -I -H 'Accept-Encoding:gzip,deflate' http://localhost/applications.html
HTTP/1.1 200 OK
Date: Sun, 29 May 2016 09:59:03 GMT
Server: Apache/2.4.10 (Win32) OpenSSL/1.0.1i PHP/5.6.3
Last-Modified: Wed, 12 Nov 2014 15:49:59 GMT
ETag: "5a1-507ab591677c0"
Accept-Ranges: bytes
Content-Length: 1441
Content-Type: text/html
  Mit Zitat antworten Zitat
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#32

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 29. Mai 2016, 12:13
ich hab jetzt mal Deine Seite bei heise.de getestet:
Man sieht: es wird gezippt und das Blank hinter Encodeing: stört auch nicht:

C:\Programme\curl> curl -I -H "Accept-Encoding: gzip,deflate" http://www.heise.de/
HTTP/1.1 200 OK
Server: nginx
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
X-Cobbler: octo02.heise.de
X-Clacks-Overhead: GNU Terry Pratchett
Last-Modified: Sun, 29 May 2016 10:09:20 GMT
Expires: Sun, 29 May 2016 10:09:52 GMT
Cache-Control: public, max-age=32
Content-Length: 47236
Accept-Ranges: bytes
Date: Sun, 29 May 2016 10:09:27 GMT
Age: 7
Connection: keep-alive
Vary: User-Agent,Accept-Encoding,X-Forwarded-Proto,X-Export-Format,X-Export-Agent

Bei meinem Xampp-Apache ist also kein Gzip aktiv - und warum die host-Fehlermeldung ?
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#33

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 29. Mai 2016, 12:26
Dann ist das Gzip-Modul wohl doch nicht geladen.

Schau mal hier: https://stackoverflow.com/questions/...n-xampp-server

Wenn du Änderung an der Apache Config machst, musst du den Apache hinterher neustarten.

Noch ein Tipp: Entferne das <IfModule> aus der .htaccess. Dann kriegst du einen 500 Internal Server Error, wenn das Modul nicht geladen ist. Ist vielleicht besser.
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#34

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 29. Mai 2016, 13:08
so, hab jetzt die httpd.conf entsprechend angepasst
und nachdem ich noch die .htaccess wieder komplett entfernt habe, läuft es:

C:\Programme\curl> curl -I -H "Accept-Encoding: gzip,deflate" http://localhost/applications.html
HTTP/1.1 200 OK
Date: Sun, 29 May 2016 11:04:47 GMT
Server: Apache/2.4.10 (Win32) OpenSSL/1.0.1i PHP/5.6.3
Last-Modified: Wed, 12 Nov 2014 15:49:59 GMT
ETag: "5a1-507ab591677c0-gzip"
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 770
Content-Type: text/html

Vielen Dank für die Hilfe, Valle.
  Mit Zitat antworten Zitat
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#35

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 29. Mai 2016, 13:40
Klappt doch noch nicht ganz.
Bei php wird wohl noch nicht gezippt

C:\Programme\curl> curl -I -H "Accept-Encoding: gzip,deflate" http://127.0.0.1/SQL_Gateway/SQL_Abf...php?bef=Select...
HTTP/1.1 200 OK
Date: Sun, 29 May 2016 11:33:45 GMT
Server: Apache/2.4.10 (Win32) OpenSSL/1.0.1i PHP/5.6.3
X-Powered-By: PHP/5.6.3
Content-Type: text/html; charset=UTF-8

obwohl ich mal versucht habe hier php zu ergänzen:
Delphi-Quellcode:
<Directory "C:/your-server-root/manual"> #any path to which you wish to apply gzip compression to!
    <IfModule mod_deflate.c>
        AddOutputFilterByType DEFLATE text/html # or any file type you wish
      AddOutputFilterByType DEFLATE text/php
    </IfModule>
</Directory>

Delphi-Quellcode:
<Directory "C:/your-server-root/manual"> #any path to which you wish to apply gzip compression to!
    <IfModule mod_deflate.c>
        AddOutputFilterByType DEFLATE text/html text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript
    </IfModule>
</Directory>

Geändert von luisk (29. Mai 2016 um 13:45 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#36

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 29. Mai 2016, 14:17
weitere Erkenntnis:
wenn ich nun in mein php-Script folgende Zeile einfüge:
ob_start('ob_gzhandler');
und TIdHTTP.Compressor:=TIdCompressorZLib; zuweise
dann klappt es
Wenn ich TIdHTTP.Compressor:=nil; setze dann sehe ich, dass ein gezippter String kommt
So, später schaue ich mir dann mal WireShark ohne Firewall an.

Danke für die Hilfen.

Geändert von luisk (29. Mai 2016 um 14:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#37

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 29. Mai 2016, 14:29
Mich würde dennoch interessieren,
ob man das nicht auch mit einer Delphi-Funktion wie gZDecompressStr() hinbekommt.
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#38

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 29. Mai 2016, 14:37
Mich würde dennoch interessieren,
ob man das nicht auch mit einer Delphi-Funktion wie gZDecompressStr() hinbekommt.
Natürlich kriegt man das hin. Höchstwahrscheinlich ist es ein Encoding Problem. Du könntest man versuchen ein base64 Encode / Decode darüber laufen zu lassen. Damit hast du zwar wieder mehr Traffic (also das ist nicht sinnvoll für die Produktion), aber du kannst testen ob es ein Problem auf dem Übertragungsweg ist. Da kann ich dir aber nicht helfen; da kein Delphi.

obwohl ich mal versucht habe hier php zu ergänzen:
Du hast die Zeilen aber schon angepasst, oder? Der Pfad ist ja nur ein Beispielpfad. Außerdem würde ich das IfModule weglassen.

weitere Erkenntnis:
wenn ich nun in mein php-Script folgende Zeile einfüge:
ob_start('ob_gzhandler');
und TIdHTTP.Compressor:=TIdCompressorZLib;
dann klappt es
Wenn ich TIdHTTP.Compressor:=TIdCompressorZLib; weglasse, dann sehe ich, dass ein gezippter String kommt
So, später schaue ich mir dann mal WireShark ohne Firewall an.
Das kannste auch so machen, natürlich. Du könntest den Content-Encoding Header mit PHP dann auch selbst setzen um standardkonform zu bleiben.
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#39

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 29. Mai 2016, 14:41
Du könntest den Content-Encoding Header mit PHP dann auch selbst setzen um standardkonform zu bleiben.
Mich würde interessieren wie das geht. Das wäre mir lieber, wenn das klappt.

wenn ich ob_start('ob_gzhandler'); in php weglasse, wird nicht gezippt.

 AddOutputFilterByType DEFLATE text/php text/plain bringt nichts

Geändert von luisk (29. Mai 2016 um 14:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#40

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 29. Mai 2016, 15:34
bei das Entzippen über die Indy-Komponente funktioniert anscheinend nur,
wenn der Webserver das Zippen unterstützt:
daher:
Delphi-Quellcode:
if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'))
   ob_start('ob_gzhandler');
else
   ob_start();
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 5   « Erste     234 5      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz