Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТ.doc
Скачиваний:
18
Добавлен:
27.11.2019
Размер:
1.12 Mб
Скачать

5.3 Протокол tftp

TFTP - тоже протокол FTP, но поверх протокола UDP (т.е. протокол без гарантированной доставки). Может использоваться в локальной сети, где скорость передачи важнее. На практике используется редко.

5.4 Программы клиенты

FTP - программа запускается с командной строки.

Windows Comander - может работать как FTP-клиент. Позволяет работать с удаленными каталогами также как с локальными.

NetVampire - Специализированный FTP-клиент, который позволяет качать большие файлы и качать по плохим каналам.

  • Лекция 6 - Служба WWW. Протокол HTTP.

  • Семенов Ю.А. (ГНЦ ИТЭФ)

  • Гипертекстный протокол HTTP Семенов Ю.А. (ГНЦ ИТЭФ)

  • Лабиринт Internet. Павел Храмцов, Электронинформ, 1996

  • Описание протокола HTTP

  • HTTP -- CGI

  • HTTP - Hypertext Transfer Protocol Overview - официальная документация

6.1 Служба www

Служба WWW (World Wide Web) - предназначена для обмена гипертекстовой информацией.

Проект был предложен в 1989 году. В 1993 появился первый браузер.

WWW построена по схеме "клиент-сервер".

Браузер (Internet Explorer, Opera ...) является мультипротокольным клиентом и интерпретатором HTML. И как типичный интерпретатор, клиент в зависимости от команд (тегов) выполняет различные функции. В круг этих функций входит не только размещение текста на экране, но обмен информацией с сервером по мере анализа полученного HTML-текста, что наиболее наглядно происходит при отображении встроенных в текст графических образов.

Сервер HTTP (Apeche, IIS ...) обрабатывает запросы клиента на получение файла (в самом простом случае).

Взаимодействие клиент и сервера по протоколу HTTP.

В начале служба WWW базировалась на трех стандартах:

  • HTML (HyperText Markup Lan-guage) - язык гипертекстовой разметки документов ;

  • URL (Universal Resource Locator) - универсальный способ адресации ресурсов в сети ;

  • HTTP (HyperText Transfer Protocol) - протокол обмена гипертекстовой информацией.

Позже добавили:

  • CGI (Common Gateway Interface) - универсальный интерфейс шлюзов. Создан для взаимодействия HTTP - сервера с другими программами, установленными на сервере (например, СУБД).

6.2 Протокол http

Первый документ (но не стандарт) - RFC1945 (Hypertext Transfer Protocol -- HTTP/1.0 T. Berners-Lee, R. Fielding, H. Frystyk May 1996)

Последняя версия - RFC2616 (Hypertext Transfer Protocol -- HTTP/1.1 R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee June 1999)

Hypertext Transfer Protocol - протокол передачи гипертекста, протокол высокого уровня (а именно, уровня приложений). . Используется службой WWW для передачи Web-страниц.

Протокол HTTP определяет запрос-ответный способ взаимодействия между программой-клиентом и программой-сервером в рамках технологии World Wide Web. Ниже приведены примеры запроса клиента и ответа сервера:

Листинг запроса и ответа HTTP

Установка соединения Connecting to ipm.kstu.ru ... Connected to ipm.kstu.ru [195.208.44.20]

Запрос клиента: GET /internet/index.php HTTP/1.1 - (запрос файла и указание протокола HTTP/1.1) Connection: close - (закрыть соединение после отправки файла) Host: ipm.kstu.ru - (указание адреса сервера) Accept: */* - (предпочтение типов данных) Cache-Control: no-cache - (не кешировать) Referer: http://ipm.kstu.ru/internet/ - (от куда пришел клиент) User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 95) - (название программы клиента)

Ответ сервера HTTP/1.0 200 OK - (какой протокол используется, 200 - означает, что файл найден) Date: Wed, 23 Oct 2002 08:32:31 GMT - (дата и время ответа) Server: Apache/1.3.26 (Unix) PHP/4.1.2 rus/PL30.15 - (название, версия и модули http-сервера) X-Powered-By: PHP/4.1.2 - (чем создана страница) Connection: close - (закрыть соединение после получения файла) Content-Type: text/html; charset=windows-1251 - (тип данных html, кодировка windows-1251) Дальше идет содержимое файла (тело запроса).

Работа по протоколу HTTP происходит следующим образом: программа-клиент устанавливает TCP-соединение с сервером (стандартный номер порта-80) и выдает ему HTTP-запрос. Сервер обрабатывает этот запрос и выдает HTTP-ответ клиенту.

HTTP-запрос состоит из заголовка запроса и тела запроса, разделенных пустой строкой. Тело запроса может отсутствовать.

Заголовок запроса состоит из главной (первой) строки запроса и последующих строк, уточняющих запрос в главной строке. Последующие строки также могут отсутствовать.

Запрос в главной строке состоит из трех частей, разделенных пробелами:

1) Метод (иначе говоря, команда HTTP): GET - Метод GET служит для получения любой информации, в соответствии URI-запроса. HEAD - запрос заголовка документа. Отличается от GET тем, что выдается только заголовок запроса с информацией о документе. Сам документ не выдается. POST - этот метод применяется для передачи данных CGI-скриптам. Сами данные следуют в последующих строках запроса в виде параметров. PUT - поместить документ на сервере. Запрос с этим методом имеет тело, в котором передается сам документ.

DELETE - используется для удаления ресурсов, идентифицированных с помощью URI-запроса

2) Ресурс - это путь к определенному файлу на сервере (называется URI), который клиент хочет получить (или разместить - для метода PUT). Если ресурс - просто какой-либо файл для считывания, сервер должен по этому запросу выдать его в теле ответа. Если же это путь к какому-либо CGI-скрипту, то сервер запускает скрипт и возвращает результат его выполнения. Кстати, благодаря такой унификации ресурсов для клиента практически безразлично, что он представляет собой на сервере.

3) Версия протокола - версия протокола HTTP, с которой работает клиентская программа.

Строки после главной строки запроса имеют следующий формат: Параметр: значение.

Таким образом, задаются параметры запроса. Это является необязательным, все строки после главной строки запроса могут отсутствовать; в этом случае сервер принимает их значение по умолчанию или по результатам предыдущего запроса (при работе в режиме Keep-Alive). 6.2.1 Некоторые параметры HTTP-запроса:

Connection (соединение) - может принимать значения Keep-Alive и close. Keep-Alive ("оставить в живых") означает, что после выдачи данного документа соединение с сервером не разрывается, и можно выдавать еще запросы. Большинство браузеров работают именно в режиме Keep-Alive, так как он позволяет за одно соединение с сервером "скачать" html-страницу и рисунки к ней. Будучи однажды установленным, режим Keep-Alive сохраняется до первой ошибки или до явного указания в очередном запросе Connection: close. close ("закрыть") - соединение закрывается после ответа на данный запрос.

User-Agent - значением является "кодовое обозначение" браузера, например: Mozilla/4.0 (compatible; MSIE 5.0; Windows 95; DigExt)

Accept - список поддерживаемых браузером типов содержимого в порядке их предпочтения данным браузером, например: Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*

Это, очевидно, нужно для случая, когда сервер может выдавать один и тот же документ в разных форматах.

Значение этого параметра используется в основном CGI-скриптами для формирования ответа, адаптированного для данного браузера.

Referer - URL, с которого перешли на этот ресурс.

Host - имя хоста, с которого запрашивается ресурс. Полезно, если на сервере имеется несколько виртуальных серверов под одним IP-адресом. В этом случае имя виртуального сервера определяется по этому полю.

Accept-Language - поддерживаемый язык. Имеет значение для сервера, который может выдавать один и тот же документ в разных языковых версиях.