Основы интернет программирования
1.Глобальная сеть Интернет. История возникновения
Интернет — всемирная система объединённых компьютерных сетей для хранения и передачи информации. Часто упоминается как Всемирная сеть и Глобальная сеть, а также просто Сеть. Построена на базе стека протоколов TCP/IP. На основе Интернета работает Всемирная паутина (World Wide Web, WWW) и множество других систем передачи данных.
К 30 июня 2012 года число пользователей, регулярно использующих Интернет, составило более чем 2,4 млрд человек, более трети населения Земли пользовалось услугами сети Интернет
ЗАДАНИЕ. Доклад об истории возникновении ИНТЕРНЕТ
В настоящее время в Интернете существует достаточно большое количество сервисов, обеспечивающих работу со всем спектром ресурсов. Наиболее известными среди них являются:
· сервис DNS, или система доменных имен, обеспечивающий возможность использования для адресации узлов сети мнемонических имен вместо числовых адресов;
· электронная почта (E-mail), обеспечивающая возможность обмена сообщениями одного человека с одним или несколькими абонентами;
· сервис IRC, предназначенный для поддержки текстового общения в реальном времени (chat);
· телеконференции, или группы новостей (Usenet), обеспечивающие возможность коллективного обмена сообщениями;
· сервис FTP — система файловых архивов, обеспечивающая хранение и пересылку файлов различных типов;
· сервис Telnet, предназначенный для управления удаленными компьютерами в терминальном режиме;
· World Wide Web (WWW, W3, «Всемирная паутина») — гипертекстовая (гипермедиа) система, предназначенная для интеграции различных сетевых ресурсов в единое информационное пространство;
· Потоковое мультимедиа.
Услуги
Сейчас наиболее популярные услуги Интернета — это:
Протокол, в данном случае, — это, образно говоря, «язык», используемый компьютерами для обмена данными при работе в сети. Чтобы различные компьютеры сети могли взаимодействовать, они должны «разговаривать» на одном «языке», то есть использовать один и тот же протокол. Проще говоря, протокол — это правила передачи данных между узлами компьютерной сети. Систему протоколов Интернет называют «стеком протоколов TCP/IP».
Наиболее распространённые в Интернете протоколы (в алфавитном порядке, сгруппированные в примерном соответствии модели OSI):
Уровень OSI |
Протоколы, примерно соответствующие уровню OSI |
Прикладной |
BGP, DNS, FTP, HTTP, HTTPS, IMAP, LDAP, POP3, SNMP, SMTP, SSH, Telnet, XMPP (Jabber) |
Сеансовый/Представления |
SSL, TLS |
Транспортный |
TCP, UDP |
Сетевой |
EIGRP, ICMP, IGMP, IP, IS-IS, OSPF, RIP |
Канальный |
Arcnet, ATM, Ethernet, Frame relay, HDLC, PPP, L2TP, SLIP, Token ring |
Есть ещё целый ряд протоколов, ещё не стандартизированных, но уже очень популярных в Интернете:
Эти протоколы в большинстве своём нужны для обмена файлами и текстовыми сообщениями, на некоторых из них построены целые файлообменные сети.
1.2. Основы всемирной паутины WWW
Говоря об основах WWW необходимо ответить на ряд вопросов.
Что такое WWW?
World Wide Web (WWW, web, веб, Всемирная паутина) — это распределенная информационная система, предоставляющая доступ к гипертекстовым документам по протоколу HTTP (HyperTextTransfer Protocol). WWW - это сетевая технология, построенная на клиент-серверной архитектуре и использующая инфраструктуру Интернет для взаимодействия между сервером и клиентом.
Серверы WWW (web-серверы) - это хранилища гипертекстовой (в общем случае) информации.
Документы, представленные в виде гипертекста называются web-страницами. Несколько web-страниц, объединенных общей тематикой, оформлением, связанных гипертекстовыми ссылками и обычнонаходящихся на одном и том же web-сервере, называются web-сайтом.
Для загрузки и просмотра информации с web-сайтов используются специальные программы — браузеры. Браузер - это программа, способная понимать гипертекст иотображать содержимое веб-страниц.
Сэр Тимоти Джон Бернерс-Ли — британский учёный-физик, изобретатель концепции Всемирной паутины (совместно с Робертом Кайо), автор URL, HTTP и HTML.
Действующий глава Консорциума Всемирной паутины (W3C). Автор концепции
семантической паутины и множества других разработок в области информационных
технологий.
ЗАДАНИЕ. Доклад о Бернерсе Ли.
Как работает WWW?
В основе WWW - взаимодействие веб-сервера и браузеров по специальному протоколу (HTTP).
Веб-сервер - это программа, запущенная на сетевом компьютере и ожидающая клиентские запросы по протоколу HTTP. Браузер может обратиться к веб-серверу по доменному имени или по ip-адресу, передавая в запросе идентификатор требуемого ресурса. Получив запрос от клиента, сервер находит соответствующий ресурс на локальном устройстве хранения и отправляет его как ответ. Браузер принимает ответ и обрабатывает его соответствующим образом, в зависимости от типа ресурса(отображает гипертекст, показывает изображения, сохраняет полученные файлы и т.п.).
Основной тип ресурсов Всемирной паутины - гипертекстовые страницы. Гипертекст - это обычный текст, размеченный специальными управляющими конструкциями, тегами. Браузер считывает теги и интерпретирует их как команды форматирования при выводе информации. Теги описывают структуру документа, а специальные теги, якоря и гиперссылки, позволяют установить связи между веб-страницами и перемещаться как внутри веб-сайта, так и между сайтами.
Возможности WWW обеспечиваются четырьмя составляющими:
- универсальный способ адресации ресурсов в сети URL (Universal Resource Locator);
- язык гипертекстовой разметки документов HTML (HyperText Markup Language);
- протокол передачи гипертекста HTTP (HyperText Transfer Protocol);
- общий шлюзовый интерфейс CGI (Common Gateway Interface).
Что такое домен и доменное имя?
Домен - определенная зона в системе доменных имён (DNS) Интернет, выделенная какой-либо стране, международной организации, региону, юридическому или физическому лицу для целей обеспечения доступа к предоставляемой им в Интернете информации. Примеры доменов: .edu, .ru, .com, .org, .net ит.д.
Доменое имя - в системе DNS символьная строка, состоящая из имени домена ([и субдоменов]) и имени хоста в этом домене, сопоставленная с сетевым адресом этого хоста. Примеры доменных имен:
example.com, test.example.com, test.test.example.com.
Что такое URL?
Чтобы найти в Интернете какой-либо документ, достаточно знать ссылку на него - так называемый универсальный указатель ресурса (URL - Uniform Resource Locator), который определяет местонахождение каждого файла, хранящегося на компьютере, подключенном к Интернету.
Адрес URL является сетевым расширением понятия полного имени ресурса в операционной системе. В URL, кроме имени файла и директории, где он находится, указывается сетевое имя компьютера, на котором этот ресурс расположен, и протокол доступа к ресурсу, который можно использовать для обращения к нему. Система адресации URL и адресация почтовой службы имеют сходную структуру.
Рассмотрим структуру следующего URL:
http://www.lipunov.msk.ru/prochn/lab/IVANOV.htm
Первая часть http:// (HyperText Transfer Protocol - протокол передачи гипертекста, по которому обеспечивается доставка документа с Web-сервера Web-браузеру) указывает программе просмотра (браузеру), что для доступа к ресурсу применяется данный сетевой протокол. В URL первым стоит указатель на тип доступа к запрашиваемому файлу, а затем его адрес.
Вторая часть www.lipunov.msk.ru указывает на доменное имя и адресует конкретный компьютер.
Третья часть prochn/lab/IVANOV.htm показывает программе-клиенту, где на данном компьютере-сервере искать ресурс. В рассматриваемом случае ресурсом является файл в формате html, а именно IVANOV.htm, который находится в папке lab, которая в свою очередь расположена в папке prochn. Имена каталогов, содержащиеся в URL, обычно являются виртуальными и не имеют ничего общего с реальными именами каталогов компьютера, на котором выполняется Web-сервер, а являются их псевдонимами: ни один владелец компьютера, на котором выполняется Web-сервер, не позволит постороннему пользователю, обращающемуся к Web-серверу через Интернет, получить доступ к реальной файловой системе этого компьютера.
Обратите внимание: при написании URL важно различать прописные и строчные буквы.
Что такое HTML?
HTML (HyperText Markup Language — «язык разметки гипертекста») — стандартный язык разметки документов во Всемирной паутине. Большинство веб-страниц созданы при помощи языка HTML. ЯзыкHTML интерпретируется браузером и отображается в виде документа, в удобной для человека форме.
HTML является приложением SGML (стандартного обобщённого языка разметки) и соответствует международному стандарту ISO 8879.
HTML создавался как язык для обмена научной и технической документацией, пригодный для использования людьми, не являющимися специалистами в области вёрстки. Для этого он представляет небольшой (сравнительно) набор структурных и семантических элементов — тегов. С помощью HTML можно легко создать относительно простой, но красиво оформленный документ. Изначально язык HTML был задуман и создан как средство структурирования и форматирования документов без их привязки к средствам воспроизведения (отображения). В идеале, текст с разметкой HTML должен единообразно воспроизводиться на различном оборудовании (монитор ПК, экран органайзера, ограниченный по размерам экран мобильного телефона, медиа-проектор). Однако современное применение HTML очень далеко от его изначальной задачи. Со временем основная идея платформонезависимости языка HTML стала жертвой коммерциализации WWW и потребностей в мультимедийном и графическом оформлении.
Что такое HTTP?
HTTP (HyperText Transfer Protocol, RFC 2616, текущая версия HTTP/1.1) - протокол передачи гипертекста. Этот протокол изначально был предназначен для обмена гипертекстовыми документами,сейчас его возможности существенно расширены (в частности, добавлены функции поддержки потокового вещания). HTTP - типичный клиент-серверный протокол, обмен сообщениями идёт по схеме«запрос-ответ» в виде ASCII-команд. Особенностью протокола HTTP является возможность указать взапросе и ответе способ представления одного и того же ресурса по различным параметрам: формату, кодировке, языку и т. д. Именно благодаря возможности указания способа кодирования сообщенияклиент и сервер могут обмениваться двоичными данными, хотя данный протокол является текстовым.
HTTP - протокол прикладного уровня, но используется также в качестве «транспорта» для других прикладных протоколов, таких как SOAP, XML-RPC, WebDAV.
Что такое CGI?
Common Gateway Interface (CGI) - это механизм доступа к программам на стороне сервера.
Спецификация Common Gateway Interface (CGI) была разработана для расширения возможностей WWW за счет подключения различного внешнего программного обеспечения. При использовании CGIвеб-сервер представляет браузеру доступ к исполнимым программам, запускаемым на его (сервернойстороне) через стандартные потоки ввода и вывода, что упрощает программирование до предела.
Механизм CGI можно разделить на четыре части:
- переменные окружения, через них приложению передаются данные и служебная информация
- командная строка (при запросах типа ISINDEX)
- стандартный ввод, используемый при передаче данных по методу POST
- стандартный вывод, который предназначен для возврата данных серверу.
Интерфейс CGI используется для создания динамических веб-сайтов, например, когда веб-страницыформируются из результатов запроса к базе данных. Сейчас популярность CGI снизилась, т.к. появились более совершенные альтернативные решения (например, модули расширения веб-серверов).
Программное обеспечение WWW
Веб-серверы
Веб-сервер — это сетевое приложение, обслуживающее HTTP-запросы от клиентов, обычно веб-браузеров. Веб-сервер принимает запросы и возвращает ответы, обычно вместе с HTML-страницей, изображением, файлом, медиа-потоком или другими данными. Веб-серверы — основа Всемирной паутины.
Созданием программного обеспечения web-серверов занимаются многие разработчики, но наибольшуюпопулярность в WWW получили такие программные продукты, как Apache (Apache SoftwareFoundation), IIS (Microsoft), QZHTTP (он же qq.com), GoogleWebServer (GWS, GoogleInc.) и nginx(И.Сысоев) (Рис. 2)
Apache - свободный web-сервер с открытым исходным кодом, распространяется под совместимой сGPL лицензией. Apache уже многие годы является лидером по распространенности во Всемирнойпаутине в силу своей надежности, гибкости, масштабируемости и безопасности.
IIS (Internet Information Services) - проприетарный набор серверов для нескольких служб Интернета,разработанный Майкрософт и распространяемый с ОС семейства Windows NT. Основным компонентомIIS является веб-сервер, также поддерживаются протоколы FTP, POP3, SMTP, NNTP.
QZHTTP - модифицированный Apache, используемый на китайском портале qq.com. На немразмещены сервисы онлайн-дневников и мгновенного обмена сообщениями.
Google Web Server (GWS) - разработка компании Google на основе web-сервера Apache. GWS оптимизирован для выполнения приложений сервиса Google Applications.
nginx [engine x] — это HTTP-сервер, совмещенный с почтовым прокси-сервером. Разработан И.Сысоевым для компании Рамблер. Осенью 2004 года вышел первый публично доступный релиз, сейчас nginx используется рядом крупных сайтов.
lighttpd — веб-сервер, разрабатываемый с расчётом на быстроту и защищённость при использовании насильно нагруженных сайтах, а также соответствие стандартам. lighttpd — свободное программное обеспечение, распространяемое по лицензии BSD.
Браузеры
Браузер, веб-обозреватель (web-browser) — это клиентское программное обеспечение для доступа к веб-серверам по протоколу HTTP и просмотра веб-страниц. Как правило браузеры дополнительноподдерживают и ряд других протоколов (например ftp, file, mms, pop3).
Первые HTTP-клиенты были консольными и работали в текстовом режиме, позволяя читать гипертекст и перемещаться по ссылкам. Сейчас консольные браузеры (такие, как lynx, w3m или links) практически не используются рядовыми посетителями веб-сайтов. Тем не менее такие браузеры весьма полезны для веб-разработчиков, так как позволяют "увидеть" веб-страницу "глазами" поискового робота.
Исторически первым браузером в современном понимании (т.е. с графическим интерфейсом и т.д.) была программа NCSA Mosaic, разработанная Марком Андерисеном и Эриком Бина. Mosaic имел довольно ограниченные возможности, но его открытый исходный код стал основой для последующих разработок. Наибольшую распространенность в мире имеют четыре браузера (с появлением Google Chrome ихстало пять): InternetExplorer (Microsoft), Firefox (MozillaFoundation), Safari (Apple) и Opera (OperaSoftwareASA)