Учебный курс Введение в HTML и CSS Лекция 2 Схемы адресации ресурсов Internet и HTTP кандидат технических наук Павел Брониславович Храмцов paul@kiae.su 1 WWW: Схемы адресации ресурсов Internet Схема HTTP. http://polyn.net.kiae.su/polyn/manifest.html http://144.206.160.40/risk/risk.htm http://144.206.130.137:8080/altai/index.htm http://polyn.net.kiae.su/altai/volume4.html#first http://polyn.net.kiae.su/isindex.html?keyword1+keyword2 http://polyn.net.kiae.su/isindex.html?keyword1%20keyword2 http://polyn.net.kiae.su/isindex.html?field1=value1&field2=value Схема FTP: ftp://nobody:password@polyn.net.kiae.su/users/local/pub 2 WWW: Схемы адресации ресурсов Internet Схема Gopher: gopher://gopher.kiae.su:70:/7/kuku (поиск по слову “kuku”) Схема MAILTO: mailto:paul@quest.polyn.kiae.su Схема NEWS: news:comp.infosystems.gopher (список) news:086@comp.infosystems.gopher (текст статьи) Схема NNTP nntp:comp.infosystems.gopher/086 3 WWW: Схемы адресации ресурсов Internet Схема TELNET : telnet://guest:password@apollo.polyn.kiae.su Схема WAIS : wais://wais.think.com/wais?guide wais://wais.think.com/wais/wtype/039=/kuku/kuku.txt Схема FILE : file:///C|/text/html/index.htm 4 WWW: Схемы адресации ресурсов Internet 1. Универсальный идентификатор ресурса был придуман для обеспечения однотипности идентификации информационных ресурсов Интернета. 2. Его реализации отличаются друг от друга способом реализации и набором дейтсвий, которые выполняет прикладная программа при обработке идентификатора. 3. Идентификатор позволяет описать не только существующие информационные ресурсы Интернета и технологии доступа к ним, но и возможные будущие информационные ресурсы, построенные на принципах, отличных от современных технологий. 5 WWW: HypetText Transfer Protocol Принцип работы: • HTTP – это протокол, реализующий схему «клиент-сервер» • Обмен данными между клиентом и сервером называется транзакцией • Транзакция состоит из запроса клиента и ответа сервера • Каждый запрос(ответ) состоят из: строки запроса(ответа), раздела заголовка, тела. 6 Принцип работы: WWW: HypetText Transfer Protocol • Клиент инициирует транзакцию, обращаясь на 80-ый порт TCP. • Посылает команду, которая называется методом, адрес документа и версию протокола: GET /index.html HTTP/1.1 3. Со следующей строки запроса начинается заголовок запроса: User-Agent: Mozilla Accept: image/gif Host: www.kuku.ru 4. Далее следует пустая строка, которая отделяет заголовок от тела 7 WWW: HypetText Transfer Protocol Принцип работы: • Сервер отвечает строкой состояния: HTTP/1.1 200 OK 2. Далее со следующей строки следует заголовок Date: Thu, 27 Mar 2008 11:56:04 GMT Server: Apache/2.2.4 (Unix) PHP/4.4.6 mod_ssl/2.2.4 OpenSSL/0.9.8d Content-Length: 161 Connection: close Content-Type: text/html; charset=windows-1251 3. Через пустую строку посылаются данные в теле ответа 8 WWW: HypetText Transfer Protocol Пример: %telnet ipgeobase.ru 80 Trying 194.85.91.253... Connected to ipgeobase.ru. Escape character is '^]'. GET / HTTP/1.0 HTTP/1.1 200 OK Date: Thu, 27 Mar 2008 11:56:04 GMT Server: Apache/2.2.4 (Unix) PHP/4.4.6 mod_ssl/2.2.4 OpenSSL/0.9.8d Content-Length: 161 Connection: close Content-Type: text/html; charset=windows-1251 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <html> <head> <title>Index of /</title> </head> <body> <h1>Index of /</h1> <ul></ul> </body></html> Connection closed by foreign host. 9 WWW: HypetText Transfer Protocol Методы: GET - запрашивает данные полностью HEAD - запрашивает только заголовок POST - запрашивает данные полностью LINK - связывает заголовок с документом на сервере UNLINK – отменяет LINK PUT - публикует данные на сервере DELETE – удаляет данные на сервере OPTIONS – запрашивает информацию о параметрах соединения и сервера TRACE – используется для отладки 10 WWW: HypetText Transfer Protocol GET - запрашивает данные полностью GET / HTTP/1.0 HTTP/1.1 200 OK Date: Thu, 27 Mar 2008 11:56:04 GMT Server: Apache/2.2.4 (Unix) PHP/4.4.6 mod_ssl/2.2.4 OpenSSL/0.9.8d Content-Length: 161 Connection: close Content-Type: text/html; charset=windows-1251 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <html> <head> <title>Index of /</title> </head> <body> <h1>Index of /</h1> <ul></ul> </body></html> 11 WWW: HypetText Transfer Protocol HEAD / HTTP/1.0 HTTP/1.1 200 OK Date: Thu, 27 Mar 2008 12:05:34 GMT Server: Apache/2.2.4 (Unix) PHP/4.4.6 mod_ssl/2.2.4 OpenSSL/0.9.8d Connection: close Content-Type: text/html; charset=windows-1251 12 WWW: HypetText Transfer Protocol POST /test.cgi HTTP/1.0 User-Agent: Mozilla/2.02Gold (WinNT; I) Accept: image/gif Host: www.kuku.ru Content-type: application/x-www-form-urlencoded Content-length: 21 Field1=kuku&field2=20 13 WWW: HypetText Transfer Protocol Коды ответов: 100-199 200-299 300-399 400-499 500-599 Информационные Запрос успешный Переадресация Запрос неполный Ошибка сервера 14 WWW: HypetText Transfer Protocol Коды наиболее «популярных» ответов: 200 Ок 301 Moved Permanently 302 Moved Temporarily 304 Not Modified 305 Use proxy 403 Forbidden 404 Not Found 500 Internal Server Error Запрос обработан успешно Страница перемещена Страница перемещена временно Не изменился Нужно использовать сервер-посредник Доступ не разрешен Страница не найдена 15 WWW: HypetText Transfer Protocol Наиболее «популярные» заголовки: Cache-Control Pragma: no-cache Host: Cookie: Set-Cookie: Referer: Content-Length: Expiries: Last-Modified: Content-Type: управление кэшированием страниц имя хоста (виртуальный хостинг) поддержка сессий ссылающийся документ размер тела документа время изменения документа дата последней модификации типа содержания тела 16