ХТТП компресија представља способност која се може имплементирати у wеб сервер и wеб клијент како би се боље искористио дозвољени пропусни опсег (енг. бандwигхт, прим. аут.) и омогућила већа брзина преноса података између њих.[1]

ХТТП подаци се компресују пре почетка слања са сервера: интернет претраживач објављује серверу које методе компресије подржава пре него што преузме одговарајући формат; претраживачи који не подржавају одговарајуће методе компресије ће преузети некомпресоване податке. Најчешћа схема за компресију подразумева гзип и дефлате, док целу листу доступних схема одржава ИАНА (Интернет Ассигнед Нумберс Аутхоритy)[2]. Поред тога, други девелопери праве нове методе компресије и укључују их у своје производе (нпр. Гоогле је направио СДЦХ схему и имплементирао је у свој Гоогле Цхроме претраживач и још неке Гоогле сервере).

Клијент/Сервер схема за компресију уреди

У већини случајева, не рачунајући СДХЦ, сарадња се одвија у два корака, што је описано у RFC 2616.

  1. Wеб клијент укљуцује "Аццепт-Енцодинг" поље у свој ХТТП захтев, у коме се налазе имена подржаних схема за компресију (тзв. цонтент-цодинг токенс)одвојених запетама.
GET /encrypted-area HTTP/1.1
Host: www.example.com
Accept-Encoding: gzip, deflate
  1. Ако сервер подржава једну или више схема за компресију, подаци који се шаљу могу се компресовати помоћу једне или више метода које подржавају обе стране. У том случају, сервер ће додати "Цонтент-Енцодинг" поље у свом ХТТП одговору у коме ће стајати имена корисћених схема, одвојених запетама.
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

Wеб сервер није у обавези да користи било који метод компресије - то зависи од унутрашњих подешавања самог сервера а може зависити и од унутрашње архитектуре интернет странице о којој се ради.

У случају СДЦХ користи се сарадња уз помоћ речника, што може укључити и додатне кораке, као на пример доwнлоад потребног речника са спољног сервера.

Проблеми који спречавају употрбу ХТТП компресије уреди

Цланак који су 2009. године објавили инжењери Гоогле- а Арвинд Јаин и Јасон Гласгов наводи да се више од 99 година изгуби[3] сваког дана због повећаног времена учитавања странице када садржај који корисници прихватају није компресован. Ово се дешава када се анти- вирус умеша у конекцију и онемогућава компресију, када се користе прокси сервери (код преопрезних претраживача), када су сервери погрешно конфигурисани и када багови у претраживачу онемогучавају компресију. Интернет Еxплорер 6, који користи ХТТП 1.0 (без додатака као што су ХТТП компресија или пипелининг), када се користи са проксијем -уобичајена конфигурација у корпоративном окружењу- био је главни кривац за коришћење некомпресованог ХТТП-а.[4]

Цонтент-цодинг токенс уреди

  • цомпресс - УНИX "цомпресс" метод за компресију
  • дефлате - злиб компресија (RFC 1950) би требало да се користи (у комбинацији са дефлате компресијом (RFC 1951)) као што је описано у RFC 2616. Међутим, имплементација у пракси варира између злиб компресије и чисте дефлате компресије.[5][6] Због тога се гзип показао као поузданији метод од марту 2011.
  • еxи - W3Ц XМЛ формат за компресију
  • гзип - ГНУ зип формат (описан у RFC 1952). Овај метод је најподржанији од марта 2011.[7]
  • идентитy - Није потребна никаква трансформација. Ово је подразумевана вредност за кодирање садржаја.

пацк200-гзип - Формат за Јава Архиве [8]

  • СДЦХ - Гоогле-ов метод за компресију (Схаред Дицтионарy Цомпрессион фор ХТТП)
  • бзип2 - бесплатан и опен соурце алгоритам за компресовање садржаја без губитака.
  • ПеерДист - Мајкрософтов метод за кеширање и враћање садржаја (описан у МС-ПЦЦРПТ)

Сервери који подржавају ХТТП компресију уреди

  • САП НетWеавер
  • Мицрософт ИИС: уграђен или користи независни модул
  • Апацхе ХТТП Сервер, преко мод_дефлате (насупрот имену тренутно подржава само гзип[5][9]) или мод_гзип
  • Цхерокее ХТТП сервер - гзип и дефлате компресије
  • Хиаwатха ХТТП сервер[10]
  • Орацле иПланет Wеб Сервер
  • Зеус Wеб Сервер
  • лигхттпд - преко мод_цомпресс и новијег мод_дефлате (1.5.x)
  • нгинx - уградјен
  • Апликације засноване на Торнадо wеб серверу - ако је "гзип" поље постављено на Труе у подешавањима апликације
  • Јеттy wеб сервер
  • ГеоСервер
  • Апацхе Томцат
  • ИБМ Wебспхере

Компресија ХТТП-а може се постићи и коришћењем језика за серверско скриптовање као што су ПХП или програмских језика као сто је Јава.

Референце уреди

  1. ^ „Усинг ХТТП Цомпрессион (ИИС 6.0)”. Мицрософт Цорпоратион. Архивирано из оригинала 14. 12. 2011. г. Приступљено 9. 2. 2010. 
  2. ^ RFC 2616, Сецтион 3.5: "Тхе Интернет Ассигнед Нумберс Аутхоритy (ИАНА) ацтс ас а регистрy фор цонтент-цодинг валуе токенс."
  3. ^ „Усе цомпрессион то маке тхе wеб фастер”. Гоогле Девелоперс. Приступљено 22. 5. 2013. 
  4. ^ Оптимизинг енцодинг анд трансфер сизе оф теxт-басед ассетс | Wеб Фундаменталс - Гоогле Девелоперс
  5. ^ а б „Цомпрессион Тестс”. Верве Студиос, Цо. Архивирано из оригинала 02. 01. 2015. г. Приступљено 19. 7. 2012. 
  6. ^ „Фреqуентлy Аскед Qуестионс абоут злиб - Wхат'с тхе дифференце бетwеен тхе "гзип" анд "дефлате" ХТТП 1.1 енцодингс?”. Грег Роелофс, Јеан-лоуп Гаиллy анд Марк Адлер. Архивирано из оригинала 26. 02. 2011. г. Приступљено 23. 3. 2011. 
  7. ^ „Цомпрессион Тестс: Ресултс”. Верве Студиос, Цо. Архивирано из оригинала 21. 03. 2012. г. Приступљено 19. 7. 2012. 
  8. ^ ЈСР 200: Нетwорк Трансфер Формат фор Јава Арцхивес.
  9. ^ Буг 53121 – Цонфусинг доцументатион, гзип анд дефлате
  10. ^ Еxтра парт оф Хиаwатха wебсервер'с мануал

Спољашње везе уреди