Gzip

10 Ιούλ 2010 | Speed Optimization

Δεν επιτρέπονται τα σχόλια.


yslow

Ο χρόνος που χρειάζεται για τη μεταφορά μιας αίτησης και μιας απάντησης μέσω HTTP μπορεί να μειωθεί σημαντικά από τους προγραμματιστές ιστοσελίδων. Είναι αλήθεια πως ένας προγραμματιστής ιστοσελίδας δεν μπορεί να κάνει και πολλά για την ταχύτητα σύνδεσης του τελικού χρήστη, για την ποιότητα του ISP, για τη σχετική θέση χρήστη και διακομιστή. Υπάρχουν όμως και άλλες παράμετροι που μπορούν να επηρεάσουν τον χρόνο απόκρισης μιας σελίδας. Ένας από αυτούς τους παράγοντες είναι η συμπίεση του περιεχομένου κάθε αίτησης HTTP με αποτέλεσμα να γίνετε ταχύτερα η μεταφορά της ιστοσελίδας.
Αρχίζοντας με το HTTP/1.1, οι περιηγητές ενημερώνουν το διακομιστή για το αν μπορούν να δεχτούν συμπιεσμένα δεδομένα με ένα header Accept-Encoding μέσα στο HTTP Request.

Accept-Encoding: gzip, deflate

Αν ο διακομιστής δει αυτό το header στο Request που λαμβάνει, τότε ίσως να συμπιέσει τα δεδομένα που θα στείλει στον περιηγητή διαδικτύου χρησιμοποιώντας μια από τις μεθόδους που έστειλε με το Request. Ο διακομιστής με τη σειρά του προσθέτει ένα header στο HTTP response για να ενημερώσει τον περιηγητή για το συμπιεσμένο περιεχόμενο.

Content-Encoding: gzip

Το Gzip είναι το ποιο δημοφιλές και αποτελεσματικό λογισμικό συμπίεσης αυτή τη στιγμή. Η ανάπτυξη του έγινε από το GNU Project και έγινε πρότυπο από το RFC 1952. Η μόνη εναλλακτική μέθοδος συμπίεσης που μπορείτε να δείτε είναι το deflate, αλλά είναι λιγότερο αποδοτική και λιγότερο δημοφιλής.

Το Gzip γενικότερα μειώνει το συνολικό όγκο δεδομένων κατά 70%. Κατά προσέγγιση το 90% της κίνησης των δεδομένων περνά από περιηγητές που υποστηρίζουν το gzip. Αν χρησιμοποιείτε τον Apache η μονάδα ρύθμισης του gzip εξαρτάτε από την έκδοση. Ο Apache 1.3 χρησιμοποιεί το mod_gzip ενώ ο Apache 2.x χρησιμοποιεί το mod_deflate.

Υπάρχουν γνωστά προβλήματα από περιηγητές και εξυπηρετητές Proxy που μπορεί να προκαλέσουν μια αναντιστοιχία σε σχέση με το τι πραγματικά περιμένει ο περιηγητής διαδικτύου και τι πραγματικά παραλαμβάνει όσον αφορά το συμπιεσμένο περιεχόμενο. Ευτυχώς, αυτές οι ακραίες περιπτώσεις μειώνονται καθώς οι παλαιότερης τεχνολογίας περιηγητές διαδικτύου αντικαθιστώνται από του νεώτερους. Επίσης πρέπει να σημειωθεί ότι ο Apache βοηθά την κατάσταση με την προσθήκη απαντήσεων ανάλογα με την κατάσταση αυτόματα.

Οι διακομιστές αποφασίζουν τι θα συμπιέσουν με το gzip βάση του τύπου του αρχείου που διανείμουν κάθε φορά, αλλά συνήθως είναι πολύ περιορισμένοι στο τι μπορούν να συμπιέσουν. Στα περισσότερα Web Sites η συμπίεση γίνετε μόνο στα έγγραφα που περιέχουν HTML. Σημαντικό είναι επίσης να συμπιέζετε και τα αρχεία σεναρίων (javascript, vbscript) και τα αρχεία CSS, κάτι που δεν συμβαίνει στα περισσότερα Web sites. Επίσης είναι σημαντικό να συμπιέζετε ότι είναι σε μορφή κειμένου όπως είναι και τα αρχεία XML και JSON. Οι εικόνες και τα αρχεία PDF δεν θα πρέπει να συμπιέζονται διότι είναι ήδη συμπιεσμένα. Με το να συμπιέζετε ήδη συμπιεσμένα αρχεία, εκτός του ότι καταναλώνετε πόρους από το σύστημα σας υπάρχει πιθανότητα να αυξήσετε και το τελικό μέγεθος των αρχείων αυτών.

Η συμπίεση όσο περισσότερων αρχείων μπορείτε είναι ένας εύκολος τρόπος να κάνετε τη σελίδα σας ποιο ελαφριά.

Πηγή : Yahoo!

Περισσότερα για τον CorfuGmr

CorfuGmr

Ονομάζομαι Νίκος και ασχολούμαι με το internet και την κατασκευή ιστοσελίδων από το 1998. Σήμερα, μετά από 12 χρόνια γεμάτα με ενημέρωση, εκπαίδευση και εξάσκηση έχω ανεβάσει σε ένα άλλο επίπεδο τις γνώσεις μου και τις τεχνικές μου. Στα άρθρα μου προσπαθώ να σας δείξω τα μικρά, αλλά σημαντικά πράγματα που με έχουν ανεβάσει σε αυτό το επίπεδο.








Σχόλια



1 Σεπτεμβρίου 2010

hi there hows it going


Συγνώμη, τα σχόλια για αυτό το άρθρο είναι κλειστά.



^
Top
css.php