HTTP протокол, видове заявки, уеб сървъри и уеб браузъри

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 уеб сървъра

 

  • Уеб сървър

Уеб сървърът (на английски: Web server) е приложна програма, която позволява на даден компютър да предоставя информация на други компютри, под формата на страници с хипертекст.

Уеб сървърът предоставя информация на клиент под формата на HTML документ. За пренасянето на информацията се използва протокола HTTP. Често Уеб сървърът се използва за предоставяне на информация и в други формати - най често това са изображения във форматите PNG, JPEG и GIF; XML документи и др.

Най-популярните Уеб сървъри са Apache и lighttpd.

 

Популярни Интернет-браузъри

 

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

Браузърът се свързва с уеб сървър основно използвайки HTTP протокол за разглеждане на уеб страници.

URL (uniform resource locator универсален указател на ресурсите) е адресът на някоя страница започваща обикновено с http: за HTTP достъп (има също и криптирана връзка започваща с https). Многото различни браузъри поддържат и други URL типове кореспондиращи протоколи. ftp: за FTP (file transfer protocol), rtsp: за RTSP (real-time streaming protocol).

Файловият формат за уебстраница е HTML (hyper-text markup language), който се идентифицира с HTTP протокол ползващ MIME стандарт. Като цяло браузърите поддържат картинки и текст, но основните типове картинки, които се поддържат са JPEG, PNG и GIF. Поддръжката на някои типове файлови формати в браузерите се добавят чрез плъгини. Комбинацията от HTTP и URL протокол позволяват на дизайнера на уеб страница да закрепи картинки, анимация, видео, звук и поточна информация в уеб страницата.

Най-използваните такива програми са Internet Explorer и FireFox. Те трансформират кода на който са написани уеб страниците, за да ни покажат комбинация от текст, графика, снимки, видео и звук.

Други популярни програми за разглеждане уеб страници са Opera и Safari.

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

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

 

  • Уеб дизайн

Уеб дизайн е аранжиране елементите на един сайт - хипертекст (линкове), компютърна графика, компютърна анимация, звук, по определен начин за представяне на сайта след това от уеб браузър, най-често по визуален път. Уеб дизайнът включва изработване на една или повече уеб страници, които се организират чрез набор от вътрешни препратки (хипер връзки).

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

Исторически протоколът за изработването на уеб страници е измислено от Европейски лаборатории за ядрени изследвания CERN. Първоначално уеб страниците са били използвани като вътрешна система за каталогизиране и свързане на отделени един от друг текстове на сървърите на ЦЕРН. В последствие поради изключителното си удобство по този начин да се свързват текстове чрез хипер връзки идеята бързо набира скорост и скоро след това се появява първият графичен браузър Gopher, който при пускането си е бил невеоятен хит, поради възможността си да представя графично хипертекста, позволявайки не само форматирането му, но и използването на картинки. В последствие се появяват по-модерни браузъри с които WWW (World Wide Web) започва да доминира над по-старите стандарти и продължва да съществува и до днес. Първият създаден уеб сайт се е намирал на адрес info.cern.ch

В последните години уеб дизайна включва все повече допълнителни елементи, които преди не са се използвали, като например интерактивни флаш анимации, използване на стилове (CSS), оптимизиране на кода за интернет търсачките и много други. Възможността на компютърно генериране на хипертекст чрез изпълнявани на сървъри програми или скриптове добавя още повече възможности към стандартните уеб страници, като най-често това е използването на бази данни, които чрез тези програми и скриптове информацията от тях се обработва в подходящ вид и се визуализира като уеб страница. Уеб страници използващи активно и разчитащи най-вече на програми и скриптове намиращи се на отделачен сървър се наричат уеб базирани приложения, като при този тип приложения целият програмен код се намира на отдалечен сървър, а уеб страниците се използват само като интерфейс за визуализиране на отговорите от заявките, както и за подаване на нови заявки.

Много често дизайнерите приемат уеб дизайна за подобен на графичния дизайн, използван в печатните издания и се стремят да създават уеб страници, които да изглеждат еднакво за всички потребители. Като концепция уеб дизайна много се различава от печатната реклама, където има фиксиран размер на хартията и всичко би следвало да бъде направено точно до милиметър. При уеб дизайна е грешно да бъде използван такъв подход, защото изходното устройство не е предварително известно, т.е. даден посетител на уеб страница може да визуализира тази уеб страница чрез същият уеб браузър както този, който я е създал, но също така може да използва и коренно различен софтуер за визуализация, например браузър на мобилен телефон или да ако е незрящ просто да е слуша чрез компютърен четец. Затова е препоръчително уеб страниците да се създават като уеб страници, като се спазват стандартите за тях, а не да се създават за да имитират печатни издания.

Друг често срещан проблем е конфликта между използваемост и оптимизиране за интернет търсачките. Докато графичните дизайнери смятат че най-важното за една уеб страница, това е как изглежда, то консултантите оптимизиращи страниците за търсачките настояват че най-важното е сайта да се позиционира максимално добре. В крайна сметка истината е някъде по средата, като е важен баланса между двете концепции. От една страна разбира се е важно една уеб страница да бъде намирана лесно чрез интернет търсачките, защото ако не бъде намирана от никого то тя е безполезна за всички, от друга страна ако даден сайт не е оформен добре графично самото му намиране не би имало смисъл ако не съдържа полезна и точна информация за търсещият.

 

  • HTML

HTML е съкращение от HyperText Markup Language (буквално "Хипертекстов език за маркиране"). Създаден е в края на 80-те години от англичанина Тим Бърнърс-Лий, който се опитва да изнамери нов метод за обмяна на информация с колегите си учени от Европейската Лаборатория по Физика на Елементарните Частици в Женева. Същността на неговия метод е създаване на текстови документи, обвързани помежду си с хипервръзки, които да могат да се прехвърлят чрез мрежата до отдалечен потребител. Така се появява необходимостта от специален език за създаване на този вид документи.
Организацията за стандартизиране на HTML се нарича World Wide Web Consortium (официален сайт www.w3.org). Към нея се отправят всички предложения за допълване и изменение на HTML.

Последната версия на езика е HTML 4.01. World Wide Web Consortium подготвиха и следващото поколение на HTML, което се нарича XHTML (Extensible HiperText Markup Language).

Между HTML и XHTML съществуват няколко различия:

1. В HTML няма значение дали таговете (командите на езика) се изписват с големи или малки букви. В XHTML има изискване таговете да се изписват с малки букви. Например командата за нов ред e BR, като буквите са затворени в ъглови скоби (както всички команди на езика). В HTML командата може да се изпише така: <BR>. В XHTML е задължително буквите да са малки: <br>.

2. HTML не изисква затварянето на стойностите на командните атрибути в кавички. В XHTML съществува изискване за поставяне на двойни кавички. Например атрибута за ширина на таблица, който е width, ако предположим, че трябва да е със стойност 150 пиксела, може да се изпише в HTML така: width=150. В XHTML стойността на атрибута задължително трябва да е в кавички, т.е. да изглежда така: width="150".

3. Почти всички тагове в HTML се въвеждат по двойки - начален и краен таг. Съществуват и няколко команди, които нямат краен (затварящ) таг. В XHTML е задължително всички команди да имат затварящи тагове. Ако командата е без затварящ таг, тогава в отварящия таг се изписва и наклонената на дясно черта за затваряне на тага, като тази черта трябва да е на една стъпка разстояние от края на текста на командата. Например командата за нов ред <br> няма затварящ таг, затова в XHTML нейния вид трябва да е такъв: <br />.

4. На почти всички атрибути в HTML се задава някаква стойност. Съществуват и атрибути които нямат стойност. В XHTML е задължително на всички атрибути да се задава стойност. Щом един атрибут няма стойност в HTML, тогава в XHTML като стойност се задава самото име на атрибута. Например атрибута за премахване сянката на линия е noshade и той няма стойност, затова в XHTML трябва да се изпише така: noshade="noshade".

 

  • CSS

CSS (Cascading Style Sheets) е език за описание на стилове - използва се основно за описване на представянето на документ, написан на език за маркиране. Най-често се използва заедно със HTML, но може също така да се приложи и върху XHTML, XML и производните му. Официално спецификацията на CSS се поддържа от W3C (World Wide Web Consortium).

Създаден първоначално като средство за разделяне на съдържанието от представянето му, днес той се използва основно за визуално оформление на HTML страници.

CSS позволява да се определя как да изглежда всеки елемент на дадена HTML страница - шрифта на параграфите, ширината на блок, и т.н. Например, за да се зададе размер на шрифта за всички параграфи на дадена страница може да бъде използван следният CSS код:

p {font-size: 12px;} , което ще направи шрифта 12 пиксела висок.

Има три начина да се задава стил чрез CSS на дадена HTML страница: вграден (inline), вътрешен (internal) и външен (external), от самостоятелен CSS файл. Единственият способ, който отговаря на идеята за отделяне на съдържание от оформление, е използването на самостоятелен CSS във външен файл.

  • ·                    Вградените стилове се прилагат директно в HTML таговете като за целта се използва атрибутът style. Пример:<p style="font-size: 12px;">Параграф с размер на шрифта 12 пиксела</p>
  • Вътрешните стилове съхраняват CSS информацията в заглавната част на страницата (намираща се в маркера <head></head>).
  • Външните стилове представляват изнасянето на CSS-a в отделен файл.
Bookmark and Share