Слайд 2
Общие сведения
Интернет — всемирная система объединённых компьютерных сетей,
построенная на использовании протокола IP и маршрутизации пакетов данных.
Интернет образует глобальное информационное пространство, служит физической основой для Всемирной паутины и множества других систем (протоколов) передачи данных.
Слайд 3
Всемирная паутина — распределенная система, предоставляющая доступ к связанным
между собой документам, расположенным на различных компьютерах, подключенных к
Интернету. Всемирную паутину образуют миллионы web-серверов.
Слайд 5
Большинство ресурсов всемирной паутины представляет собой гипертекст. Гипертекстовые
документы, размещаемые во всемирной паутине, называются web-страницами.
Для загрузки и
просмотра web-страниц используются специальные программы — браузеры.
Слайд 6
Для облегчения создания, хранения и отображения гипертекста во
Всемирной паутине традиционно используется язык HTML (англ. HyperText Markup Language),
язык разметки гипертекста.
После того, как HTML-файл становится доступен веб-серверу, его начинают называть «веб-страницей».
В целом, Всемирная паутина стоит на «трёх китах»: HTTP, HTML и URL.
Слайд 7
Семантическая паутина — это направление развития Всемирной паутины —
это направление развития Всемирной паутины, целью которого является представление информации в виде,
пригодном для машинной обработки.
Семантическая паутина работает параллельно с обычной Паутиной и на её основе, используя протокол HTTPСемантическая паутина работает параллельно с обычной Паутиной и на её основе, используя протокол HTTP и идентификаторы ресурсов URI.
Слайд 8
URI (англ. Uniform Resource Identifier) — унифицированный (единообразный) идентификатор ресурса.
URI — это
последовательность символов, идентифицирующая абстрактный или физический ресурс.
Структура URI очень
гибка, синтаксис не сложен. В базовом виде URI представляется как:
<схема>:<идентификатор-в-зависимости-от-схемы>
Самый известный пример URI — это URL.
http://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D1%80%D0%
Слайд 9
Ключевые принципы
Интернет состоит из многих тысяч корпоративных, научных,
правительственных и домашних компьютерныхИнтернет состоит из многих тысяч корпоративных,
научных, правительственных и домашних компьютерных сетей. Объединение сетей разной архитектуры и топологииИнтернет состоит из многих тысяч корпоративных, научных, правительственных и домашних компьютерных сетей. Объединение сетей разной архитектуры и топологии стало возможно благодаря протоколу IPИнтернет состоит из многих тысяч корпоративных, научных, правительственных и домашних компьютерных сетей. Объединение сетей разной архитектуры и топологии стало возможно благодаря протоколу IP (англ. Internet Protocol) и принципу маршрутизации пакетов данных.
Слайд 10
Протокол IP используется для негарантированной доставки данных, разделяемых
на так называемые пакеты используется для негарантированной доставки данных, разделяемых
на так называемые пакеты от одного узла сети к другому.
IP-пакет — форматированный блок информации — форматированный блок информации, передаваемый по вычислительной сети — форматированный блок информации, передаваемый по вычислительной сети. Соединения вычислительных сетей, которые не поддерживают пакеты, такие как традиционные соединения типа «точка-точка» в телекоммуникациях, просто передают данные в виде последовательности байтов — форматированный блок информации, передаваемый по вычислительной сети. Соединения вычислительных сетей, которые не поддерживают пакеты, такие как традиционные соединения типа «точка-точка» в телекоммуникациях, просто передают данные в виде последовательности байтов, символов — форматированный блок информации, передаваемый по вычислительной сети. Соединения вычислительных сетей, которые не поддерживают пакеты, такие как традиционные соединения типа «точка-точка» в телекоммуникациях, просто передают данные в виде последовательности байтов, символов или битов.
Слайд 11
Transmission Control Protocol (TCP) — один из основных сетевых протоколов —
один из основных сетевых протоколов Интернета, предназначенный для управления передачей данных — один
из основных сетевых протоколов Интернета, предназначенный для управления передачей данных в сетях и подсетях TCP/IP.
TCP — это транспортный механизм, предоставляющий поток данных, с предварительной установкой соединения, за счёт этого дающий уверенность в достоверности получаемых данных, осуществляет повторный запрос данных в случае потери данных и устраняет дублирование при получении двух копий одного пакета.
Слайд 12
Сетевой протокол — набор правил, позволяющий осуществлять соединение
и обмен данными между двумя и более включёнными в сеть устройствами.
Систему
протоколов Интернет называют «стеком протоколов TCP/IP».
Слайд 13
Протокол IP был специально создан агностическим в отношении
физических каналов связи.
На стыках сетей специальные маршрутизаторыНа стыках
сетей специальные маршрутизаторы (программные или аппаратные) занимаются автоматической сортировкой и перенаправлением пакетов данных, исходя из IP-адресов получателей этих пакетов.
Слайд 14
Сетевая модель OSI (ЭМВОС) — абстрактная сетевая модель
— абстрактная сетевая модель для коммуникаций и разработки сетевых
протоколов — абстрактная сетевая модель для коммуникаций и разработки сетевых протоколов. Предлагает взгляд на компьютерную сеть с точки зрения измерений. Каждое измерение обслуживает свою часть процесса взаимодействия.
Слайд 16
HTTP
HTTP ( HyperText Transfer Protocol ) — протокол прикладного уровня передачи данных (изначально —
в виде гипертекстовых документов).
Слайд 17
Основой HTTP является технология «клиент-сервер».
Предполагается существование:
Потребителей (клиентов),
которые инициируют соединение и посылают запрос.
Поставщиков (серверов), которые
ожидают соединения для получения запроса, производят необходимые действия и возвращают обратно сообщение с результатом.
Слайд 18
Метод HTTP — последовательность из любых символов, кроме управляющих
и разделителей, указывающая на основную операцию над ресурсом.
Список методов:
GET,
HEAD, POST,
PUT, PATCH, DELETE, TRACE, LINK, UNLINK, CONNECT, OPTIONS.
Слайд 19
GET - используется для запроса содержимого указанного ресурса.
С помощью метода GET можно также начать какой-либо процесс.
HEAD - Аналогичен
методу GET, за исключением того, что в ответе сервера отсутствует тело.
POST - Применяется для передачи пользовательских данных заданному ресурсу.
Слайд 20
httplib
Этот модуль определяет классы, реализующие HTTP и HTTPS
протоколы.
Обычно он не используется непосредственно, его классы и методы
использует библиотека urllib для обработки URL адресов, которые используют HTTP и HTTPS.
Слайд 21
Классы httplib
class httplib.HTTPSConnection(…)
class httplib.HTTPResponse(…)
class httplib.HTTPMessage
(Provides utility functions to deal with HTTP
Headers.)
Также в этом модуле много объектов класса Exception.
Слайд 22
class httplib.HTTPConnection(host[, port[, strict[, timeout[, source_address]]]])
(предоставляет один сеанс с HTTP сервером.)
h3
= httplib.HTTPConnection('www.google.ru', 80)
h3 = httplib.HTTPConnection('www.google.ru’, 80, timeout=10)
Слайд 23
HTTPConnection.request(method, url[, body[, headers]])
request(…) отправляет запрос серверу используя HTTP метод
method и селектор url.
HTTPConnection.getresponse() вызывается после request(…) для получения
ответа от сервера. Возвращает объект класса HTTPResponse
HTTPConnection.close() прекращает связь с сервером.
Слайд 24
class httplib.HTTPResponse(sock[, debuglevel=0][, strict=0])
Объект - то, что возвращается
после успешного соединения.
Не инициализируется пользователем.
HTTPResponse.getheaders()
Возвращает список из пар (header, value). Этот список дает информацию о сайте и сервере.
Пример программы с использованием httlib:
import httplib
conn = httplib.HTTPConnection("www.python.org")
conn.request("GET", "/index.html")
j = conn.getresponse()
print j.getheaders()
Слайд 25
Urllib
Этот модуль предоставляет средства высокого уровня для чтения
сетевых ресурсов, используя различные протоколы.
Слайд 26
Определенные в этом модуле средства позволяют обращаться к
ресурсам через proxy- сервер, не требующий аутентификации.
Аутентификация— проверка принадлежности
субъекту доступа предъявленного им идентификатора; подтверждение подлинности.
(Не путать с авторизацией и идентификацией)
Слайд 27
Стоит отметить, что при работе с WWW используется
в основном протокол HTTP, однако WWW охватывает не только
HTTP,
но и многие другие протоколы
(FTP, gopher, HTTPS и т.п.).
Слайд 28
Средства urllib
urlopen(url [, data])
Создает и возвращает объект, реализующий
чтение ресурса url.
Использует HTTP метод GET по умолчанию.
Чтобы использовался метод POST необходимо указать строку data с данными в формате ‘application/x-www-form-urlencoded’.
Слайд 29
urlencode(dict) dict – словарь.
Возвращает строку с данными dict
в формате ‘application/x-www-form-urlencoded’. Возвращаемая строка состоит из фрагментов ‘key=value’,
разделенных ‘&’, где key и value преобразуются с помощью функции quote_plus().
quote_plus(string [, safe]) – заменяет спец. Символы в строке string на последовательности вида ‘%xx’
Преобразованию не подвергаются буквы, цифры и символы ‘_’ , ‘,’ , ‘.’ и ‘-’. Пробелы заменяются на ‘+’. Если + в строке safe, то заменяет на ‘%2b’.
Слайд 30
read(), readline(), readlines(), fileno() и close() реализуют чтение
ресурса.
info() возвращает информацию о ресурсе.
geturl() возвращает истинную информацию о
ресурсе.
Пример:
import urllib
params = urllib.urlencode({’spam’ : 1, ’eggs’ : 2, ’bacon’: 0})
f = urllib.urlopen("http://www.musi-cal.com/cgi-bin/query?" +params)
print f.read()
#выведет код страницы.
Слайд 32
Модуль urlparse
Этот модуль определяет средства для разбиения Url
на компоненты, конструирования URL из компонент и преобразования относительных
URL в абсолютные (RFC 1808).
Слайд 33
Средства urlparse
urlparse(urlstring [, default_scheme [, allow_fragments]])
Разбивает URL на
части, и возвращает tuple из
6 элементов. Идентификатор протокола,
положение в сети, путь, параметры, строка запроса и идентификатор фрагмента.
’scheme://netloc/path;parameters?query#fragment’
выдает ‘(scheme, netloc, path, parameters, query, fragment)’.
Слайд 34
urlunparse(tuple)
Восстанавливает по tuple url адрес.
urljoin(base, rel_url [, allow_fragments])
Конструирует
и возвращает полный url адрес.
Слайд 35
Всё программное обеспечение для работы с протоколом HTTP
разделяется на три больших категории:
Серверы как основные поставщики услуг хранения
и обработки информации (обработка запросов).
Клиенты — конечные потребители услуг сервера (отправка запроса).
Прокси для выполнения транспортных служб.
Слайд 36
Прокси-сервер
Прокси-сервер — служба в компьютерных сетях — служба в компьютерных сетях, позволяющая клиентам выполнять
косвенные запросы к другим сетевым службам.
Слайд 37
Сначала клиент подключается к прокси-серверу и запрашивает какой-либо
ресурс (например, e-mailСначала клиент подключается к прокси-серверу и запрашивает какой-либо
ресурс (например, e-mail), расположенный на другом сервере.
Затем прокси-сервер либо подключается к указанному серверу и получает ресурс у него, либо возвращает ресурс из собственного кэша (в случаях, если прокси имеет свой кэш).
Слайд 38
Виды прокси-серверов
Прозрачный прокси — схема связи, при которой трафик,
или его часть, перенаправляется на прокси-сервер неявно (средствами маршрутизатора).
Обратный прокси —
прокси-сервер, который в отличие от прямого, ретранслирует запросы клиентов из внешней сети на один или несколько серверов, логически расположенных во внутренней сети.
Слайд 39
import urllib2
uri = "http://www.python.org"
http_proxy_server =
Слайд 40
Модуль CGI
CGI- программа вызывается HTTP-сервером, обычно для обработки
данных, переданных пользователем через элементы ‘FORM’ и ‘ISINDEX’ языка
HTML.
Слайд 41
Модуль cgi берет на себя заботу обо всех
возможных способах передачи данных и предоставляет их программе через
простой интерфейс.
Слайд 45
Средства cgi
FieldStorage([**keyword_args])
При инициализации его без аргументов происходит обработка
данных со стандартного потока ввода и /или из переменных
окружения в соответствии со стандартом CGI.()
Слайд 46
Конструктор класса принимает след. Аргументы:
fp – альтернативный файловый
объект
Headers – отобр- е ин. о HTTP заголовках
и т.д.
И для остальных сущ. значение по умолчанию.
Слайд 47
Атрибуты класса FieldStorage
name
filename
Value
file
type
Headers
и др.
Слайд 48
import cgi
print """\
Content-Type: text/html
"""
form = cgi.FieldStorage()
if form.has_key("name") and
form.has_key("addr"):
print """\
Имя: %s
Адрес: %s"""
else:
print """\
Ошибка
Введите пожалуйста имя и адрес"""
print
"""\