From Wikipedia, the free encyclopedia
Протокол за пренос на хипертекст (на английски: Hypertext Transfer Protocol, HTTP) е мрежов протокол, от приложния слой на OSI модела, за пренос на информация в компютърни мрежи. Създаден като средство за публикуване на HTML страници, протоколът довежда до формирането на Световната мрежа. Разработването на протокола е дело на Уеб консорциума (на английски: World Wide Web Consortium) и IETF (на английски: Internet Engineering Task Force) и завършва с публикуването на серия от документи (заявления за обсъждане) (на английски: Request for Comment, RFC), от които RFC 2616 (от юни 1999) е със статут на стандарт и описва HTTP/1.1.
В HTTP протокола се използват понятия като клиент (обикновено това са Web браузърите (или web навигаторите) – т.е. самите приложения, a не физическите хостове в мрежата) и сървър (това са уеб сървърите).
HTTP определя 8 различни клиентски метода за заявки:
*
вместо URL.Стандартът, описан в RFC2616, изисква HTTP сървърите да поддържат задължително GET и HEAD методите[1]. Повечето съвременни сървъри поддържат и POST метода.
Браузърът изпраща GET заявка към сървъра, която съдържа необходимите данни за сървъра да я изпълни, в следния пример са обяснени най-съществените данни:
Уеб сървърът изпраща ресурса, който е поискан, със следните заглавки:
Всеки сайт е написан с изходен код, който се разпознава от уеб браузъра и се интерпретира от него, за да могат потребителите да видят уеб страницата и нейните елементи на монитора.
HTTP метод | RFC | Заявката има тяло | Отговорът има тяло | Безопасен | Непроменен | Кеширане |
---|---|---|---|---|---|---|
GET | RFC 7231 | Да | Да | Да | Да | |
HEAD | RFC 7231 | Да | Да | Да | ||
POST | RFC 7231 | Да | Да | Да | ||
PUT | RFC 7231 | Да | Да | Да | ||
DELETE | RFC 7231 | Да | Да | |||
CONNECT | RFC 7231 | Да | Да | |||
OPTIONS | RFC 7231 | Незадължително | Да | Да | Да | |
TRACE | RFC 7231 | Да | Да | Да | ||
PATCH | RFC 5789 | Да | Да |
HTTP е безсесиен протокол – това означава, че резултата на всяка следваща заявка не зависи от резултата на предишната и така всички клиенти получават равноправно еднакви ресурси. Тази функционалност би създала проблем например в един електронен магазин, където потребителите би трябвало да бъдат идентифицирани с различните си потребителски имена и покупки.
Съществуват различни способи за приложението на сесии в HTTP. Най-надеждният от тях е употребата на бисквитки (cookies). При този способ сървърът залага бисквитките на клиентите със Set-Cookie в хедъра.
Във версиите 0.9 и 1.0 на HTTP, сървърът затваря връзката с клиента след всяка заявка. С версия 1.1. е въведен нов механизъм за поддържане на връзката наречен „keep alive“, при който връзката може да бъде използвана многократно. Този тип постоянна връзка премахва забавянето, получено при установяването на TCP връзката след първата http заявка. Това свойство на протокола обикновено трябва изрично да бъде настроено на сървърния софтуер (напр. директивата Keep-Alive в Apache уеб сървъра.
На 11 февруари 2015 г. е публикуван финален проект за следваща версия на протокола. За разлика от предходните версии, протоколът HTTP/2 е бинарен. Някои от особеностите му са: мултиплексиране и поставяне на приоритети на заявките, съкращаване на заглавията, паралелно зареждане на няколко елемента, поддръжка на активни push уведомления от страната на сървъра.[2]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.