Устройство Интернета Часть 2 Артемий Ломов RU-CENTER artemy@lomov.ru Москва — Якутск 18.10.2012 Архитектура клиент/сервер Прикладные службы запрос клиент сервер ответ Всемирная паутина WWW — World Wide Web HTTP — HyperText Transfer Protocol Электронная почта SMTP — Simple Mail Transfer Protocol POP — Post Office Protocol IMAP — Internet Messages Access Protocol Новости, телеконференции NNTP — Network News Transfer Protocol Мгновенные сообщения IM — Instant Messaging, Instant Messenger XMPP — eXtensible Messaging and Presence Protocol ICQ — I Seek You Коллективные чаты IRC — Internet Relay Chat Передача файлов, команд FTP — File Transfer Protocol TFTP — Trivial FTP SSH — Secure Shell Транспортный уровень TCP: предварительное установление соединения, гарантия целостности, повторная пересылка при необходимости, управление потоком, уведомление получателя TCP — Transmission Control Protocol Транспортный уровень UDP: более простая модель передачи без гарантий надежности UDP — User Datagram Protocol Порты Возможны номера 0 — 65535 HTTP — 80 12519 TCP 62104 2538 SMTP — 25 FTP — 21 0 — 1023 — «стандартные» Запись номера порта 87.250.251.11:80 [2001:0db8::ae21:ad12]:80 Доменные имена 87.250.251.11 — запомнить сложно yandex.ru — уже проще DNS — Domain Name System DNS — Domain Name Service ICANN — Internet Corporation for Assigned Names and Numbers Иерархическая структура www.miem.edu.ru. Иерархическая структура www.miem.edu.ru. Корневой домен обозначается пустым пространством после точки Иерархическая структура www.miem.edu.ru. Домен верхнего уровня, TLD — Top Level Domain ccTLD — country code TLD gTLD — generic TLD Иерархическая структура www.miem.edu.ru. Домен второго уровня Иерархическая структура www.miem.edu.ru. Домен третьего уровня Иерархическая структура www.miem.edu.ru. Домен четвертого уровня Многоязычные домены ник.рф xn--h1aeh.xn--p1ai IDN — Internationalized Domain Names Идентификация ресурсов URL — частный случай URI Общий формат: схема:специфицирующая_часть URI — Uniform Resource Identifier URL — Uniform Resource Locator URN — Uniform Resource Name Примеры простых URL http://lomov.ru/ mailto:artemy@lomov.ru ftp://172.16.0.1/dir/file.zip telnet://192.168.0.1:80/ file:///D:\tmp\file.zip Более сложные URL http://admin:1234@my-host.ru/ admin/admin.cgi?action=edit mailto:?to=artemy@lomov.ru &cc=lomov@ezhe.ru &bcc=info@kgb.su &subject=From_Yustas &body=To_Alex 1989—1991 Тим Бернерс-Ли в рамках работы в CERN создает распределенную гипертекстовую службу — Всемирную паутину В основе нее — HTTP, URI, HTML CERN — Conseil Européen pour la Recherche Nucléaire HTML — HyperText Markup Language Гипертекст Фактически известен с древнейших времен Гипермедиа — расширение понятия гипертекста, подразумевающее нетекстовые компоненты — графику, звук, видео… Интернет и WWW Обыватели ошибочно отождествляют эти два понятия Технически WWW — одна из прикладных служб Интернета, использующая TCP в качестве транспорта для сообщений Семантическая паутина Параллельно с человекочитаемыми данными на веб-страницах хранятся машиночитаемые метаданные, позволяющие извлекать факты и делать на их основе логические заключения RDF — Resource Description Framework Веб-приложения Пользователю не нужны будут настольные приложения, он сможет «делать все через браузер» RIA — Rich Internet Applications HTTP Прикладной протокол, использующий человекочитаемые сообщения Основан, как и все протоколы прикладных служб, на архитектурном принципе клиент/сервер Пример HTTP-запроса GET / HTTP/1.1 Host: lomov.ru User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:16.0) Gecko/20100101 Firefox/16.0 Accept: text/html,application/xhtml+xml,application/xml; q=0.9,*/*;q=0.8 Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Connection: keep-alive Pragma: no-cache Cache-Control: no-cache Пример HTTP-ответа HTTP/1.1 200 OK Date: Wed, 17 Oct 2012 17:46:26 GMT Content-Type: text/html; charset=utf-8 Transfer-Encoding: chunked Connection: keep-alive Keep-Alive: timeout=5 Content-Length: 4134 Server: Apache Cache-Control: max-age=0 Expires: Wed, 17 Oct 2012 17:46:26 GMT <!DOCTYPE html> ... Коды статуса 1xx — запрос обрабатывается 2xx — успешный запрос 3xx — перенаправление 4xx — ошибка на стороне клиента 5xx — ошибка на стороне сервера Сайт — набор веб-страниц, объединенных какими-либо общими признаками (тематика, автор, владелец, адрес узла…) Веб-страница для клиента Разметка (HTML) + метаданные Стили (CSS) Скрипты (JavaScript) Картинки (GIF, JPEG, PNG, SVG) Другие связанные объекты (видеоролики, аудиозаписи, …) Веб-страница для клиента CSS — Cascading Style Sheets GIF — Graphics Interchange Format JPEG — Joint Photographic Expert Group PNG — Portable Network Graphics SVG — Scalable Vector Graphics Пример HTML-кода <!DOCTYPE html> <html> <head> <title>Пример веб-страницы</title> <link rel="stylesheet" href="style.css"> </head> <body> <h1>Пример веб-страницы</h1> <p>Привет, я <em>Артемий</em>, вот моя фотография:</p> <p><img src="photo.jpg" alt="Мое фото"></p> <p><a href="mailto:artemy@lomov.ru">Пишите</a> мне письма!</p> </body> </html> Пример CSS-кода body { font-family: Arial; color: black; background: lightyellow; } em { color: orange; } Спасибо за внимание! Вопросы? Артемий Ломов RU-CENTER artemy@lomov.ru Москва — Якутск 18.10.2012