Введение в Интернет
Основные команды протокола http
Основные команды протокола HTTP следующие:
OPTIONS - Запрос информации об опциях соединения (например, методах, типах документов, кодировках), которые поддерживает сервер для запрашиваемого ресурса.
Если идентификатор запрашиваемого ресурса – звездочка ( "*" ), то запрос предназначен для обращения к серверу в целом.
GET - Позволяет получить информацию, связанную с запрашиваемым ресурсом.
Если идентификатор запрашиваемого ресурса указывает на документ, то сервер возвращает содержимое этого документа (содержимое файла).
Если запрашиваемый ресурс является приложением (программой), формирующим в процессе своей работы некоторые данные, то в теле сообщения ответа возвращаются эти данные.
Если идентификатор запрашиваемого ресурса указывает на директорию (каталог, папку), то, в зависимости от настроек сервера, может быть возвращено либо содержимое директории (список файлов), либо содержимое одного из файлов, находящегося в этой директории (как правило, index.html). В случае запроса папки ее имя может указываться как с символом "/" на конце, так и без него. При отсутствии на конце идентификатора ресурса данного символа сервер выдает один из ответов с перенаправлением (с кодами статуса 301 или 302).
Разновидностями команды GET является "условный GET" ("conditional GET") и "частичный GET" ("partial GET"). Условный GET запрашивает передачу объекта, только если он удовлетворяет условиям, описанным в приведенных заголовках. Частичный GET запрашивает передачу только части объекта.
HEAD - Идентична команде GET, за исключением того, что сервер не возвращает в ответе тело сообщения.
POST - Используется для запроса, при котором адресуемый сервер принимает данные, включенные в тело сообщения (объект) запроса, и отправляет их на обработку приложению, указанному как запрашиваемый ресурс.
PUT - Тело сообщения, которое передается в запросе, сохраняется на сервере, причем идентификатор запрашиваемого ресурса будет идентификатором сохраненного документа.
DELETE - Запрос на удаление ресурса, имеющего запрашиваемый идентификатор.
TRACE - Используется для тестирования или диагностики. Получатель запроса (сервер Web) отправляет полученное сообщение обратно клиенту как тело сообщения ответа.
Ответ сервера по HTTP
После получения и интерпретации сообщения запроса, сервер отвечает сообщением HTTP ответа.
Первая строка ответа – это строка состояния (Status-Line):
<Версия HTTP> <Код состояния> <Поясняющая фраза>
Код состояния ( Status-Code ) – это целочисленный трехразрядный код результата понимания и удовлетворения запроса. Поясняющая фраза (Reason-Phrase) – короткое текстовое описание кода состояния. Код состояния предназначен для обработки программным обеспечением, а поясняющая фраза предназначена для пользователей.
Первая цифра кода состояния определяет класс ответа. Последние две цифры не имеют определенной роли в классификации. Имеется 5 значений первой цифры:
- 1xx: Информационные коды – запрос получен, продолжается обработка.
- 2xx: Успешные коды – действие было успешно получено, понято и обработано.
- 3xx: Коды перенаправления – для выполнения запроса должны быть предприняты дальнейшие действия.
- 4xx: Коды ошибок клиента – запрос имеет ошибку синтаксиса или не может быть выполнен.
- 5xx: Коды ошибок сервера – сервер не в состоянии выполнить допустимый запрос.
За строкой состояния следуют заголовки (общие, ответа и объекта) и, возможно, тело сообщения.
Гипертекст
Гипертекст — это такая форма организации текстового материала, при которой его единицы представлены не в линейной последовательности, а как система явно указанных возможных переходов, связей между ними. Следуя этим связям, можно читать материал в любом порядке, образуя разные линейные тексты. Часто гипертекстовая информация представляется в виде набора связанных узлов. Читатели могут изучать информацию различными способами, перемещаясь от одного узла к другому.
Гипертекст - принцип организации информационных массивов, при котором отдельные информационные элементы связаны между собой ассоциативными отношениями, обеспечивающими быстрый поиск необходимой информации и/или просмотр взаимосвязанных данных.
Ассоциативная связь - вид связи, устанавливаемый исходя из заданного сочетания признаков данных, которые образуют упорядоченные последовательные цепочки. Указатели на связанные данные могут размещаться в самих данных или программных средствах управления базой данных.
В компьютерной терминологии, гипертекст — размеченный текст, содержащий в себе ссылки на внешние ресурсы. Примером гипертекста могут служить документы на HTML (гипертекстовом языке разметки), размещённые в Интернет.
Universal Resource Identifier и Universal Resource Locator
Для идентификации ресурсов (зачастую файлов или их частей) в WWW используются единообразные идентификаторы ресурсов URI (англ. Uniform Resource Identifier). URI — это короткая строка, позволяющая идентифицировать какой-либо ресурс: документ, изображение, файл, службу, ящик электронной почты и т. д. URI предоставляет простой и расширяемый способ идентификации ресурсов. Расширяемость URI означает, что уже существуют несколько схем идентификации внутри URI, и ещё больше будет создано в будущем.
В базовом виде URI представляется как:
<схема>:<идентификатор-в-зависимости-от-схемы>
где: <схема> - схема обращения к ресурсу, например http, ftp, mailto, urn
<идентификатор-в-зависимости-от-схемы> - непосредственный идентификатор ресурса, вид которого зависит от выбранной схемы обращения к ресурсу.
Часть идентификатора URI без схемы обращения к ресурсу часто называется "ссылкой URI". Прецеденты применения ссылок URI имеются в HTML, XHTML, XML и XSLT. Процесс превращения ссылки URI в абсолютную форму URI называют разрешением URI.
Примеры абсолютных URI:
http://ru.wikipedia.org/wiki/URI ftp://ftp.is.co.za/rfc/rfc1808.txt file://C:\UserName.HostName\Projects\Wikipedia_Articles\URI.xml mailto:John.Doe@example.com news:comp.infosystems.www.servers.unix data:text/plain;charset=iso-8859-7,%be%fg%be tel:+1-816-555-1212 telnet://192.0.2.16:80/
Примеры ссылок URI:
/relative/URI/with/absolute/path/to/resource.txt relative/path/to/resource.txt ../../../resource.txt resource.txt /resource.txt #frag01 #frag01