На главную | Содержание | Назад | Вперёд
Наши друзья

 

 

URL и HTML

Изучение языка HTML выходит за рамки этой книги. (За более подробной информа­цией об этом языке обратитесь к книге «Программирование в Web для профессиона­лов», опубликована на русском языке издательством «Попурри», 1997 г.) Сейчас вам достаточно знать, что это язык структуры документов Web. Гипертекст является его неотъемлемой частью. Когда броузер готовит страницу к выводу на экран, обычно гипертекстовые ссылки цветом, отличным от текущего. При создании документов Web HTML позволяет вам добавлять в них любые гипертекстовые ссылки.
Для того чтобы обозначить гипертекстовую ссылку в документе Web, использует­ся специальный элемент HTML, так называемый анкер (anchor — якорь). Факти­чески анкер HTML представляет собой тег, встраиваемый в документ Web и обо­значающий ссылку на URL, которую броузер связывает с определенным текстом либо графическим изображением. URL необходим, поскольку он информирует броузер об адресах гиперсвязанных ресурсов. Другими словами, анкер содержит URL ресурса и соответствует гипертексту либо картинке. Далее приводится при­мер, содержащий ссылку на расположенную на два уровня выше текущей страницы. Ссылка указывает на gif-фаш с изображением:
АБСОЛЮТНЫЕ и   ОТНОСИТЕЛЬНЫЕ URL
Гипертекстовый документ — это документ, содержащий несколько ссылок. Web представляет собой огромный лабиринт гиперсвязанных документов. Когда со­здается документ Web, его автор вставляет в него ссылки на другие документы (созданные им либо кем-нибудь другим). Каждая ссылка требует указания адре­са URL для идентификации соответствующего объекта. Броузеры используют URL для поиска объектов Web. Когда автор указывает URL, он может исполь­зовать два типа адресов: абсолютный URL и относительный URL.
Абсолютный URL содержит полный адрес объекта и протокол. Другими слова­ми, если указана схема URL (например, http), то мы имеем дело с абсолютным URL. Вот пример такого адреса:
http://www.jamsa.com/catalog/hacker/hacker.htm
Относительный URL использует URL текущего документа, открытого в вашем броузере. Применяя ту же схему, броузер реконструирует URL, изменяя только некоторые имена и расширения файлов. Например, рассмотрим абсолютный URL:
http://www.jams а.com/catalog/catalog.htm
Если в документе HTML указана ссылка на относительный URL hacker/hacker.htm, то броузер изменит текущий абсолютный URL на http://www.jamsa.com/catalog/ hacker/hacker.htm:
<А HREF="/hacker/hacker.htm"> Hacker Files</A>
Примечание. Использование точки (.) в начале относительного URL не является обязательным. В обоих случаях результат будет одинаков.
АБСОЛЮТНЫЙ URL
ОТНОСИТЕЛЬНЫЙ URL
ДЕТАЛИ ОТНОСИТЕЛЬНОГО URL
Иногда при создании ссылок в документах Web может потребоваться указать на один уровень каталогов вверх. В таких случаях автор может поставить перед относительным URL две точки (..). Предположим, что абсолютный URL теку­щего документа следующий:
http: //www. j amsa. com/dirl/dir2/file . ext
Если относительный URL имеет вид ..dir3/newfite.ex(cM. ниже), то броузер из­менит его на абсолютный URL http://www.jamsa.com/dirl/dir3/newflle.exr.
<А HREF="..dir3/newfile.ext">New File Link</A>
Если же нужно подняться на несколько уровней вверх, нужн'о использовать не­сколько операторов двойной тонки (double dot), разделенных при помощи косой черты. Например, предположим, что текущим является документ со следую­щим абсолютным URL:
http://www.jamsa.com/dirl/dir2/file.ext
Если гиперссылка указывает на относительный URL ../../dir3/newfile.ext(cM. ниже), то броузер заменит его на http://www.jamsa.com/dir3/newfile.ext.
<А HREF="../../dir3/newfile.ext">New Pile Link</A>
Предположим, что автор хочет добавить новый путь прямо к адресу сервера. Другими словами, он игнорирует все каталоги. В таких случаях необходимо использовать слэш (/). Например, предположим, что абсолютный URL таков:
http://www;jamsa.com/dirl/dir2/file.ext
Если расположенная в документе гиперссылка указывает на относительный URL /dir3/newfile.ext(cM. ниже), то броузер изменит ее на абсолютный URL http:// www.j amsa. com/dir3/newfileexf.
<A HREF="/dir3/newfile.ext">New File Link</A>
МЕТОДЫ HTTP
Как уже обсуждалось, запрос клиента HTTP (обычно на передачу файла) явля­ется вторым этапом транзакции HTTP. Такой запрос разбивается на две катего­рии: простой запрос (Simple-Request) и полный запрос (Full-Request). Напом­ню, что в HTTP 0.9 использовался только простой запрос. В современных вер­сиях протокола преимущественно используется полный. Такой запрос требует, по крайней мере, строки запроса. Строка состоит из названия метода, далее следует URI и версия протокола HTTP. В следующих разделах мы подробнее рассмотрим три основных метода запросов HTTP.
Методами мы называем команды HTTP. Единственным методом в протоколе версии 0.9 был GET, его применяли для извлечения информации. Если вы посмотрите на синтаксис простого запроса HTTP, то сможете легко написать про­грамму, которая передает URI и символы CRLF после команды GET.
GET <uri> CRLF
Этот запрос указывает серверу HTTP найти и передать объект с соответствую­щим URI. Объектом может быть документ HTML, изображение, аудио- или видеофайл и др. Поскольку клиент дает запрос на объект конкретного типа, он должен знать, как его обработать. Например, если броузер запрашивает изоб­ражение, он должен знать, как выводить его на экран. В итоге при работе только с простыми запросами сервер HTTP будет мало чем отличаться от обыч­ного файл-сервера.
Полный запрос HTTP начинается со строки запроса, далее следует CRLF, тем идет информация с отдельным заголовком (необязательно), потом стоит CRLF, в конце следует тело объекта (необязательно).
В разделе «Поля заголовка запроса» я подробно расскажу о стилях заголовка. Тело объекта представляет собой просто ссылку на требуемые данные. Как мы уже знаем, строка запроса состоит из нескольких частей: метода (команды) HTTP, URI, версии протокола и CRLF. Каждый из элементов отделен от других пробе­лами (SP). Не допускается использование дополнительных символов CRLF. Формат строки запроса таков:
Отличие полного запроса от простого состоит в том, что в первом указывается версия протокола, а также может использоваться не один метод. Далее мы опи­шем три основных метода HTTP - GET, HEAD и POST. Метод HTTP сообщает серверу, что необходимо сделать с ресурсом URI. Список методов для конкрет­ного ресурса может изменяться динамически. Из кода статуса и строки состоя­ния ответа сервера ваш броузер узнает о том, может ли сервер выполнять конк­ретные методы применительно к ресурсу. Сервер Web должен вернуть код 501, если метод либо неизвестен, либо невыполним. Далее описывается набор об­щих методов HTTP (GET, HEAD и POST).
МЕТОД GET
Метод (ЖГпротокола HTTP запрашивает сервер на предмет информации, опре­деляемой URI. Сервер получает ее, используя адрес из запроса клиента. Метод GET называется условным, если в заголовке запроса клиента встречается поле В этом случае сервер передает клиенту информацию,
если она была изменена после даты, указанной в заголовке запроса. Если кли­ент уже загрузил подобные данные и кэширует их, нет необходимости переда­вать их еще раз. Поле If-Modified-Since мы рассмотрим далее в этой главе. показано, как работает условный метод GET.
МЕТОД HEAD
Метод HEAD почти идентичен методу GET, за исключением того, что сервер не возвращает в ответ на запрос тело объекта. Приложения используют этот метод, чтобы получить информацию о ресурсе, не загружая его к себе на компьютер. Такая информация (еще ее называют метаинформациеЩдолжна быть аналогич­на заголовкам ответа на запрос с методом GET. Программы используют метод HEAD для проверки гипертекстовых ссылок на правильность, доступность и из­менения.
В отличие от GET, для метода HEAD не существует понятия «условного». Если поле If-Modified-Situ вставить в запрос с HEAD, то результат не изменится (дан­ное поле просто будет проигнорировано).
МЕТОД POST
Метод POST протокола HTTP выдает запрос к Web-серверу на объект, адрес которого указан в запросе URI. Другими словами, при помощи этого метода клиент говорит серверу Web: «Это новый ресурс, и его необходимо использовать с URI, переданным мной». В большинстве случаев метод POST создает или записывает поверх существующей новую информацию, связанную с URI из за­проса. Однако успешное завершение POST не требует появления объекта как ресурса или доступности его для будущих ссылок. Поэтому операция с методом POST может в результате не привести к появлению ресурса с заданным Если сервер не может идентифицировать ресурс, указанный в URI, то он возвра­тит код статуса в виде 200 (ОК) либо 204 (нет содержимого). Если клиент создает ресурс на текущем сервере, ему необходимо организовать код статуса 201, опре­деляющий объект (обычно текст либо страницу HTML) и код статуса ответа сервера.
Корректное значение поля Content-Length (длина содержимого) требуется для всех запросов HTTP с методом POST. Сервер возвращает код статуса 400 (непра­вильный запрос), если ему не удается определить длину содержимого в запросе.
Далее мы более подробно рассмотрим это поле.

 

На главную | Содержание | Назад | Вперёд
 
Яндекс.Метрика