HTTP kompresija
From Wikipedia, the free encyclopedia
Remove ads
HTTP kompresija predstavlja sposobnost koja se može implementirati u web server i web klijent kako bi se bolje iskoristio dozvoljeni propusni opseg (eng. bandwight, prim. aut.) i omogućila veća brzina prenosa podataka između njih.[1]
HTTP podaci se kompresuju pre početka slanja sa servera: internet pretraživač objavljuje serveru koje metode kompresije podržava pre nego što preuzme odgovarajući format; pretraživači koji ne podržavaju odgovarajuće metode kompresije će preuzeti nekompresovane podatke. Najčešća shema za kompresiju podrazumeva gzip i deflate, dok celu listu dostupnih shema održava IANA (Internet Assigned Numbers Authority)[2]. Pored toga, drugi developeri prave nove metode kompresije i uključuju ih u svoje proizvode (npr. Google je napravio SDCH shemu i implementirao je u svoj Google Chrome pretraživač i još neke Google servere).
Remove ads
Klijent/Server shema za kompresiju
U većini slučajeva, ne računajući SDHC, saradnja se odvija u dva koraka, što je opisano u 2616.
- Web klijent ukljucuje "Accept-Encoding" polje u svoj HTTP zahtev, u kome se nalaze imena podržanih shema za kompresiju (tzv. content-coding tokens)odvojenih zapetama.
GET /encrypted-area HTTP/1.1 Host: www.example.com Accept-Encoding: gzip, deflate
- Ako server podržava jednu ili više shema za kompresiju, podaci koji se šalju mogu se kompresovati pomoću jedne ili više metoda koje podržavaju obe strane. U tom slučaju, server će dodati "Content-Encoding" polje u svom HTTP odgovoru u kome će stajati imena korisćenih shema, odvojenih zapetama.
HTTP/1.1 200 OK Date: Mon, 23 May 2005 22:38:34 GMT Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux) Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT Etag: "3f80f-1b6-3e1cb03b" Accept-Ranges: bytes Content-Length: 438 Connection: close Content-Type: text/html; charset=UTF-8 Content-Encoding: gzip
Web server nije u obavezi da koristi bilo koji metod kompresije - to zavisi od unutrašnjih podešavanja samog servera a može zavisiti i od unutrašnje arhitekture internet stranice o kojoj se radi.
U slučaju SDCH koristi se saradnja uz pomoć rečnika, što može uključiti i dodatne korake, kao na primer download potrebnog rečnika sa spoljnog servera.
Remove ads
Problemi koji sprečavaju upotrbu HTTP kompresije
Clanak koji su 2009. godine objavili inženjeri Google- a Arvind Jain i Jason Glasgov navodi da se više od 99 godina izgubi[3] svakog dana zbog povećanog vremena učitavanja stranice kada sadržaj koji korisnici prihvataju nije kompresovan. Ovo se dešava kada se anti- virus umeša u konekciju i onemogućava kompresiju, kada se koriste proksi serveri (kod preopreznih pretraživača), kada su serveri pogrešno konfigurisani i kada bagovi u pretraživaču onemogučavaju kompresiju. Internet Explorer 6, koji koristi HTTP 1.0 (bez dodataka kao što su HTTP kompresija ili pipelining), kada se koristi sa proksijem -uobičajena konfiguracija u korporativnom okruženju- bio je glavni krivac za korišćenje nekompresovanog HTTP-a.[4]
Remove ads
Content-coding tokens
- compress - UNIX "compress" metod za kompresiju
- deflate - zlib kompresija ( 1950) bi trebalo da se koristi (u kombinaciji sa deflate kompresijom ( 1951)) kao što je opisano u 2616. Međutim, implementacija u praksi varira između zlib kompresije i čiste deflate kompresije.[5][6] Zbog toga se gzip pokazao kao pouzdaniji metod od martu 2011.
- exi - W3C XML format za kompresiju
- gzip - GNU zip format (opisan u 1952). Ovaj metod je najpodržaniji od marta 2011.[7]
- identity - Nije potrebna nikakva transformacija. Ovo je podrazumevana vrednost za kodiranje sadržaja.
pack200-gzip - Format za Java Arhive[8]
- SDCH - Google-ov metod za kompresiju (Shared Dictionary Compression for HTTP)
- bzip2 - besplatan i open source algoritam za kompresovanje sadržaja bez gubitaka.
- PeerDist - Majkrosoftov metod za keširanje i vraćanje sadržaja (opisan u MS-PCCRPT)
Serveri koji podržavaju HTTP kompresiju
- SAP NetWeaver
- Microsoft IIS: ugrađen ili koristi nezavisni modul
- Apache HTTP Server, preko mod_deflate (nasuprot imenu trenutno podržava samo gzip[5][9]) ili mod_gzip
- Cherokee HTTP server - gzip i deflate kompresije
- Hiawatha HTTP server[10]
- Oracle iPlanet Web Server
- Zeus Web Server
- lighttpd - preko mod_compress i novijeg mod_deflate (1.5.x)
- nginx - ugradjen
- Aplikacije zasnovane na Tornado web serveru - ako je "gzip" polje postavljeno na True u podešavanjima aplikacije
- Jetty web server
- GeoServer
- Apache Tomcat
- IBM Websphere
Kompresija HTTP-a može se postići i korišćenjem jezika za serversko skriptovanje kao što su PHP ili programskih jezika kao sto je Java.
Remove ads
Reference
Spoljašnje veze
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads