HTTP (енгл.HyperText Transfer Protocol) јемрежни протокол који припадаслоју апликацијеОСИ референтног модела, представља главни и најчешћи метод преноса информација навебу.[1] Основна намена овог протокола је испоручивањеHTML докумената, тј. веб страница. HTTP је само један одинтернет протокола. Развој и стандардизацију HTTP протокола надгледајуW3C иInternet Engineering Task Force.
Развој HTTP-а је покренуоТим Бернерс-Ли уCERN-у 1989. године и сажет је у једноставан документ који описује понашање клијента и сервера који користе прву верзију HTTP протокола која је названа 0.9.[2]
Та прва верзија HTTP протокола убрзо је еволуирала у разрађенију верзију која је била прва верзија према далекој будућој верзији 1.0.[3]
HTTP/1 је финализован и потпуно документован (као верзија 1.0) 1996. године.[4] On je развијен као верзија 1.1 1997. године, а затим су његове спецификације ажуриране 1999. и 2014. године.[5]
Његову безбедну варијанту под називомHTTPS користи више од 76% веб-сајтова.[6]
HTTP/3 је предложени наследник HTTP/2;[12][13] користи га више од 20% веб локација;[14] сада га подржавају многи веб претраживачи (73% корисника).[15] HTTP/3 користиQUIC уместоTCP за основни транспортни протокол. Као и HTTP/2, он не застарева претходне главне верзије протокола. Подршка за HTTP/3 је прво додата уCloudflare иГугл кроуму,[16][17] и такође је омогућена уМозила фајерфоксу.[18]
HTTP је протокол за комуникацију измеђусервера и клијента, који функционише по принципузахтев/одговор. HTTP клијент, који је најчешћевеб прегледач, иницира пренос података након што успоставиTCP/IP везу с удаљеним веб-сервером на одређеном порту.Сервер константно ослушкује захтеве на одређеном мрежном комуникацијском порту (типичнопорт 80), чекајући да се клијент повеже и пошаље свој захтев. Захтев се састоји од основне HTTP команде (чија је синтакса прописана стандардом и која се састоји од назива команде, имена траженог документа и верзије подржаног HTTP-а) и заглавља које се састоји од одређеног броја редова текста који поближе одређују аспекте захтева.
Захтев клијента се обрађује на серверу и, у зависности од исправности захтева и могућности задовољавања истог, клијенту се шаље одговарајући одговор. Одговор се састоји од извештаја о статусу захтева (који се састоји од троцифреног кода и кратког дескриптивног текста статуса, нпр.200 ОК) и од конкретног одговора, уколико је захтев могуће задовољити. Одговор се састоји од заглавља, које је исте синтаксе као и заглавље захтева и даје основне податке о природи одговора, и од евентуалног конкретног садржаја који се тражио у захтеву. У зависности од верзије HTTP протокола као и од заглавља захтева, веза се може након тога прекинути, а може се иста веза искористити за слање новог захтева, ради уштеде времена.
УHTTP/1.0 засебнавеза са истим сервером се прави за сваки захтев за ресурсом.[20]
УHTTP/1.1 уместо тога TCP веза се може поново користити за више захтева за ресурсе (тј. HTML странице, оквири, слике,скрипте,табеле стилова итд.).[21][22]
HTTP/1.1 комуникације стога доживљавају мањекашњења, јер успостављање TCP веза представља знатне трошкове, посебно у условима великог саобраћаја.[23]
HTTP/2 је ревизија претходног HTTP/1.1 како би се одржао исти клијент-сервер модел и исте методе протокола, али са овим разликама у редоследу:
да се користи компримовани бинарни приказ метаподатака (HTTP заглавља) уместо текстуалног, тако да заглавља захтевају много мање простора;
да користите једну TCP/IP (обичношифровану) везу по приступном домену сервера уместо 2 до 8 TCP/IP веза;
да се користи један или више двосмерних токова по TCP/IP конекцији у којој се HTTP захтеви и одговори рашчлањују и преносе у малим пакетима да би се скоро решио проблем HOLB-а (блокирања зачеља линије).[note 1]
да би се додала могућност потискивања којом се омогућава серверској апликацији да шаље податке клијентима кад год су нови подаци доступни (без присиљавања клијената да повремено захтевају нове податке од сервера коришћењем методаанкетирања).[24]
HTTPS је верзија HTTP протокола која користи алгоритам SSL/TLS за заштиту садржаја захтева и одговора од евентуалног прислушкивања. Овај протокол обично користи порт 443.
Локација HTTP (и HTTPS) докумената се одређује помоћуURL адресе.
Терминхипертекст је сковаоТед Нелсон 1965. у пројектуКсанаду, што је заправо било инспирисано визијомВаневара Буша из 1930-их о систему „мемекс“ за проналажење информација и управљање заснованог на микрофилмовима, описаном у његовом есеју из 1945. године „Како можемо да мислимо“.Тим Бернерс-Ли и његов тим уCERN-у су заслужни за изум оригиналног HTTP-а, заједно са HTML-ом и припадајућом технологијом завеб сервер и корисничкиинтерфејс клијента који се зовевеб претраживач. Бернерс-Ли је први пут предложио пројекат „WorldWideWeb” 1989. године, сада познат каоWorld Wide Web.
Први веб сервер је покренут 1990. године.[25][26] Коришћени протокол је имао само један метод, односно GET, који би захтевао страницу са сервера.[27] Одговор са сервера је увек била HTML страница.[2]
^У пракси, ови токови се користе као вишеструке TCP/IP подвезе замултиплексирање истовремених захтева/одговора, чиме се у великој мери смањује број стварних TCP/IP веза на страни сервера, са 2..8 по клијенту на 1, и омогућава много више клијената који се могу симултано услужити.
^Benjamin, David.„Using TLS 1.3 with HTTP/2”.tools.ietf.org (на језику: енглески). Приступљено2020-06-02. „This lowers the barrier for deploying TLS 1.3, a major security improvement over TLS 1.2.”
da Cruz, Frank (јун 1986).„Kermit Protocol Manual”(PDF).KermitProject.org. The Kermit Project.CS1 одржавање: Формат датума (веза)
Glass, Brett (30. 5. 1988). „Xmodem Popular for Its Simplicity, Public Domain Status”.InfoWorld — преко Google Books.CS1 одржавање: Формат датума (веза)
He, Eric; Kettimuthu, Rajkumar; Gu, Yunhong; et al.,„Reliable UDP Variants”(PDF),Survey of Protocols and Mechanisms for Enhanced Transport over LONG FAT PIPES, стр. 6—11