Http

Протокол за пренос на хипертекст (на английски: 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.

OSI модел
7. Приложен слой
NNTP • SIP • SSI • DNS • FTP • Gopher • HTTP • NFS • NTP • SMPP • SMTP • DHCP • SNMP • SSH • Telnet • Netconf • други...
6. Представителен слой
MIME • XDR • TLS • SSL
5. Сесиен слой
Named Pipes • NetBIOS • SAP • L2TP • PPTP
4. Транспортен слой
TCP • UDP • SCTP • DCCP • SPX
3. Мрежов слой
IP (IPv4, IPv6) • ICMP • IPsec • IGMP • IPX • AppleTalk • IS-IS • OSPF • RIP • BGP • IGRP • EIGRP
2. Канален слой
MAC адрес • ATM • SDLC • HDLC • ARP • CSLIP • SLIP • PLIP • IEEE 802.3 • Frame Relay • ITU-T G.hn DLL • PPP • X.25 • Суич
1. Физически слой
EIA/TIA-232 • EIA/TIA-449 • ITU-T V-Series • I.430 • I.431 • POTS • PDH • SONET/SDH • PON • OTN • DSL • IEEE 802.3 • IEEE 802.11 • IEEE 802.15 • IEEE 802.16 • IEEE 1394 • ITU-T G.hn PHY • USB • Bluetooth • Хъб

Основни понятия

В HTTP протокола се използват понятия като клиент (обикновено това са Web браузърите (или web навигаторите) – т.е. самите приложения, a не физическите хостове в мрежата) и сървър (това са уеб сървърите).

Методи на заявките

HTTP определя 8 различни клиентски метода за заявки:

  • HEAD – иска изпращане на заглавията отговарящи на посочения с URL ресурс. Отговорът на сървъра е идентичен с този на GET, но е с липсващо тяло. По този начин може да се вземе само метаинформацията, свързана с ресурса, спестявайки трансфера на целия файл.
  • GET – с него клиентът прави заявка за ресурс, зададен чрез URL. Могат да се изпращат и ограничено количество данни, закодирани директно в самия URL (отделени чрез въпросителен знак).
  • POST – позволява клиентът да изпрати данни на сървъра. Тази заявка обикновено се генерира при изпращането на уеб формуляр, а данните могат да бъдат: текст, написан от потребителя във формуляра; файл на клиентския компютър и др.
  • PUT – качва файл, който в бъдеще ще отговаря на посочения URL.
  • DELETE – изтрива посочения ресурс.
  • TRACE – сървърът връща получената заявка със статус OK. Позволява да се провери в какъв вид пристига заявката при сървъра и дали (и как) е била модифицирана по трасето от междинни прокси сървъри.
  • OPTIONS – сървърът трябва да отговори с поддържаните от него клиентски методи, съответстващи на зададения URL, или с поддържаните от сървъра методи като цяло, ако е зададено * вместо URL.
  • CONNECT – използва се при комуникация през прокси.

Стандартът, описан в RFC2616, изисква HTTP сървърите да поддържат задължително GET и HEAD методите. Повечето съвременни сървъри поддържат и POST метода.

Механизъм на действие

GET заявка на клиента

Браузърът изпраща GET заявка към сървъра, която съдържа необходимите данни за сървъра да я изпълни, в следния пример са обяснени най-съществените данни:

  • GET http://bg.wikipedia.org/wiki/HTTP --- доставя мрежовия ресурс (файл, скрипт и т.н. които е асоцииран с този URL)
  • Host: bg.wikipedia.org определя Интернет хоста и номера на порта на ресурса, който е заявен.
  • User-Agent: съдържа информация за приложението на клиент-хоста, извършващо заявката.
  • Referer: от коя страница е пристигнато на заявения ресурс (от търсачка, друг сайт, ако не е изрично забранено в настройките на браузъра)

Отговор на сървъра

Уеб сървърът изпраща ресурса, който е поискан, със следните заглавки:

  • статус код: обозначава успешното или неуспешно извършване на заявката.
  • Date: датата и часа на сървъра
  • Expires: „време на годност“ – времето, до което страницата е валидна, т.е. може да бъда „кеширана (запазена локално на клиента или друг прокси или кеш сървър“
  • Server: името на сървърното приложение и версията му
  • Content-type: тип на документа
  • Set-Cookie: запазва бисквитка (cookie), която бива върната към сървъра при последваща заявка

Всеки сайт е написан с изходен код, който се разпознава от уеб браузъра и се интерпретира от него, за да могат потребителите да видят уеб страницата и нейните елементи на монитора.

Обща таблица

HTTP метод RFC Заявката има тяло Отговорът има тяло Безопасен Непроменен Кеширане
GET RFC 7231 Http  Да Да Да Да
HEAD RFC 7231 Http  Http  Да Да Да
POST RFC 7231 Да Да Http  Http  Да
PUT RFC 7231 Да Да Http  Да Http 
DELETE RFC 7231 Http  Да Http  Да Http 
CONNECT RFC 7231 Да Да Http  Http  Http 
OPTIONS RFC 7231 Незадължително Да Да Да Http 
TRACE RFC 7231 Http  Да Да Да Http 
PATCH RFC 5789 Да Да Http  Http  Http 

Сесии

HTTP е безсесиен протокол – това означава, че резултата на всяка следваща заявка не зависи от резултата на предишната и така всички клиенти получават равноправно еднакви ресурси. Тази функционалност би създала проблем например в един електронен магазин, където потребителите би трябвало да бъдат идентифицирани с различните си потребителски имена и покупки.

Съществуват различни способи за приложението на сесии в HTTP. Най-надеждният от тях е употребата на бисквитки (cookies). При този способ сървърът залага бисквитките на клиентите със Set-Cookie в хедъра.

Постоянни връзки

Във версиите 0.9 и 1.0 на HTTP, сървърът затваря връзката с клиента след всяка заявка. С версия 1.1. е въведен нов механизъм за поддържане на връзката наречен „keep alive“, при който връзката може да бъде използвана многократно. Този тип постоянна връзка премахва забавянето, получено при установяването на TCP връзката след първата http заявка. Това свойство на протокола обикновено трябва изрично да бъде настроено на сървърния софтуер (напр. директивата Keep-Alive в Apache уеб сървъра.

Развитие

На 11 февруари 2015 г. е публикуван финален проект за следваща версия на протокола. За разлика от предходните версии, протоколът HTTP/2 е бинарен. Някои от особеностите му са: мултиплексиране и поставяне на приоритети на заявките, съкращаване на заглавията, паралелно зареждане на няколко елемента, поддръжка на активни push уведомления от страната на сървъра.

Източници

Tags:

Http Основни понятияHttp Методи на заявкитеHttp Механизъм на действиеHttp СесииHttp Постоянни връзкиHttp РазвитиеHttp ИзточнициHttpHTMLOSI моделW3CАнглийски езикКомпютърна мрежаМрежов протоколСтандартУеб

🔥 Trending searches on Wiki Български:

Майкъл ДжексънОбикновена катерицаСалар де УюниБорис IЛазерУран (планета)Нина ДобревНатриев бикарбонатИспанияВеселин МариновТригонометрична функцияБалиАтомни бомбардировки на Хирошима и НагасакиСвети Александър Невски (София)Асен ВасилевЛупаБългария във Втората световна войнаКонституция на БългарияЕлин ПелинПанагюрищеТруд (село)Анабел (кукла)Лятно часово времеВасил БиневЕлектрически токЛатвияКонстантин ЦаневИслямГрузияТартар (сос)АЕЦ „Козлодуй“Кримска войнаРадостин ВасилевТатариКалоянСърбияДен на Освобождението на България от османско игоСолна киселинаЮдаизъмЕргенътКокаинИранИван Асен IКафява мечкаСписък на най-големите градове в светаДо моето първо либеХектарРодопиПрисъединяване на България към НАТОСъюз на съветските социалистически републикиКиану РийвсДържавна агенция „Национална сигурност“Исак НютонНе ме оставяй (сериал)ХърватияБорис IIIБалтиморЙосиф СталинОловоСамуилПловдивДиана КовачеваИндустриална революцияРусияБаба ганушИсландияПитагорова теоремаПротеинПанайот Панайотов (певец)ПейсмейкърПравоъгълен триъгълникИстория славянобългарскаОбщомедияАвтоимунно заболяванеСписък на страните по телефонен кодКирил и МетодийПеперудиЙосиф СърчаджиевБозайници🡆 More