В uri идентификатора липсва какво да се направи. Униформен идентификатор на ресурс (URI), цел и части

URI на унифициран идентификатор на ресурс. URI са известни с много от имената WWW адреси, универсални идентификатори на документи, URI и накрая, като комбинация от унифицирани локатори на ресурси, URL адреси и унифицирани имена на ресурси, URN. HTTP дефинира URL просто като форматиран низ, който идентифицира ресурс по име, местоположение или друга характеристика. 3.2.1 Общ синтаксис. URI в HTTP могат да бъдат представени в абсолютна форма абсолютни URI или относителни URI спрямо някои известни основни URI, в зависимост от контекста на тяхното използване. Разликата между двете форми е, че абсолютните URI винаги започват с колонизирано от дебелото черво име на схема.

URI absoluteURI relativeURI фрагмент absoluteURI схема uchar запазен относителен URI net path abs път rel path net path net loc abs път abs път rel path rel path path params? път на заявка fsegment сегмент fsegment 1 pchar сегмент pchar params param param param pchar схема 1 ALPHA DIGIT net loc pchar? запитване uchar запазен фрагмент uchar запазен pchar uchar uchar нерезервирано бягство нерезервирано ALPHA ЦИФРА безопасно допълнително национално бягство HEX HEX запазен? изключително безопасен небезопасен CTL SP национален всеки ОКТЕТ с изключение на ALPHA, DIGIT, reserved, extra, safe и unsafe октети Пълната информация за синтаксиса и семантиката на URL адресите се съдържа в RFC 1738 и RFC 1808. Нормалната нотация на Backus-Naur включва национални знаци, които са не се допуска в валидни URL адреси, дефинирани от RFC 1738, тъй като HTTP сървърите позволяват набор от нерезервирани знаци да представляват частта от адресите за rel и следователно HTTP прокси сървърите могат да получават URI заявки, които не отговарят на RFC 1738. HTTP протоколът го прави. не налагайте никакви ограничения върху дължините на URI... Сървърите трябва да обработват URI на всеки ресурс, с всякаква дължина, който обслужват, и трябва да обработват URI с неограничена дължина, ако обслужват GET-базирани сървъри, които могат да генерират такъв URI. Сървърът ТРЯБВА да върне код на състоянието 414 на Request URI твърде дълъг, Request-URI твърде дълъг, ако URI е по-дълъг, отколкото сървърът може да обработи.

Сървърите трябва да обърнат внимание на URI, които са по-дълги от 255 байта, тъй като някои по-стари клиенти или прокси сървъри може да не поддържат правилно тези дължини. 3.2.2 HTTP URL адрес. Схемата Http се използва за достъп до мрежови ресурси чрез HTTP протокол. Този раздел дефинира дефинирания от схемата синтаксис и семантика за HTTP URL адреси. http URL http хост порт abs път хост валидно име на домейн на машината или IP адрес в десетична нотация с точки, както е дефинирано в раздел 2.1 на RFC 1123 порт ЦИФРА Ако портът е празен или не е посочен, се използва порт 80. Това означава, че идентифицираният ресурсът се хоства на сървъра, чака TCP връзки на посочения порт, хост и исканият URI ресурс е abs път. Използването на IP адреси в URL адреси трябва да се избягва доколкото е възможно от RFC 1900. Ако пътят на abs не присъства в URL адреса, той ТРЯБВА да се третира като при изчисляване на искания ресурс Request-URI. 3.2.3

Край на работата -

Тази тема принадлежи към раздела:

HTTP 1.1 протокол

Според RFC 1945 HTTP 1.0 беше подобрение на този протокол, позволяваше MIME-подобен формат на съобщенията, съдържащи мета-информация за предаваните. HTTP 1.0 обаче не отчита особеностите на работа с йерархични. . .. 1.1 ..

Ако имате нужда от допълнителен материал по тази тема или не сте намерили това, което търсите, препоръчваме да използвате търсенето в нашата база от произведения:

Какво ще правим с получения материал:

Ако този материал се оказа полезен за вас, можете да го запишете на страницата си в социалните мрежи:

Всички теми в този раздел:

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

Параметри на протокола
Параметри на протокола. Версията HTTP.HTTP използва основна схема за номериране. второстепенен, за да посочи версията на протокола. Стратегията за управление на версиите на протокола е проектирана да позволява изпращане

UR сравнение
Сравнение на UR. I. Когато сравнява два URI, за да реши дали съвпадат или не, клиентът ТРЯБВА да използва октет по октет сравнение на тези URI, с

Пълна дата
Пълна дата. HTTP приложенията са позволявали исторически три различни формата за представяне на дати на слънце, 06 ноември 1994 08 49 37 GMT RFC 822, променен в RFC 1123 неделя, 06 ноември 94 08 49 37 GMT

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

Кодиране на съдържанието
Кодиране на съдържание Кодиране на съдържание. Стойността за кодиране на съдържанието показва коя трансформация на кодиране е била или ще бъде приложена към обекта. Използва се кодиране на съдържанието

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

Типове медии
Типове носители Типове носители. HTTP използва типове интернет медии в полетата Content-Type и Accept, за да предостави отворени и разширяеми данни и въвеждане на тип. медиен тип t

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

Многочастни видове
Многочастни видове. MIME предоставя редица многочастни типове, които образуват пакет от един или повече обекти в тялото на едно съобщение. Всички типове multipart споделят общ синтаксис, o

Продуктови токени
Продуктови токени. Продуктовите маркери се използват, за да позволят на комуникационните приложения да се идентифицират с името и версията на софтуера.

Качествени стойности
Качествени стойности. HTTP използва кратки числа с плаваща запетая, за да посочи относителната важност на тежестта на различни договаряни параметри. Теглото е нормализирано вещество

Езикови етикети Езикови етикети
Езикови етикети Езикови етикети. Езиковият етикет идентифицира естествен език, говорен, написан или използван по друг начин от хората за обмен на информация с други хора. Машинните езици са

Етикети за обекти
Етикети за обекти. Етикетите на обектите се използват за сравняване на два или повече обекта от един и същ заявен ресурс. HTTP 1.1 използва етикети на обекти в полетата на заглавката на ETag

Обхватни единици. Обхватни единици
Обхватни единици. Обхватни единици. HTTP 1.1 позволява на клиента да поиска само част от обект. HTTP 1.1 използва единици за диапазон в полетата за заглавка Range и Content-Rang

Типове съобщения
Видове съобщения. HTTP съобщенията са разделени на заявки клиент-сървър и отговори сървър-клиент. HTTP-съобщение Заявка за отговор HTTP 1.1 съобщения Съобщенията за заявка и отговор използват общ формат

Заглавия на публикациите
Заглавия на публикациите. HTTP заглавни полета, които включват полета за общ заглавие, заглавка на заявка, заглавка на отговор и заглавки на обект-h

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

Дължина на съобщението
Дължината на съобщението. Когато тялото на съобщението присъства в съобщението, дължината на това тяло се определя по един от следните методи по приоритет 1. Всяко отговорно съобщение, което не трябва

Метод Метод
Метод Метод. Токенът на метода указва метода, който да се приложи към ресурса, идентифициран от искания Request-URI. Методът е чувствителен към малки и големи букви. Метод ОПЦИИ GET HEAD PO

Код на състоянието и обяснителна фраза
Код на състоянието и обяснителна фраза. Елементът Status-Code е трицифрен целочислен код за резултат от опит за разбиране и изпълнение на заявка. Тези кодове са напълно дефинирани в раздела

Постоянни връзки
Постоянни връзки. Цел. Преди въвеждането на постоянни връзки в протокола беше установена отделна TCP връзка за всяка URL заявка, което увеличи натоварването на HTTP от

Преговори за дискусия
Преговори за дискусия. HTTP 1.1 сървър може да приеме, че HTTP 1.1 клиент не поддържа постоянна връзка, ако заглавката на връзката, изпратена в заявката, съдържа маркера за свързване

Тръбопроводи за обработка на конвейер
Конвейерна обработка Тръбопроводи. Клиент, който поддържа постоянни връзки, е в състояние да пренасочва заявки, тоест да изпраща множество заявки, без да чака отговор на всяка

Практически съображения
Практически съображения. Сървърите обикновено имат някаква стойност за изчакване, след която не поддържат неактивна връзка. Прокситата могат да го настроят по-високо

Изисквания за прехвърляне на съобщения
Изисквания за предаване на съобщения. Общи изисквания - HTTP 1.1 сървърите ТРЯБВА да поддържат постоянни връзки и да използват механизми за контрол на TCP потока, за да намалят временните

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

Дефиниране на кодовете на състоянието
Дефиниране на кодовете на състоянието. Всеки код на състоянието, описан по-долу, включва описание на метода или методите, които може да следва, и мета информацията, изисквана в отговора. 10.1 1xx - Информ

Достъп до удостоверяване
Достъп до удостоверяване. За удостоверяване на достъпа HTTP предоставя прост механизъм за предизвикателство-отговор, който може да се използва от

Основна схема за удостоверяване
Основна схема за удостоверяване. Основната схема за удостоверяване се основава на факта, че потребителският агент трябва да докаже своята самоличност с помощта на ID.

HTTP кеширане
HTTP кеширане. HTTP обикновено се използва за разпределени информационни системи, чиято ефективност може да бъде подобрена чрез използване на кеширани отговори. Протоколът HTTP 1.1 включва p

Коректност на кеша
Коректността на кеша. Валидният кеш трябва да отговори на заявка с най-новия отговор, съответстващ на заявката, съхранен от кеш, който отговаря на едно от следните условия 1. Той е валидиран.

Механизми за управление на кеша
Механизми за управление на кеша. Основните механизми за кеширане в определения от сървъра HTTP 1.1 време на валидност и валидатор са имплицитни директиви

Изрични предупреждения на потребителския агент
Изрични предупреждения на потребителския агент. Много потребителски агенти дават възможност на потребителите да отменят основните механизми за кеширане. Например, потребителски агент може да разреши p

Изключения от правилата и предупрежденията
Изключения от правилата и предупрежденията. В някои случаи кеш операторът може да го конфигурира да връща отговори с изтекъл срок, дори ако те не са поискани от клиента.

Поведение, контролирано от клиента
Поведение, контролирано от клиента. Като има предвид, че изходният сървър и в по-малка степен междинните кешове и техният принос към възрастта на отговора са основният източник на информация за остаряването

Модел на остаряването
Моделът за оттегляне. Специфицирано от сървъра остаряване. HTTP кеширането работи най-добре, когато кешовете могат напълно да избегнат заявки към изходния сървър. Първичен механизъм и

Евристично остаряване
Евристично остаряване. Тъй като изходните сървъри не винаги предоставят изрични времена на изтичане, HTTP кешовете обикновено присвояват евристични времена на изтичане, като използват алгоритми, които се използват

Изчисляване на възрастта
Изчисляване на възрастта. За да разбере дали даден обект в кеша е свеж, кешът трябва да знае дали е по-стар от датата на свежест. Хостове, които използват HTTP, особено hos

Изчисляване на остаряването
Изчисляване на остаряването. За да решим дали отговорът е свеж или закъснял, трябва да сравним продължителността на живота му с възрастта. Възрастта се изчислява по алгоритъма, описан в раздел 13.2.3

Етапи на развитие на исихастката традиция
Етапи на развитие на исихастката традиция. Исихастка традиция от гръцки. термин - мир, тишина - определена школа на духовната практика, развиваща се от IV век. до този ден. 7 По време на това дълго пътуване

Работа с URI

Всеки ден използваме Единни идентификатори на ресурси (URI)когато търсите нещо в WWW. URI са необходими за идентифициране и заявка за нов вид ресурс. Използвайки URI, можете да получите достъп не само до уеб страници, но и до FTP сървъра, уеб услугата и локалните файлове.

Терминът често се използва вместо URI Униформен локатор на ресурси (URL)... URI е общ термин, използван за връзки към ресурси. URL адресът е URI, свързан с популярни URI схеми като http, ftp и mailto. В техническата документация терминът URL вече не се използва.

Друг термин може вече да ви е известен - Единно име на ресурс (URN)... URN е стандартизиран URI, използван за идентифициране на ресурс, независимо от местоположението му в мрежата.

Нека анализираме частите от URI, който води към страница на уебсайта на Global Knowledge:

http://www.globalknowledge.net:80/training/generic.asp?pageid=1078&country=DACH

    Първата част на URI се нарича схема... Схемата дефинира пространството от имена на URI и може да стесни синтаксиса на израза, следващ схемата. Много схеми са наименувани на съответните протоколи (като http, ftp), които използват, но това не е задължително. В нашия пример идентификаторът на схемата е http. Ограничител на веригата(// в този пример) разделя схемата от останалата част от URL адреса.

    Разграничителят на схемата е последван от името на сървъра или IP адреса в десетичен знак с точки, като например www.globalknowledge.net.

    Зад името на сървъра или IP адреса е номерът на порта, който идентифицира връзката с конкретно приложение на сървъра. Ако не е посочен номер на порт, се използва номерът на порта по подразбиране за този протокол (например порт 80 за HTTP).

    начиндефинира страницата (и директорията) на искания ресурс. Той не представлява непременно физически файл на сървъра, но може да бъде генериран динамично. В този случай пътят изглежда като /training/generic.asp.

    От пътеката по символа? премахна последната част от този наречен URI запитване... В нашия пример заявката се дефинира от реда pageid = 1078 & country = DACH. Низът на заявка може да има няколко компонента, всеки от които определя променлива и стойност, свързани със символа &. Множество компоненти на заявката могат да се комбинират с &. Така че, в нашия пример, първият компонент е pageid = 1078 с променлива pageid и стойност 1078, а вторият компонент е country = DACH.

    Разделите в ресурса могат да бъдат идентифицирани с фрагменти. Фрагментисе използват за свързване към секции в HTML страница. В уеб дизайна фрагментите се наричат ​​още отметки. Знакът # разделя идентификатора на фрагмента от пътя. В URL адреса http; // www.microsoft.com/net/basics/glossary.asp#NETFramework фрагментът е #NETFramework.

Ако символът # се добави към низа на заявката, той вече не е фрагмент. URL адресът може да съдържа низ на заявка или фрагмент, но не и двете.

Множество символа са запазени в URI – те не могат да бъдат включени в имена на хостове или пътища, тъй като са специални символи-разделители. Следните знаци са запазени в URI:

; / ? : @ & = + $ ,

Ури класот системното пространство от имена капсулира единен идентификатор на ресурс. Той съдържа свойства и методи за синтактичен анализ, сравняване и комбиниране на URI.

Можете да създадете Uri обект, като предадете URI низ на конструктора:

Uri baseURI = нов Uri ("http: // сайт");

Ако вече имате основен URI обект, можете да създадете нов URI, като комбинирате основния URI с относителен URI:

Uri baseURI = нов Uri ("http: // сайт"); Uri newURI = нов Uri (baseURI, "my / csharp / web / level2 / 2_2.php");

Ако основният URI вече съдържа път, той се игнорира. Само схемата, портът и името на сървъра се приемат като основа за новия URI.

Класът Uri има няколко статични полета само за четене, за да получите някои от общите схеми:

Uri.UriSchemeFile

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

Uri.UriSCHemeFtp

FTP с ftp схемата се използва за извличане на файлове от ftp сървър и, обратно, поставяне на файлове на ftp сървър.

Uri.UriSchemeGopher

Протоколът gopher беше предшественик на HTTP. Той предоставя йерархични възможности за гледане на информация за текстово съдържание, което е по-добро от FTP. Но скоро беше заменен от HTTP протокола.

Uri.UriSchemeHttp, Uri.UriSchemeHttps

Тези две схеми са добре известни: http и https. Схемата https се използва за сигурен обмен.

Uri.UriSchemeMailto

Схемата mailto се използва за изпращане на имейл съобщения.

Uri.UriSchemeNews, Uri.UriSchemeNntp

Схемите за новини и nntp се използват в дискусионни групи, използващи протокола NNTP.

Класът Uri има статични методи за проверка дали схемата и името на хоста са правилни: Uri.CheckSchemeName () връща true, ако името на схемата е правилно и методът UriCheckHostName ()не само потвърждава името на хоста, но също така връща стойност за изброяване UriHostNameType, указваща типа на хоста.

Класът Uri има много свойства само за четене, които ви позволяват достъп до всички части на URI. В следващата таблица използваме горния URI като пример, за да демонстрираме използването на свойства:

AbsoluteUri Това свойство показва пълния URI. Ако посоченият номер на порт за протокола е равен на номера на порта по подразбиране, Uri конструкторът автоматично го премахва. За нашия пример стойността на свойството AbsoluteUri изглежда така: http://www.globalknowledge.net/t raining / generic.asp? pageid = 1078 & country = DACH... Ако подадете име на файл на конструктора на клас Uri, свойството AbsoluteUri автоматично предхожда името на файла със схемата file: //.
Схема Схемата е първата част от URI и в този случай това свойство връща стойността http.
Домакин Свойството на хост показва име на хост от URI: www.globalknowledge.net
Власт Ако номерът на порта е равен на стандартния за протокола, свойството Authority показва същия низ като свойството Host. Ако се използва различен номер на порт, тогава свойството Authority също показва номера на порта.
HostNameType Типът име на хост зависи от използваното име. В този случай се получава същата стойност на изброяването UriHostNameType, която беше обсъдена по-горе.
Порт С помощта на свойството Port се получава номерът на порта - 80.
AbsolutePath Абсолютният път започва след номера на порта в URI и завършва преди низа на заявката. В този случай е настроен на /training/generic.asp.
LocalPath Локалният път дава стойността /training/generic.asp. Както можете да видите, за HTTP заявка няма разлика между AbsolutePath и LocalPath. Разликата се появява, когато URI се отнася до споделен мрежов ресурс. За URI на файла с формуляра: \\ server \ share \ directory \ file.txt, свойството LocalPath връща само имената на директорията и файловете, докато свойството AbsolutePath включва имената на сървъра и споделеното.
Запитване Свойството Query показва реда, следващ пътя: Pageid = 1078 & country = DACH.
PathAndQuery Свойството PathAndQuery дава комбинация от път и низ на заявка: /training/generic.asp?pageid=1078&country=DACH.
Фрагмент Ако пътят е последван от фрагмент, той се връща в свойството Fragment. Пътят може да бъде последван само от низ или фрагмент на заявка. Фрагментът се идентифицира със знака #
Сегменти Свойството Segments връща масив от низове, образувани от пътя. В този случай имаме три сегмента: /, обучение / и generic.asp.
Информация за потребителя Потребителското име, зададено в URI, може да бъде прочетено от свойството UserInfo. Предаването на потребителски имена е често срещано в FTP и ако е посочен неанонимен потребител, като ftp: // [защитен с имейл]тогава свойството UserInfo ще върне myuser.

В допълнение към изброените има няколко други свойства, които връщат булеви стойности, ако URI представлява файл, UNC път, адрес за обратна връзка или ако номерът на порта по подразбиране се използва за този протокол. Това са свойствата IsFile, IsUnc, IsLoopback и IsDefaultPort, съответно.


Понякога URI.as и други системни грешки на AS могат да бъдат свързани с проблеми в системния регистър на Windows. Няколко програми могат да споделят един и същ URI.as файл, но когато тези програми бъдат деинсталирани или променени, понякога остават осиротели (невалидни) записи в системния регистър на AS.

По принцип това означава, че въпреки че действителният път към файла може да се е променил, неговото неправилно предишно местоположение все още се записва в системния регистър на Windows. Когато Windows се опита да търси тези неправилни препратки към файлове (местоположения на файлове на вашия компютър), могат да възникнат грешки URI.as. В допълнение, заразяването със злонамерен софтуер може да е повредило записите в регистъра, свързани с Fueling ColdFusion Development. По този начин тези невалидни записи в системния регистър трябва да бъдат поправени, за да се коригира коренът на проблема.

Ръчното редактиране на системния регистър на Windows за премахване на невалидни ключове URI.as не се препоръчва, освен ако не сте специалист по обслужване на компютър. Грешки, направени при редактиране на системния регистър, могат да доведат до неизправност на компютъра и да причинят непоправими щети на операционната система. Всъщност дори една запетая на грешното място може да попречи на компютъра ви да се зареди!

Поради този риск силно препоръчваме да използвате надеждни инструменти за почистване на системния регистър като напр WinThruster(Разработен от Microsoft Gold Certified Partner) за сканиране и поправяне на проблеми, свързани с URI.as. Използвайки почистване на системния регистърМожете да автоматизирате процеса на намиране на невалидни записи в системния регистър, препратки към липсващи файлове (като тази, причиняваща грешката ви URI.as) и неработещи връзки в регистъра. Преди всяко сканиране автоматично се създава резервно копие, което ви позволява да отмените всички промени с едно щракване и ви предпазва от възможни повреди на вашия компютър. Най-хубавото е това елиминиране на грешки в регистъраможе драстично да подобри скоростта и производителността на системата.


Предупреждение:Освен ако не сте опитен потребител на компютър, НЕ препоръчваме ръчно да редактирате системния регистър на Windows. Неправилното използване на редактора на системния регистър може да доведе до сериозни проблеми и да изисква преинсталиране на Windows. Не гарантираме, че проблемите, произтичащи от неправилно използване на редактора на системния регистър, могат да бъдат коригирани. Използването на редактора на системния регистър е на ваш собствен риск.

За да поправите ръчно вашия регистър на Windows, първо трябва да създадете резервно копие, като експортирате част от регистъра, свързана с URI.as (напр.Fueling ColdFusion Development):

  1. Кликнете върху бутона Започнете.
  2. въведете " команда" v лента за търсене ... НЕ НАТИСКАЙТЕ ОЩЕ ENTER!
  3. Задържане на ключовете CTRL-Shiftна клавиатурата, натиснете ENTER.
  4. Ще се покаже диалогов прозорец за достъп.
  5. Кликнете върху да.
  6. Черната кутия се отваря с мигащ курсор.
  7. въведете " regedit“ и натиснете ENTER.
  8. В редактора на системния регистър изберете ключа, свързан с URI.as (напр.Fueling ColdFusion Development), на който искате да създадете резервно копие.
  9. В менюто Файлизбирам Експортиране.
  10. В списъка Запази визберете папката, в която искате да запишете резервния ключ за Fueling ColdFusion Development.
  11. В полето Име на файлвъведете име за вашия архивен файл, като например "Fueling ColdFusion Development Backup".
  12. Уверете се в кутията Обхват за експортиранеизбрана стойност Избран клон.
  13. Кликнете върху Запазете.
  14. Файлът ще бъде запазен с разширение .reg.
  15. Вече имате резервно копие на вашия запис в регистъра, свързан с URI.as.

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

За да получите достъп до всякакви мрежови ресурси, трябва да знаете къде се намират и как да получите достъп до тях. Световната мрежа използва стандартизирана схема за адресиране и идентификация, като се отчита опитът за адресиране и идентифициране на електронна поща, Gopher, WAIS, telnet, ftp и др. - URL, унифициран локатор на ресурси.

URI(Униформен идентификатор на ресурс) (RFC 2396, август 1998 г.) е компактен символен низ, използван за идентифициране на абстрактен или физически ресурс. Под ресурс се разбира всеки обект, който принадлежи към определено пространство. Включва и отменя предварително определени URL адреси (RFC 1738 / RFC 1808) и URN (RFC 2141, RFC 2611).

URI е предназначен да идентифицира уникално всеки ресурс.

Някои подмножества от URI:

URN(Униформено име на ресурс) – Частен URI „урна:“ с подмножество от „пространството от имена“, което трябва да бъде уникално и неизменно, дори когато ресурсът вече не съществува или не е наличен.

Предполага се, че например браузърът знае къде да търси този ресурс.

Синтаксис:

urn: namespace: data1.data2, more-data, където пространството на имената определя как се използват данните след втория ":".

Пример за URN:

урна: ISBN: 0-395-36341-6

ISBN - тематичен класификатор за издателства

0-395-36341-6 - конкретен номер на темата на книга или списание



При получаване на URN клиентската програма се обръща към ISBN (директорията „Тематичен класификатор за издатели“ в Интернет). И той получава дешифриране на предметния номер "0-395-36341-6" (например: "квантова химия").

URN се използва широко в P2P мрежи (като edonkey).

Пример URN, сочещ към изображение на диск на Adobe Photoshop v8.0 в мрежата edonkey:

урна: ed2k: // | файл | AdobePhotoshopv8.0.iso | 940769280 | | /

ed2k - показва мрежата

Adobe Photoshop v8.0.iso - име на файла

940769280 - размер в байтове

- идентификатор на файла (изчислен с помощта на хеш функция)

URL униформен локатор на ресурси:

URL адрес(Uniform Resource Locator, RFC 1738) е унифициран локатор на ресурси (locator), стандартизиран начин за записване на адреса на ресурс в WWW и Интернет. URL адресът има гъвкава и разширяема структура, за да посочи местоположението на ресурсите в мрежата възможно най-естествено, което идентифицира ресурса по начина, по който се осъществява достъп до него (например, неговото „мрежово местоположение“), вместо да го идентифицира по име или други атрибути на този ресурс.

Примери за URL адреси:

http://www.ipm.kstu.ru/index.php

ftp://www.ipm.kstu.ru/

За представяне на адреса се използва ограничен набор от ASCII символи.

Общият изглед на адреса може да бъде представен по следния начин:

<схема>://<логин>:<пароль>@<хост>:<порт>/<полный-путь-к-ресурсу >

схема за достъп до ресурси: http, ftp, gopher, mailto, новини, telnet, файл, човек, информация, whatis, ldap, wais и др.

Парола за вход-потребителско име и парола, използвани за достъп до ресурса

домакин-името на домейна на хоста или неговия IP адрес.

пристанище-хост порт за връзка

пълен път до ресурса -уточняваща информация за местоположението на ресурса (зависи от протокола).

Примери за URL адреси:

http://example.com # заявка за началната страница по подразбиране

http://www.example.com/site/map.html # заявете дадена страница в дадена директория

http://example.com:81/script.php # свързване към нестандартен порт

http://example.org/script.php?key=value # заявка с предаване на параметри към скрипта

ftp: // потребител: [защитен с имейл]# свържете се с ftp сървър с оторизация

http://192.168.0.1/example/www # свържете се с мрежов адрес

file: ///srv/www/htdocs/index.html # отваряне на локален файл

gopher: //example.com/1 # свържете се с gopher сървър

URL - Униформените локатори на ресурси описват изрично как да стигнете до обект.

Появата на URL адреси е значителна иновация в Интернет. Въпреки това, от момента на изобретяването си до наши дни, URL стандартът има сериозен недостатък - може да използва само ограничен набор от знаци, дори по-малко, отколкото в ASCII: латински букви, цифри и само няколко препинателни знака.

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

В рускоезичната Wikipedia трябва да виждате примери за кодиране на URL всеки ден, тъй като руският език използва кирилица. Например ред като този:

http://ru.wikipedia.org/wiki/Микрокредит

URL кодиран като:

http://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D1%80%D0%B5%D0%B4%D0 % B8% D1% 82

Това преобразуване се извършва на два етапа: първо всеки кирилски знак се кодира в Unicode (UTF-8) в последователност от два байта, а след това всеки байт от тази последователност се записва в шестнадесетична нотация:

M → D0 и 9C →% D0% 9C

и → D0 и B8 →% D0% B8

k → D0 и BA →% D0% BA

p → D1 и 80 →% D1% 80 и т.н.

Всеки такъв шестнадесетичен байтов код се предхожда от знак за процент (%) според спецификацията на URL адреса - оттук и английският термин "percent-encoding", който обозначава как символите се кодират в URL адреси и URI.

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

Всичко това е в противоречие с принципа на интернационализма, прокламиран от всички водещи организации в Интернет, включително W3C и ISOC. Този проблем е предназначен да бъде решен чрез стандарта IRI (International Resource Identifier) ​​- международни идентификатори на ресурси, в които би било възможно да се използват Unicode символи без проблеми и които следователно няма да нарушават правата на други езици.

Други схеми за URL адреси

HTTP схема.

Схемата определя неговия идентификатор, адрес на машината, TCP порт, път в директорията на сървъра, променливи и техните стойности, етикет.

Синтаксис:

http: // [ [:@][:][?]]

http - име на схемата

потребител - потребителско име

хост - име на хост

порт - номер на порта

заявка (<имя-поля>=<значение>{&<имя-поля>=<значение>) - низ на заявка

Дефиниран в RFC 2068. По подразбиране порт = 80.

Примери:
http://ipm.kstu.ru/internet/index.php

Това е най-често срещаният тип URI, използван в WWW документи. Името на схемата (http) е последвано от път, състоящ се от адреса на домейна на машината и пълния адрес на HTML документа в дървото на HTTP сървъра.

IP адресът може да се използва и като адрес на машината:

http://195.208.44.20/internet/index.php

Ако HTTP сървърът работи на TCP порт, различен от 80, това е отразено в адреса:

http://195.208.44.20:8080/internet/index.php

http://195.208.44.20/internet/index.php#metka1
Знакът "#" разделя името на документа от името на етикета.

Променливите и техните стойности се предават, както следва:
http://ipm.kstu.ru/internet/index.php?var1=value1&vard2=value2

Стойностите "var1" и "var2" са имена на променливи, а "value1" и "value2" са техните стойности.

FTP схема

Тази схема ви позволява да адресирате FTP файлови архиви.

Синтаксис:

ftp: // [ [:@][:]

ftp - име на схемата

потребител - потребителско име

парола - потребителска парола

хост - име на хост

порт - номер на порта

url-path - пътят към файла и самия файл

Дефинирано в RFC 1738. По подразбиране, порт = 21, потребител = анонимен, парола = имейл адрес, ако името е посочено, но паролата не е, то се изисква в диалоговия прозорец.

изглежда като:

//...//[; тип = ], където :

Примери: ftp://ipm.kstu.ru/students/name/

За да посочите потребителско име и парола, трябва да ги напишете така:
ftp: // име: [защитен с имейл]: //ipm.kstu.ru/students/name/

В този случай тези параметри са отделени от адреса на машината със символа "@" и един от друг с двоеточие.

MAILTO схема

Тази схема е предназначена за изпращане на поща.

Синтаксис:

mailto: [ {,,...}][?]

mailto - име на схема

имейл-1 ( @) - първият имейл адрес

потребител - потребителско име

хост - име на хост

e-mail-2 - втори имейл адрес

заявка (<имя-поля-заголовка>=<значение>{&<имя-поля-заголовка>=<значение>) - низ на заявка

mailto: [защитен с имейл]

В тази схема се предават полета и техните стойности:

mailto: [защитен с имейл]? тема = Subject_Email & body = Text_which_will_be_inserted_in_the_mail

Адресът на получателя може също да бъде записан като стойността на полето до:

mailto: [защитен с имейл]? тема = Subject_Email & body = Text_which_will_be_inserted_in_the_mail

Какво е HTTP?

Първият документ (но не стандартният) е RFC1945 (Протокол за прехвърляне на хипертекст - HTTP / 1.0 T. Berners-Lee, R. Fielding, H. Frystyk май 1996 г.)

Най-новата версия е RFC2616 (Hypertext Transfer Protocol - HTTP / 1.1 R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee юни 1999 г.)

Протоколът за прехвърляне на хипертекст е протокол за трансфер на хипертекст, протокол от високо ниво (а именно, приложния слой). Използва се от услугата WWW за прехвърляне на уеб страници.

HTTP (HyperText Transfer Protocol, RFC 2616, текущата версия е HTTP / 1.1) е протокол за трансфер на хипертекст. Този протокол първоначално е бил предназначен за обмен на хипертекстови документи, сега неговите възможности са значително разширени (по-специално е добавена поддръжка за стрийминг).

HTTP е типичен протокол клиент-сървър; съобщенията се обменят по схемата "заявка-отговор" под формата на ASCII команди. Характеристика на HTTP протокола е възможността в заявката и отговора да се посочи начинът за представяне на един и същ ресурс в различни параметри: формат, кодиране, език и т.н. Благодарение на възможността да се посочи методът за кодиране на съобщението, клиентът и сървърът могат да обменят двоични данни, въпреки че този протокол е текст.

HTTP е протокол на приложния слой, но се използва и като "транспорт" за други приложни протоколи като SOAP, XML-RPC, WebDAV.

Протоколът HTTP дефинира начин за комуникация на заявка-отговор между клиентска програма и сървърна програма в рамките на технологията на World Wide Web.

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

Търсенето на исканата страница се извършва в конкретна директория, която е разпределена на компютъра на сървъра за този сайт - връзка към тази директория присъства в адреса, въведен от потребителя. В случай, че повикването се извършва не към конкретен документ, а към сайта като цяло, http-сървърът автоматично замества така наречената "начална страница" вместо името на прехвърляния файл, което се нарича индекс .htm или index.html (в някои случаи - default. htm или default.html). Този документ трябва да се намира в основната директория, определена за хостване на вашия сайт, или, ако е посочено друго, в директория, наречена WWW. Всички останали файлове могат да бъдат поставени или в същата директория, или в поддиректории, което понякога е удобно, особено когато сайтът съдържа няколко тематични раздела или заглавия.

В допълнение към подпапките, които създавате, в които можете свободно да поставите почти всяко съдържание, от което се нуждаете, директорията на сървъра обикновено съдържа още няколко директории, които трябва да бъдат споменати отделно. Първо, това е папката CGI-BIN, където се намират CGI скриптове и други интерактивни приложения, стартирани от вашия сайт, както и няколко сервизни директории, необходими за нормална работа на сървъра. В началния етап просто не трябва да им обръщате внимание. Понякога в същата директория, където се съхранява index.html, има редица допълнителни файлове: not_found.html - документ, който се показва, ако http сървърът не може да намери файла, поискан от потребителя, forbidden.html - се показва като съобщение за грешка, ако достъпът до искания документ е отказан, и накрая, robots.txt е файл, който конкретно описва правилата за индексиране на вашия сайт от търсачките.

В повечето случаи и особено при публикуване на начална страница на сървъри, които предоставят безплатен хостинг, на потребителите е отказан достъп до служебните директории и папката CGI-BIN, промяната на съдържанието на файловете not_found и forbidden.html също е невъзможна. Това трябва да се има предвид, ако планирате да включите интерактивно съдържание във вашия ресурс, което изисква поне възможност за поставяне на файлове в една от папките на услугата. В някои случаи може да ви бъде забранено да създавате вложени директории на сървъра, тогава потребителят ще трябва да се задоволи само с една директория, определена за вашите нужди.

От всичко казано става ясно, че браузърът на клиента може да получава и обработва информация само от сървъра и да я поставя и модифицира само ако качването на файлове на сървъра се изпълнява въз основа на HTTP протокола, като се използват специални CGI скриптове, включени в уеб интерфейса на сървъра. Във всички останали случаи трябва да използвате така наречения ftp-сървър, на който можете да прехвърляте необходимите файлове с помощта на специален софтуер, като автоматично ги качвате в директорията, определена за вашия сайт. И в двата случая ще трябва да знаете вашето потребителско име и парола за достъп до системата. Трябва също да се помни, че повечето сървърни програми (по-специално Apache за UNIX-съвместими платформи) правят разлика между малки и главни букви, така че всички имена на файлове и техните разширения трябва да бъдат написани с малки букви и винаги на латиница, за да се избегнат грешки. Последното се дължи на различия в обработката на кодировките на руски език, характерни за определени сървъри.

Работата по HTTP протокола е както следва: клиентската програма установява TCP връзка със сървъра (стандартният номер на порта е 80) и подава HTTP заявка към него. Сървърът обработва тази заявка и издава HTTP отговор на клиента.

Комуникацията между клиента и уеб сървъра се осъществява чрез обмен на съобщения. HTTP съобщенията са разделени на заявки клиент-сървър и отговори сървър-клиент.

Съобщенията за заявка и отговор имат общ формат. И двата типа съобщения изглеждат така: първо има начален ред (начален ред), след това, евентуално, едно или повече полета за заглавки, наричани още просто заглавки, след това празен ред (тоест ред, състоящ се от знаците CR и LF), което показва края на полетата на заглавката и след това евентуално тялото на съобщението:

стартова линия

поле за заглавие 1

поле за заглавие 2

поле за заглавие N

тялото на съобщението

HTTP заглавки на протокола

Форматът на първоначалния ред на клиента и сървъра е различен и ще бъде разгледан по-долу. Има четири вида заглавия:

Общи заглавки (general-headers), които могат да присъстват както в заявката, така и в отговора;

Заглавки на заявка, които могат да присъстват само в заявка;

Заглавки на отговора, които могат да присъстват само в отговор;

Заглавки на обекти, които се отнасят до тялото на съобщение и описват неговото съдържание.

Всяко заглавие се състои от заглавие, двоеточие ":" и стойност. Най-важните заглавия са показани в таблица 1.

маса 1

HTTP заглавки на протокола

Заглавие Назначаване
Заглавки на обекти
Позволява Изброява методи, поддържани от сървъра
Кодиране на съдържание Начинът, по който тялото на съобщението е кодирано, например за намаляване на размера
Съдържание-дължина Дължина на съобщението в байтове
Тип съдържание Съдържа обозначението на типа MIME съдържание на отговора. В зависимост от Content-Type, браузърът интерпретира отговора като HTML страница, gif или jpeg изображение, файл, който трябва да бъде запазен на диск, или нещо друго и предприема подходящи действия. Някои видове съдържание: текст / html - HTML текст (уеб страница); text / plain - обикновен текст (подобно на "Notepad"); image / jpeg - картина в JPEG формат; изображение / gif - същото, във формат GIF; Може също да предава кодиране за текстови данни. Например: charset = windows-1251 charset = koi8-rus Content-Length - дължина на съдържанието на отговора в байтове (размер на файла). Последна промяна - датата и часът, когато документът е бил последно променен.
Етаг Уникален маркер за ресурс на сървъра, който ви позволява да сравнявате ресурси
Изтича Дата и час, когато ресурсът на сървъра ще бъде променен и той трябва да бъде извлечен отново
Последно модифициран Дата и час на последната промяна на съдържанието
Заглавки на отговорите
Възраст Броят секунди, след които да опитате отново заявката за получаване на ново съдържание
Местоположение URI на ресурса, който трябва да бъде консултиран, за да получите съдържанието
Повторен опит - след Дата и час или брой секунди, след които заявката трябва да се повтори, за да се получи успешен отговор
Сървър Име на сървърния софтуер, който е отговорил
Заглавки на заявката
Приемам Списък с поддържани от браузър типове съдържание в реда на предпочитание за този браузър, например: Приемам: image / gif, image / x-xbitmap, image / jpeg, image / pjpeg, application / vnd.ms-excel, application / msword , application / vnd. ms-powerpoint, * / * Това очевидно е необходимо за случая, когато сървърът може да обслужва един и същ документ в различни формати. Стойността на този параметър се използва главно от CGI скриптове за генериране на отговор, адаптиран за даден браузър.
Accept-Charset Кодиране на символи, при което клиентът може да приеме текстово съдържание
Приемане-Кодиране Начинът, по който сървърът може да кодира съобщението
Домакин Номер на хост и порт, от който се изисква документът
If-Modified-Since If-Match If-None-Match If-Range If-Unmodified-Since Заглавки на заявка за условен достъп до ресурси
Обхват Поискайте част от документ
Потребителски агент Име на клиентския софтуер - стойността е "кодовото име" на браузъра, например: Mozilla / 4.0 (съвместим; MSIE 5.0; Windows 95; DigExt)
Общи заглавки
Връзка Връзка - може да бъде Keep-Alive и затворена. Keep-Alive означава, че след издаването на този документ връзката със сървъра не е прекъсната и могат да бъдат издадени повече заявки. Повечето браузъри работят в режим Keep-Alive, тъй като той ви позволява да "изтеглите" html страница и снимки към нея в една връзка със сървъра. Веднъж зададен, режимът Keep-Alive се поддържа до първата грешка или докато изрично не бъде посочено в следващата заявка за затваряне на връзка. затвори - връзката се затваря след отговор на тази заявка.
Дата Дата и час на образуване на съобщението
Прагма Специфични за реализацията команди за прехвърленото съдържание
Трансферно кодиране Метод за кодиране на съобщение за предаване

В някои заглавки стойността е дата и час. Те трябва да са във формата, описан в RFC 1123, например:

Тялото на съобщението съдържа действителната информация, която се предава - полезния товар на съобщението. Тялото на съобщението е поредица от октети (байтове). Тялото на съобщението може да бъде кодирано, като кодирането е определено в заглавката на обекта Content-Encoding.

Съобщението за заявка от клиент към сървър се състои от ред за заявка, заглавки (общи, заявка, обект) и евентуално тяло на съобщението.

Редът за заявка започва с метод, последван от искания идентификатор на ресурс, версия на протокола и знаци в края на реда:

<Метод> <Идентификатор> <Версия HTTP>

Метод определя метода, който да се приложи към искания ресурс. Например методът GET казва, че клиентът иска да получи съдържанието на ресурса. Идентификаторът идентифицира искания ресурс. HTTP версията се обозначава с ред като този:

HTTP /<версия>.<подверсия>

Методи на HTTP протокол

Нека разгледаме основните методи на HTTP протокола.

Методът OPTIONS изисква информация за опциите за свързване (например методи, типове документи, кодировки), които сървърът поддържа за искания ресурс. Този метод позволява на клиента да дефинира опции и/или изисквания, свързани с ресурса, или възможностите на сървъра, без да предприема каквото и да е действие върху ресурса или да инициира изтегляне.

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

Ако идентификаторът на искания ресурс е звездичка ("*"), тогава заявката OPTIONS е предназначена да адресира сървъра като цяло.

Ако идентификаторът на искания ресурс не е звездичка, тогава заявката OPTIONS се прилага към опциите, налични при свързване към посочения ресурс.

Методът GET ви позволява да получите всякаква информация, свързана с искания ресурс. В повечето случаи, ако идентификаторът на искания ресурс сочи към документ (например текстов документ, графично изображение, видео), тогава сървърът връща съдържанието на този документ (съдържание на файла). Ако исканият ресурс е приложение (програма), което генерира данни, тогава генерираните данни се връщат в тялото на съобщението за отговор, а не в двоично изображение на изпълнимия файл. Това се използва например при създаване на CGI приложения. Ако идентификаторът на искания ресурс сочи към директория (директория, папка), тогава, в зависимост от настройките на сървъра, съдържанието на директорията (списък с файлове) или съдържанието на един от файловете, намиращи се в тази директория (обикновено index.html или Default.htm). В последния случай името на папката може да се посочи или със символа "/" в края, или без него. Ако този символ липсва в края на идентификатора, сървърът издава един от отговорите с пренасочване (с кодове на състояние 301 или 302).

Разграничете "условно GET", при което съобщението за заявка включва заглавките на заявката If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match или If-Range. Условният метод GET изисква прехвърляне на обект само ако отговаря на условията, описани в дадените заглавки. Условният метод GET е предназначен да намали ненужното натоварване на мрежата, тъй като ви позволява да не изтегляте данните, които вече са запазени от клиента, втори път.

Също така се прави разлика между "частичен GET", при който съобщението за заявка включва заглавка на заявка за диапазон. Частичен GET изисква прехвърляне само на част от обекта. Частичният метод GET е предназначен да намали ненужното натоварване на мрежата, като изисква само част от обекта, когато другата част вече е изтеглена от клиента. Стойността на заглавката на Range е диапазонът от байтове за получаване. Байтовете се номерират, започвайки от 0. Началният и крайният байт на диапазона са разделени със знак "-". Ако трябва да получите няколко диапазона, те са изброени разделени със запетаи.

Методът HEAD е идентичен с GET, с изключение на това, че сървърът не връща тялото на съобщението в отговора. Мета информацията, съдържаща се в HTTP заглавките на отговора на HEAD заявка, е идентична с информацията, предоставена в отговора на GET заявка. Този метод може да се използва за получаване на информация за обекта на заявката без директно препращане на тялото на обекта. Методът HEAD често се използва за тестване на хипертекстови връзки.

Методът POST се използва за заявка, при която адресираният сървър получава данни, включени в тялото на съобщението (обекта) на заявката и ги изпраща за обработка до приложението, посочено като искан ресурс. POST е проектиран да реализира следните функции по общ начин:

Анотация на съществуващи ресурси;

Публикуване на съобщение в електронно табло за бюлетини (BBS), дискусионни групи, пощенски списъци или подобна група статии;

Предаване на блок от данни, като резултат от въвеждане във формуляр, към процес на обработка;

Изпълнение на заявки към бази данни (БД);

Всъщност функцията, изпълнявана от метода POST, се определя от приложението, посочено от идентификатора на искания ресурс. Заедно с метода GET, методът POST се използва при изграждане на CGI приложения. Браузърът може да формира заявки с метода POST при подаване на формуляри. За да направите това, елементът FORM на HTML документа, съдържащ формуляра, трябва да има атрибут METHOD, зададен на POST.

Действието POST може да предприеме действие на сървъра и да не предава никакво съдържание в резултат. В този случай, в зависимост от това дали отговорът включва тяло на съобщението, описващо резултата или не, кодът на състоянието в отговора може да бъде 200 (OK) или 204 (Без съдържание).

Ако ресурсът е създаден на сървъра, отговорът съдържа код на състоянието 201 (Създадено) и включва заглавката на отговора Location.

Тялото на съобщението, което се предава в заявка с метода PUT, се записва на сървъра, а идентификаторът на искания ресурс ще бъде идентификаторът на запазения документ. Ако идентификаторът на искания ресурс сочи към вече съществуващ ресурс, тогава обектът, включен в тялото на съобщението, се третира като модифицирана версия на ресурса, разположен на сървъра. Ако бъде създаден нов ресурс, тогава сървърът информира потребителския агент за това с отговор с код на състояние 201 (Създаден).

Основната разлика между методите POST и PUT е различното значение на идентификатора на искания ресурс. URI в POST заявката идентифицира ресурса, който обработва обекта, включен в тялото на съобщението. Този ресурс може да бъде приложение, което получава данни. За разлика от това, URI в заявка PUT идентифицира обекта, включен в заявката като тяло на съобщението, тоест потребителският агент присвоява дадения URI на включения ресурс.

Методът DELETE изисква от сървъра да изтрие ресурс, който има искания идентификатор. Заявка с този метод може да бъде отхвърлена от сървъра, ако потребителят няма разрешение да изтрие искания ресурс.

Методът TRACE се използва за връщане на подадената заявка на ниво HTTP протокол. Получателят на заявката (Web сървър) изпраща полученото съобщение обратно на клиента като тяло на обект на отговор с код на състоянието 200 (OK). Заявката TRACE не трябва да съдържа тяло на съобщението.

TRACE позволява на клиента да види какво получава сървърът от другия край и да използва тези данни за тестване или диагностика.

Ако заявката е успешна, тогава отговорът съдържа цялото съобщение за заявка в тялото на съобщението за отговор, а заглавката на обекта Content-Type е "message / http".

Кодове за отговори

След като получи и интерпретира съобщението за заявка, сървърът отговаря с HTTP съобщение за отговор.

Първият ред на отговора е Status-Line. Състои се от версия на протокола, цифров код на състоянието, обяснителна фраза, разделена с интервали, и знаци в края на реда:

<Версия HTTP> <Код состояния> <Поясняющая фраза>

Версията на протокола има същото значение като в заявката.

Елементът Status-Code е целочислен трицифрен (трицифрен) код на резултата от разбирането и удовлетворяването на заявката. Причината-фраза е кратко текстово описание на кода на състоянието. Кодът на състоянието е за софтуерна обработка, а обяснителната фраза е за потребителите.

Първата цифра от кода на състоянието идентифицира класа на отговора. Последните две цифри нямат конкретна роля в класификацията. Има 5 стойности за първата цифра:

1xx: Информационни кодове - заявката е получена, обработката продължава.

2xx: Успешни кодове - Действието беше успешно получено, разбрано и обработено.

3xx: Кодове за пренасочване - трябва да се предприемат допълнителни действия, за да завършите заявката.

4xx: Клиентски кодове за грешки – Заявката има синтактична грешка или не може да бъде изпълнена.

5xx: Кодове за грешки на сървъра - Сървърът не може да изпълни валидна заявка.

Фразата на причината за всеки код на състоянието е посочена в RFC 2068 и се препоръчва, но може да бъде заменена с еквивалент, без да се засяга протоколът. Например, в локализирани рускоезични версии на HTTP сървъри тези фрази се заменят с руски. Таблица 2 изброява кодовете за отговор на HTTP сървъра.

таблица 2

Кодове за отговор на HTTP сървър

код Обяснителна фраза съгласно RFC 2068 Еквивалентна обяснителна фраза на руски език
1xx: Информационни кодове
продължи продължи
2xx: Кодове за успех
Добре Добре
Създаден Създадено от
Няма съдържание Няма съдържание
Нулиране на съдържанието Нулиране на съдържанието
Частично съдържание Частично съдържание
3xx: Кодове за пренасочване
Временно преместен Временно преместен
Не е модифициран Не е модифициран
4xx: Кодове за грешки на клиента
Неправилна заявка Повредена заявка
Неоторизиран Неоторизиран
Не е намерен Не е намерен
Методът не е разрешен Методът не е разрешен
Искането е изтекло Времето за изчакване на заявката изтече
Конфликт Конфликт
Задължителна дължина Необходима дължина
Обектът на заявката е твърде голям Обектът на заявката е твърде голям
5xx: Кодове за грешки на сървъра
Вътрешна грешка на сървъра Вътрешна грешка на сървъра
Не се изпълнява Не се изпълнява
Услугата не е достъпна Услугата е недостъпна
HTTP версията не се поддържа Неподдържана HTTP версия

Лентата на състоянието е последвана от заглавките (общи, отговор и обект) и евентуално тялото на съобщението.

Една от най-важните функции на уеб сървъра е да осигури достъп до част от локалната файлова система. За да направите това, в настройките на сървъра е посочена определена директория, която е root за този сървър. За да публикувате документ, тоест, за да го направите достъпен за потребители, които са "посетили" този сървър (осъществили връзка с него чрез HTTP), трябва да копирате този документ в основната директория на уеб сървъра или в една от неговите поддиректории . При свързване чрез HTTP протокол на сървъра се създава процес с потребителски права, който по правило не съществува в действителност, но е специално създаден за преглед на ресурсите на сървъра. Чрез конфигуриране на правата и разрешенията на този потребител можете да контролирате достъпа до уеб ресурси.

Нека разгледаме най-простия пример за HTTP заявка. Ако въведете адреса http://yandex.ru в адресния прозорец на браузъра, тогава браузърът ще определи IP адреса на сървъра yandex.ru и ще му изпрати следната HTTP заявка на 80-ия порт:

ВЗЕМЕТЕ http://yandex.ru/ HTTP / 1.0

Приемете: image / gif, image / x-xbitmap, image / jpeg, image / pjpeg, application / vnd.ms-excel, application / msword, application / vnd.ms-powerpoint, * / *

Приемане-език: ru

Бисквитка: yandexuid = 2464977781018373381

Потребителски агент: Mozilla / 4.0 (съвместим; MSIE 5.5; Windows 98)
Домакин: yandex.ru

Референт: narod.ru

Прокси връзка: Поддържайте жив

Заявката се изпраща в нешифрован текст. Най-важната част от заявката се намира в първия ред: Това е типът на заявката (GET), URL адресът на искания документ (http://yandex.ru) и версията на HTTP протокола (HTTP / 1.0 ). Следните са параметрите на заявката. Всеки ред съответства на един параметър. Редът започва с името на параметъра, последвано от двоеточие и стойността на параметъра.

Приемам е типът данни, които браузърът може да приеме (кодирани с MIME).

Accept-Language е предпочитаният език, на който браузърът иска да приема данни. User-Agent - типът програма, изпратила заявката.

Хост - DNS (или IP) име на хоста, към който е адресирана заявката.

Cookie - бисквитки (данни, които са запазени от сървъра на локалния диск на клиента при последното посещение на този хост).

Referer - хостът, от чиято страница изпращаме заявката. Така че, например, ако сме на страницата http://narod.ru и щракнете върху връзката http: //yandex.ru там, тогава заявката ще бъде изпратена до хоста yandex.ru и полето за заявка за референт ще съдържа името на хоста на narod.ru.

Наборът от параметри на заявката не е фиксиран. В допълнение към горните, може да има и други параметри.

Най-интересните параметри са референт и бисквитка. Тези параметри се използват главно за удостоверяване на потребителя на сървъра.

GET заявката може да съдържа данни, предавани от клиента към сървъра. Те се предават директно през URL адреса с помощта на CGI протокола. Данните се отделят от URL адреса с „?" и са свързани със знака „&“:

ВЗЕМЕТЕ ?<параметр 1>=<значение 1>&<параметр 2>=<значение 2>&…

Този тип пренос на данни към сървъра е удобен, но има ограничения за обема. Твърде големи количества данни не могат да бъдат прехвърлени чрез URL адреса. За такива цели има друг тип заявка: POST заявка. POST заявката е много подобна на GET заявка, с единствената разлика, че данните в POST заявката се предават отделно от самата заглавка на заявката:

Тялото на заявката трябва да бъде отделено от заглавката с празен ред. Ако сървърът срещне празен низ в POST заявка, тогава всичко, което следва, разглежда тялото на заявката (предадени данни). Обърнете внимание на следното: форматът на данните в тялото на POST заявката е произволен. Въпреки че CGI форматът се използва най-често, той не е задължителен. В допълнение, POST заявка не изисква тяло на заявката и може също да прехвърля данни чрез URL.

Освен CGI формата, понякога се използва т.нар. мултичастен формат (форматът на предаваните данни се определя от параметъра Content-Type):

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

Ако използвате Firefox, можете да използвате неговата уеб конзола. Той показва заглавките на заявката и съдържанието на предадените бисквитки. За да го стартирате, отворете менюто на браузъра, щракнете върху елемента "Уеб разработка" и изберете "Уеб конзола". В панела, който се показва, активирайте бутона "Мрежа". Въведете името на метода - пост в полето за филтър. В зависимост от целите си, щракнете върху бутона на формуляра за изпращане на необходимата заявка или опреснете страницата. Конзолата показва изпратената заявка. Щракнете върху него с мишката, за да видите повече подробности.

Браузърът Google Chrome има мощни инструменти за отстраняване на грешки. За да ги използвате, кликнете върху иконата с изображение на гаечен ключ и след това отворете елемента „Конфигуриране и управление на Google Chrome“. Изберете „Инструменти“ и стартирайте „Инструменти за разработчици“. В лентата с инструменти изберете раздела Мрежа и изпратете заявката си. Намерете необходимата заявка в списъка и кликнете върху нея, за да проучите подробностите.

Браузърът Opera има вградени инструменти за разработчици за Opera Dragonfly. За да ги стартирате, щракнете с десния бутон върху необходимата страница и изберете елемента от контекстното меню "Проверка на елемента". Отидете в раздела Мрежа за инструменти за програмисти и изпратете заявката си. Намерете го в списъка и го разширете, за да разгледате заглавките и отговорите на сървъра.

Internet Explorer 9 съдържа комплект, наречен F12 Developer Tools, който предоставя подробна информация за изпълнените заявки. Те се стартират с натискане на бутона F12 или с помощта на менюто "Услуга", съдържащо едноименния елемент. За да видите заявката, отидете в раздела "Мрежа". Намерете дадената заявка в резюмето и щракнете двукратно, за да разширите подробностите.

Браузърите Chrome и Internet Explorer 9 съдържат вградени инструменти, които ви позволяват да разгледате изпратената заявка за публикуване в пълни подробности. За пълни подробности използвайте тях или Firefox с инсталиран плъгин Firebug. Той е много удобен за често разглеждане на заявки, например при отстраняване на грешки в сайтове.

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