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.

  1. 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
  1. 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

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads