HTTP

от Уикипедия, свободната енциклопедия

Направо към: навигация, търсене

Протокол за трансфер на хипертекст (англ.: 'hypertext transfer protocol', съкр. HTTP) е мрежов протокол за пренос на информация в Интранет мрежи и World Wide Web, първоначално създаден като средство за публикуване на HTML страници. Разработването на протокола е било координирано от W3C косорциума(World Wide Web Consortium) и IETF (Internet Engineering Task Force), завършвайки с публикуването на на серия от заявления за обсъжданеRFC, от които RFC 2616 (от юни 1999), което определя HTTP/1.1, HTTP версията в най-широка употреба понастоящем.

Съдържание

[редактиране] Основни понятия

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

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

HTTP определя 8 различни метода (не бива да се смесват с понятието метод в програмирането)

  • HEAD
  • GET
  • POST
  • PUT
  • DELETE
  • TRACE
  • OPTIONS
  • CONNECT

Предполага се че HTTP сървърите могат да изпълнят поне GET и HEAD методите и по възможност OPTIONS метода.

[редактиране] Механизъм на действие

[редактиране] GET заявка на клиента

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

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

[редактиране] Отговор на сървърът

Уеб сървърът изпраща съдържанието на html страницата, като изпраща и със същата заявка и картините (ако има такива ) които са реферирани в html кода. В отговора сървърът изпраща следните данни:

  • статус код -- обозначава успешното или неуспешно извършване на заявката.
  • date -- "възрастта на ресурса"
  • Expires --- "Време на годност" - времето до което страницата е валидна т.е. може да бъда "кеширана (запазена локално на клиента или друг прокси или кеш сървър"
  • Server: името на сървърното приложение и версията му
  • тип на документа
  • Set-Cookie запазва курабийка (cookie), която бива върната към сървъра при последваща заявка


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

[редактиране] Сесии

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

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

[редактиране] Постоянни връзки

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

[редактиране] Външни препратки

http://embaka.hit.bg/http.html

Взето от „http://bg.wikipedia.org/wiki/HTTP“.
Лични инструменти