Компьютерные сети
Классификация компьютерных сетей по территории, типу среды передачи, по топологии. Уровни сетевого взаимодействия. Клиент-серверная организация обмена данными. Частично децентрализованные сети, точки обмена трафиком, вэб-браузеры. Кодирование сообщений.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курс лекций |
Язык | русский |
Дата добавления | 22.09.2012 |
Размер файла | 104,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Язык разметки гипертекста HTML
HTML -- это теговый язык разметки документов. Любой документ на языке HTML представляет собой набор элементов, причём начало и конец каждого элемента обозначается специальными пометками -- тегами. Элементы могут быть пустыми, то есть не содержащими никакого текста и других данных (например, тег перевода строки ). В этом случае обычно не указывается закрывающий тег. Кроме того, элементы могут иметь атрибуты, определяющие какие-либо их свойства (например, размер шрифта для элемента font). Атрибуты указываются в открывающем теге.
Историческая справка. Развитие HTML [показать]
Язык HTML был разработан британским учёным Тимом Бернерсом-Ли приблизительно в 1991--1992 годах в стенах Европейского совета по ядерным исследованиям в Женеве (Швейцария). HTML создавался как язык для обмена научной и технической документацией, пригодный для использования людьми, не являющимися специалистами в области вёрстки. Сейчас Консорциумом Всемирной паутины (W3C) разрабатывает пятую версию языка HTML5.
Черновой вариант спецификации языка появился в Интернете 20 ноября 2007. Параллельно ведётся работа по дальнейшему развитию HTML под названием XHTML (от англ. Extensible Hypertext Markup Language -- «расширяемый язык разметки гипертекста»). Пока XHTML по своим возможностям сопоставим с HTML, однако предъявляет более строгие требования к синтаксису. XHTML, в отличие от предшественника, основан на XML.
Вариант XHTML 1.0 был одобрен в качестве Рекомендации Консорциума Всемирной паутины (W3C) 26 января 2000 года.
Пример 1. Простейший HTML-документ.
<html> Начало HTML-документа
<head> Заголовок
<title>
Hello HTML // Появится в заголовке окна рядом с названием браузера
</title>
</head>
<body> // Тело документа
<b>
Этот текст будет выведен полужирным,
<i>а этот ещё и курсивом</i>
</b>
<a href="http://www.example.com">Так оформляется гиперссылка</a>
</body>
</html>
http://it.mmcs.rsu.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:%D0%AF%D0%B7%D1%8B%D0%BA_%D0%B3%D0%B8%D0%BF%D0%B5%D1%80%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%BE%D0%B2%D0%BE%D0%B9_%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%82%D0%BA%D0%B8_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0_html.gif
Пример 2
Пример 2. Страница факультета психологии животных.
<html>
<head> <title>ФПЖ</title> </head>
<body>
<h1>Факультет психологии животных</h1>
<h2> О нас </h2>
<h2> Персонал </h2>
<h2> Популярные курсы </h2>
</body>
</html>
Регистр, в котором набрано имя элемента и имена атрибутов, в HTML значения не имеет (в отличие от XHTML). Элементы могут быть вложенными.
Кроме элементов, в HTML-документах есть и сущности (англ. entities) -- «специальные символы». Сущности начинаются с символа амперсанда и имеют вид &имя; или &#NNNN;, где NNNN -- код символа в Юникоде в десятеричной системе счисления. Например, © -- знак авторского права (©). Как правило, сущности используются для представления символов, отсутствующих в кодировке документа, или же для представления «специальных» символов: & -- амперсанда (&), < -- символа «меньше» (<) и > -- символа «больше» (>), которые некорректно записывать «обычным» образом, из-за их особого значения в HTML.
Каждый HTML-документ, отвечающий спецификации HTML какой-либо версии, должен начинаться со строки объявления версии HTML <! DOCTYPE…>, которая обычно выглядит примерно так:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
Если эта строка не указана, то добиться корректного отображения документа в браузере становится труднее.
Далее обозначается начало и конец документа тегами <html> и </html> соответственно. Внутри этих тегов должны находиться теги заголовка (<head></head>) и тела (<body></body>) документа.
Добавим информацию на страницу факультета психологии животных из второго примера.
http://it.mmcs.rsu.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:%D0%AF%D0%B7%D1%8B%D0%BA_%D0%B3%D0%B8%D0%BF%D0%B5%D1%80%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%BE%D0%B2%D0%BE%D0%B9_%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%82%D0%BA%D0%B8_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0_html_%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D0%BB%D0%B8_%D0%B5%D1%89%D0%B5_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8.gif
Страница факультета психологии животных
<html>
<head>
<title>ФПЖ</title>
</head>
<body text=#00AA00 bgcolor=#EEFFEE>
<h1 align=center>
<u> Факультет психологии животных </u>
</h1>
<h2> О нас </h2>
<p> Наш факультет занимается... </p>
<h2> Персонал </h2>
<ul type=square>
<li>
<a href="http://www.fpj.edu/teachers.html">
<font color=#00AA00>Преподаватели </font>
</a>
</li>
<li>
<a href="http://www.fpj.edu/postgrad.html"> Аспиранты </a>
</li>
<li>
<a href="http://www.fpj.edu/muuuu.html">
<b>Неакадемический штат</b>
</a>
</li>
</ul>
<h2> Популярные курсы </h2>
Среди наших курсов особой популярностью пользуются <i>"Переговоря с вашей зверюшкой"</i>, <i>"Сооружение собачьей будки"</i>
</body>
</html>
Редакторы HTML
· Adobe Dream Weaver;
· Microsoft Expression Web;
· SharePoint Designer (бесплатный);
· Web Development Studio (бесплатная);
· Word;
· Microsoft Front Page (поддержка прекращена).
Историчская справка. О первых версиях HTML [показать]
Консорциум W3С был создан в 1994г. и унаследовал право главенствовать в мире Интернета от Европейского института физики частиц. Первый проект - создание HTML 2.0 (формы). Второй проект - HTML 3.0 (таблицы, рисунки и т.п.) + CSS (визуальное оформление HTML-документов).
HTML версии 1.2 содержал около 40 тэгов и не подразумевал какого-либо описания физического представления документов. Все было приведено к логической и структурной разметке текста. Только несколько тэгов (кстати, не рекомендованных для использования) издали намекали на физические свойства представления страниц. В описании одного из этих тэгов было сказано: "При просмотре документа, созданного с использованием данного тэга текст может отображаться в графических браузерах полужирным курсивом".
CSS - каскадные таблицы стилей
CSS1.0 вышла в 1996. Главная цель: заменить многократное использование тегов форматирования на лаконичные CSS-стили.
CSS (англ. Cascading Style Sheets -- каскадные таблицы стилей) -- технология описания внешнего вида документа, написанного языком разметки. Преимущественно используется как средство оформления веб-страниц в формате HTML и XHTML, но может применяться с любыми видами документов в формате XML, включая SVG и XUL.
CSS используется создателями веб-страниц для задания цветов, шрифтов, расположения и других аспектов представления документа. Основной целью разработки CSS являлось разделение содержимого (написанного на HTML или другом языке разметки) и представления документа (написанного на CSS). Это разделение может увеличить доступность документа, предоставить большую гибкость и возможность управления его представлением, а также уменьшить сложность и повторяемость в структурном содержимом. Кроме того, CSS позволяет представлять один и тот же документ в различных стилях или методах вывода.
CSS при отображении страницы может быть взята из различных источников:
1. внешних таблиц стилей, то есть отдельного файла.css, на который делается ссылка в документе.
2. встроенных стилей -- блоков CSS внутри самого HTML-документа. Данный способ определения стилей идеально подходит для корректировки или внедрения стилей в отдельные HTML-документы, так как не затрагивает другие HTML-документы.
3. inline-стилей, когда в HTML-документе информация стиля для одного элемента указывается в его атрибуте style.
4. стандартный стиль, используемый браузером по умолчанию для представления элементов.
Стандарт CSS определяет приоритеты, в порядке которых применяются правила стилей, если для какого-то элемента подходят несколько правил одновременно. Это называется «каскадом», в котором для правил рассчитываются приоритеты или «веса», что делает результаты предсказуемыми.
Описание стиля
s1 [,s2]
{
св-во1: знач1;
св-во2: знач2;
св-во3: знач3;
}
Оформление:
p { font-size: 20px;}
h2 {
font-size: 110 %;
font-weight: bold;
color: red;
}
Все ниже касается внешнего или встроенного описания стиля. Inline-описание выглядит так: <p style="font-size: 21px; color: green;">Текст абзаца</p>
Таблица стилей состоит из набора правил. Каждое правило, в свою очередь, состоит из одного или нескольких селекторов, разделённых запятыми и блока определений. Блок определений же обрамляется фигурными скобками, и состоит из набора свойств и их значений.
Схематически это можно показать так:
селектор, селектор {
свойство: значение;
свойство: значение;
свойство: значение;
}
Например:
p {
font-family: "Garamond", serif;
}
h2 {
font-size: 110 %;
color: red;
background: white;
}
.note {
color: red;
background: yellow;
font-weight: bold;
}
p#paragraph1 {
margin: 0;
}
a:hover {
text-decoration: none;
}
#news p {
color: blue;
}
Здесь приведено шесть правил с селекторами p, h2,.note, p#paragraph1, a:hover и #news p.
В первых двух правилах HTML-элементам p (параграфу) и h2 (заголовку второго уровня) назначаются стили. Параграфы будут отображаться шрифтом Garamond, или, если такой шрифт недоступен, каким-либо другим шрифтом с засечками («serif»). Заголовок второго уровня будет отображаться красным на белом фоне с увеличенным кеглем.
Третье правило будет применено к элементам, атрибут class которых содержит слово 'note'. Например:
Этот параграф будет выведен полужирным шрифтом красного цвета на желтом фоне.
Четвертое правило будет применяться только к элементам p, атрибут id которых равен paragraph1. Такие элементы не будут иметь внешних отступов (margin).
Пятое правило определяет стиль hover для гиперссылок. По умолчанию в большинстве браузеров текст гиперссылок подчеркивается. Это правило уберёт подчеркивание, когда указатель мыши находится над ними.
Последнее, шестое правило, применяется для элементов p, которые находятся внутри элемента с атрибутом id, равным «news».
Когда CSS используется вместе с XHTML, имена элементов и селекторы становятся чувствительны к регистру.
До изобретения CSS нужного расположения элементов на веб-странице добивались, применяя невидимые таблицы и массу тегов типа  . В CSS можно явно указывать расположение элементов.
Способы связывания с документом
Внешние таблицы стилей - в отдельном css-файле. Связывается с HTML-документом командой <link rel="stylesheet" href="/templates/template.css" type="text/css" /> внутри заголовка.
Встроенные - в теге <style> в заголовке HTML-документа Inline: <tag_name style="декларация стиля ”…>
Пример использования CSS
HTML:
<p class=“mystyle1”>текст абзаца</p>
CSS-файл:
.mystyle1 { color: red; background: yellow; font-weight: bold; }
JavaScript
Историчская справка. О появлении JavaScript. [показать]
JavaScript впервые появился в Netscape 2.0 в 1996 г. Написан Бренданом Эйчем. В этом же году Netscape передал JavaScript Европейской Ассоциации Компьютерных Производителей для стандартизации.
Программы на JavaScript встраиваются в веб-страницу и могут как угодно менят ее содержимое.
JavaScript: пример
<script language="JavaScript">
function FirstFunction()
{ document.myForm1.myText.value ="Вы нажали первую кнопку";}
function SecondFunction()
{ document.myForm1.myText.value ="Вы нажали вторую кнопку";}
</script>
<form name="myForm1">
<input type="text" name="myText" size=30 value="Нажмите одну из кнопок"><p>
<input type="button" name="Button1" value="Первая кнопка"
onclick="FirstFunction(); return true;">
<input type="button" name="Button2" value="Вторая кнопка" onclick="SecondFunction(); return true;">
</form>
DOM
DOM (Document Object Model -- объектная модель документов) -- это не зависящий от платформы и языка программный интерфейс, позволяющий программам и скриптам получить доступ к элементам документа, а также изменять содержимое, структуру и оформление документа.
HTML-документ имеет иерархическую структуру, которая представлена в DOM в виде дерева, узлами которого являются теги и текст. Вложенным HTML-тегам соответствуют вложенные узлы дерева.
Модель DOM не накладывает ограничений на структуру документа. Любой документ известной структуры с помощью DOM может быть представлен в виде дерева узлов, каждый узел которого содержит элемент, атрибут, текстовый, графический или любой другой объект. Узлы связаны между собой отношениями родитель-потомок.
Изначально различные браузеры имели собственную модель DOM, не совместимую с остальными. Для того, чтобы обеспечить взаимную и обратную совместимость, специалисты международного консорциума W3C классифицировали эту модель по уровням, для каждого из которых была создана своя спецификация. Все эти спецификации объединены в общую группу, носящую название W3C DOM.
Пример.
HTML-код |
Объектная модель документа |
|
<html> <head> <title>ФПЖ</title> </head> <body> <h1>Факультет психологии животных</h1> <h2>О нас</h2> <h2>Персонал</h2> </body> </html> |
http://it.mmcs.rsu.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0.gif |
Это дерево представляет собой нормализованный DOM, в котором не создаются узлы из пустого текста. Такого подхода придерживается браузер Internet Explorer. Firefox другого мнения, он создает DOM-элемент из каждого текстового фрагмента. Внутри <body>, между тегами <body> и <h1>, </h1> и <h2>, </h2> и <h2>, </h2> и </body> можно ведь помещать любой текст. Этим пустым местам соответствуют узлы дерева слева и справа от <h1> и <h2>. Opera же может добавить лишний пустой элемент просто «от щедрой души». На практике эта несовместимость не создает больших проблем, но нужно о ней помнить и делать необходимые проверки.
У каждого узла в DOM-модели есть тип. Всего в DOM различают 12 типов узлов. Его номер типа хранится в атрибуте elem.nodeType. Часто используются: Node.ELEMENT_NODE, номер которого равен 1. Узлам этого типа соответствуют HTML-тэги. Иногда полезен еще тип Node.TEXT_NODE, номер которого равен 3. Это текстовые элементы.
Любой доступ и изменения DOM происходит через объект document. Например: document.body. Свойства firstChild и lastChild показывают на первый и последний дочерние элементы и равны null, если детей нет. Свойство parentNode указывает на родителя. Например, для <body> таким элементом является <html>. Свойства previousSibling и nextSibling указывают на левого и правого братьев узла.
Некоторые из свойств элементов доступны только на чтение, другие -- на чтение и запись. Например, свойство tagName есть у элементов-тэгов, содержит имя тэга в верхнем регистре и доступно только для чтения. style -- свойство управляющее CSS-стилем, оно доступно на запись, например, можно установить element.style.width=50px. innerHTML содержит весь HTML-код внутри узла, и его можно менять. Применяется, в основном, для динамического изменения содержания страницы. onclick, onkeypress, onfocus... и другие свойства, начинающиеся на «on», хранят функции-обработчики соответствующих событий.
AJAX
AJAX (Asynchronous Javascript and XML -- асинхронный JavaScript и XML) -- подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером. В результате при обновлении данных веб-страница не перезагружается полностью, и веб-приложения становятся более быстрыми и удобными.
CMS
CMS (Content Management System) - система управления содержимым сайта. Позволяет управлять текстовым и графическим наполнением веб-сайта, предоставляя пользователю удобные инструменты хранения и публикации информации.
Электронная почта
Основные компоненты эектронной почты
· почтовые клиенты пользователей;
· почтовые серверы;
· протокол отправки почты: SMTP;
· протоколы доступа к почтовому ящику: POP3 или IMAP.
Mozilla Thunderbird
The Bat
Клиенты
Функции клиента
· отправка и получение почты;
· создание, редактирование писем;
· просмотр писем.
Популярные клиенты
· Microsoft Outlook (входит в MS Office);
· Mozilla Thunderbird (бесплатная);
· The Bat (платная).
Почтовые серверы
Функции сервера
· хранение писем пользователей (почтовые ящики);
· отправка писем почтовому серверу получателя или клиенту пользователя (MTA, MDA);
· организация очереди сообщений.
Используют протокол TCP. Стандартные порты: 25 -- SMTP, 110 -- POP3, 143 -- IMAP.
Почтовый сервер, сервер электронной почты, мейл-сервер -- в системе пересылки электронной почты так обычно называют агент пересылки сообщений (англ. mail transfer agent, MTA). Это компьютерная программа, которая передаёт сообщения от одного компьютера к другому.
Обычно почтовый сервер работает «за кулисами», а пользователи имеют дело с другой программой -- клиентом электронной почты (англ. mail user agent, MUA).
MDA (Mail Delivery Agent, агент доставки сообщений) -- программа, доставляющая сообщения на электронный ящик получателя.
К примеру, в распространённой конфигурации агентом пользователя является Outlook Express. Когда пользователь набрал сообщение и посылает его получателю, почтовый клиент взаимодействует с почтовым сервером, используя протокол SMTP. Почтовый сервер отправителя взаимодействует с почтовым сервером получателя (напрямую или через промежуточный сервер-релей). На почтовом сервере получателя сообщение попадает в почтовый ящик, откуда при помощи агента доставки сообщений доставляется клиенту получателя. Часто последние два агента совмещены в одной программе (к примеру, sendmail), хотя есть специализированные MDA, которые в том числе занимаются фильтрацией спама. Для финальной доставки полученных сообщений используется не SMTP, а другой протокол -- часто POP3 или IMAP -- который также поддерживается большинством почтовых серверов. Хотя в простейшей реализации MTA достаточно положить полученные сообщения в личный каталог пользователя в файловой системе центрального сервера («почтовый ящик»).
Популярные серверы
· Sendmail (бесплатный, Linux / Windows)
ExchangeServer Sendmail
· qmail (бесплатный, Linux)
Qmail
Программный пакет qmail, написанный Дэном Бернстейном (Dan Bernstein), является полноценным заменителем программного пакета sendmail. Основное внимание при его создании уделялось вопросам надежности и безопасности -- двум довольно впечатляющим целям. Дэн организовал в Internet свой сервер на базе qmail и объявил приз в $1000 тому, кто сможет взломать его защиту. На момент написания книги никто не обратился за этой премией. Кроме того, в qmail предлагается улучшенный метод помещения корреспонденции в электронные почтовые ящики пользователей с использованием нового формата почтового ящика, более устойчивого к сбоям в системе. Возможно, главным преимуществом qmail является простота конфигурирования. Для ее настройки используются простые текстовые файла в формате ASCII. Программа qmail является удачным выбором для простого почтового сервера.
· Microsoft Exchange Server
Microsoft Exchange Server
Платформа для организации корпоративной системы электронной почты и групповой работы от корпорации Microsoft. Ориентирована, прежде всего, на крупных заказчиков, однако имеется и версия для небольших предприятий (в составе Microsoft Windows Small Business Server). Главная особенность продукта -- тесная интеграция с инфраструктурой Microsoft и, в частности, со службой каталогов Active Directory.
· Postfix
Postfix
Система Postfix была создана Вейтсом Венемой (Wietse Venema), разработчиком исследовательского центра IBM им. Томаса Уотсона (IBM Thomas J. Watson Research Center), в конце 90-х годов прошлого века. Задумывалась как более простая, безопасная и быстрая альтернатива Sendmail. Postfix имеет продуманную модульную архитектуру -- каждый модуль (демон) отвечает за минимальный набор простых функций. Как следствие, обеспечивается изолированность процессов (что положительно сказывается на безопасности), а также более высокая скорость работы в режиме простоя (за счет выгрузки ненужных модулей).
· MDA: procmail и maildrop
· Exim
Подробнее [показать]
Система Exim была создана в 1995 году сотрудником Университета Кэмбриджа (University of Cambridge) Филиппом Хейзелом (Philip Hazel). Как и Sendmail, Exim имеет монолитную архитектуру, которая считается менее безопасной, чем модульная. Однако в отличие от Sendmail, Exim пока не испытывал серьезных проблем с безопасносностью.
Ключевая особенность Exim заключается в логичной и прозрачной схеме обработки почты. Создатели продукта отказались от реализации ряда экзотических функций, что положительно отразилось на простоте решения. Кроме того, Exim считается быстрее и безопаснее все того же Sendmail. Exim входит в состав ряда дистрибутивов Linux/Unix систем. Поставляется по свободной лицензии GNU GPL.
Как происходит доставка писем?
Доставка писем
Рассмотрим процесс доставки писем на примере. Пусть Алиса хочет отправить письмо Бобу.
1. Почтовая программа Алисы (т.е. клиент или MUA - Mail User Agent ) отправляет письмо Бобу, ящик которого расположен на почтовом сервере в домене b.org.
2. По протоколу SMTP (Simple Mail Transfer Protocol) клиент Алисы посылает сообщение на ее почтовый сервер (smtp-сервер). Сервер помещает сообщение в очередь для отправки адресату.
3. SMTP-сервер Алисы узнает IP-адрес почтового сервера Боба, делая DNS-запрос типа MX для зоны b.org.
4. SMTP-сервер Алисы по протоколу SMTP посылает почтовому северу Боба сообщение. При этом SMTP-сервер Алисы выступает в роли клиента.
5. Почтовый сервер (Боба) помещает полученное сообщение в почтовый ящик Боба.
6. Почтовый клиент Боба забирает письмо с сервера по протоколу POP3 или IMAP.
Протокол SMTP
Протокол SMTP используется для транспортировки электронной почты на почтовый сервер. Работает поверх TCP, стандартный порт сервера 25. Команды - обычный ASCII текст.
Посылка почты осуществляется в 3 этапа:
1. приветствие (рукопожатие);
2. пересылка писем;
3. закрытие сессии.
Пример SMTP-сессии
Server:220 Mail.Ru ESMTP
Client: HELO me.ru
Server: 250 mx24.mail.ru ready to serve
Client: MAIL FROM: <I@me.ru>
Server: 250 OK
Client: RCPT TO: <gudasergey@mail.ru>
Server: 250 OK
Client: DATA
Server: 354 Go ahead
Client: Privet, Gena!!!
Pozdravlyau tebya s dnem rojdeniya …
.
Server: 250 Message accepted for delivery
Client: QUIT
Server: 221 mx24.mail.ru closing connection
$ telnet mxs.mail.ru 25 // подключаемся к 25 порту почтового сервера домена mail.ru
Trying 194.67.23.20...
Connected to mxs.mail.ru.
Escape character is '^]'.
220 Mail.Ru ESMTP // приветствие от mxs.mail.ru
HELO me.ru // приветствие от меня ( me.ru -выдумка)
250 mx24.mail.ru ready to serve // всегда готов! - от mx24.mail.ru
MAIL FROM: <I@me.ru> // я: отправляю письмо от себя (почтовый адрес -выдумка)
250 OK //mail.ru: понятно
RCPT TO: <gudasergey@mail.ru> // я: получатель - мой почтовый ящик на mail.ru
250 OK //mail.ru: такой почтовый ящик имеется
DATA //я: посылаю данные
354 Go ahead //mail.ru: давай!
Privet, Gena!!!
Pozdravl yau tebya s dnem rojdeniya … // я: текст письма
. // я: единственная точка на строке -конец письма
250 Message accepted for delivery //mail.ru: Сообщение принято для доставки
QUIT //я: конец
221 mx24.mail.ru closing connection //mail.ru: закрываю соединение
На самом деле было так:
Server:220 Mail.Ru ESMTP
Client: HELO me.ru
Server: 250 mx24.mail.ru ready to serve
Client: MAIL FROM: <I@me.ru>
Server: 250 OK
Client: RCPT TO: <gudasergey@mail.ru>
Server: 250 OK
Client: DATA
Server: 354 Go ahead
Client: Privet, Gena!!!
Pozdravlyau tebya s dnem rojdeniya …
.
Server: 550 spam message discarded. If you think that the system is mistaken, please report details to abuse@corp.mail.ru
Client: QUIT
Server: 221 mx24.mail.ru closing connection
На самом деле после посылки сообщения серверу был получен такой ответ:
550 spam message discarded.
If you think that the system is mistaken,
please report details to abuse@corp.mail.ru //mail.ru: это спам! Жалобы посылайте на адрес:
// оскорбления @corp.mail.ru
Проблема скрывается в формате нашего письма: отсутствует заголовок с полями From, To и Subject. Поэтому mail.ru расценивает это как спам.
Формат сообщения электронной почты
Сообщение электронной почты - это набор символов в семиразрядной кодировке ASCII (начинается с нуля (0-127)). Символы кодируются битами.
From: <адрес отправителя> // обязательное поле
To: <адрес получателя> // обязательное поле
Subject: <тема> // необязательное поле
CC: <список получателей, которым отправится копия> // необязательное поле
BCC: <список адресов> (это «слепая копия», то есть получатели не знают, что это письмо отправлено еще кому-то) // необязательное поле
<Пустая строка>
<Текст письма в семибитной кодировке ASCII>
Если требуется передать символы, отличающиеся от ASCII, то используется кодирование. После получения сообщения сервер добавляет в заголовок строчку:
Received: from < отправитель > by < получатель > < когда >
Пример
From: drug@yandex.ru
To: gena@mail.ru
Subject: Pozdravlyau!
Privet, Gena!!!
Pozdravlyau tebya s dnem rojdeniya …
.
Кодирование сообщений
MIME (Multipurpose Internet Mail Extension - многоцелевое расширение почты Интернета) -- стандарт, описывающий передачу различных типов данных по электронной почте.
В заголовок сообщения добавляются строки:
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=“Windows-1251”
Поле заголовка Content-Type идентифицирует данные, заключенные в MIME-сообщение. В настоящее время используется семь основных классов данных, идентифицированных в MIME. В каждом классе имеются свои подклассы, которые более детально характеризуют тип данных, заключенных в сообщении.
Часто встречающиеся значения поля Content -Type (формат: Content -Type: тип / подтип; параметры):
· text / html или text/ enriched (с форматированием);
· image / gif или image/jpeg;
· multipart / mixed (для сообщений с вложениями).
Чтобы передавать сообщение не только из семибитной ASCII, используется кодирование.
Часто встречающиеся значения поля Content-Transfer-Encoding:
· 7bit;
· 8bit;
· binary;
· base64;
· quoted-printable.
Например, 8bit или base 64.
При кодировании увеличивается размер (как минимум, на 25%).
На сегодняшний день существует семь различных способов кодирования двоичных данных, однако наиболее часто встречается кодирование base64. При применении этого метода кодирования 6-битовые блоки двоичных данных преобразуются в 8-битовые блоки, воспринимаемые как текст ASCII. Таким образом, в base 64 для кодирования 3 байтов (24 бита) используются 4 байта (32 бита).
Значения Content-Transfer-Encoding "7bit", "8bit" и "binary" означают, что никакого преобразования не произведено.
Base64. В формате электронной почты MIME base64 -- это схема, по которой произвольная последовательность байт преобразуется в последовательность печатных ASCII символов. Это определяет MIME как транспортное кодирование содержимого для использования в электронной почте. Используются только символы латинского алфавита в верхнем и нижнем регистре -- символы (A--Z, a--z), цифры (0--9), и символы «+» и «/», с символом «=» в качестве специального кода суффикса.
Полная спецификация этой формы base64 содержится в RFC 1421 и RFC 2045. Эта схема используется для кодирования последовательности октетов (байт). Это соответствует определению файлов почти во всех системах. Результирующие закодированные по base64 данные имеют длину, большую оригинальной в соотношении 4:3, и напоминают по виду случайные символы.
Для того, чтобы преобразовать данные в base64, первый байт помещается в самые старшие восемь бит 24-битного буфера, следующие в средние восемь и третий в младшие значащие восемь бит. Если кодируется менее чем три байта, то соответствующие биты буфера устанавливаются в ноль. Далее каждые шесть бит буфера, начиная с самых старших, используются как индексы строки «ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123 456789+/» и её символы, на которые указывают индексы, помещаются в выходную строку. Если кодируются только один или два байта, используются только первые два или три символа строки и выходная строка дополняется двумя или одним символами «=». Это предотвращает добавление дополнительных битов к восстановленным данным. Процесс повторяется над оставшимися входными данными.
Например, исторический слоган Википедии,
Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure.
закодирован в base64 следующим образом:
TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFz b24sIGJ1dCBieSB0
aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGl jaCBpcyBhIGx1
c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2Yg ZGVsaWdodCBpbiB0
aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24 gb2Yga25vd2xlZGdl
LCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm 5hbCBwbGVhc3VyZS4=
Дополнения (attachments)
From: drug@yandex.ru
To: gena@mail.ru
Subject: Pozdravlyau!
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=“----------F9876678DDB9”
----------F9876678DDB9
Content-Type: text/plain; charset=Windows-1251
Content-Transfer-Encoding: 8bit
Privet, Gena!!!...
----------F9876678DDB9
Content-Type: image/jpg; name=“otkritka.jpg”
Content-transfer-encoding: base64
Content-Disposition: attachment; filename=“otkritka.jpg”
base64 encoded data.....
----------F9876678DDB9
Размещено на Allbest.ru
Подобные документы
Понятие и характеристики компьютерных сетей. Классификация сетей по ряду признаков: по назначению, территориальной распространенности, по типу функционального взаимодействия, типу среды передачи, топологии сетей, скорости передач, по сетевым ОС.
презентация [510,5 K], добавлен 12.09.2011Назначение и классификация компьютерных сетей. Обобщенная структура компьютерной сети и характеристика процесса передачи данных. Управление взаимодействием устройств в сети. Типовые топологии и методы доступа локальных сетей. Работа в локальной сети.
реферат [1,8 M], добавлен 03.02.2009Классификация компьютерных сетей. Назначение компьютерной сети. Основные виды вычислительных сетей. Локальная и глобальная вычислительные сети. Способы построения сетей. Одноранговые сети. Проводные и беспроводные каналы. Протоколы передачи данных.
курсовая работа [36,0 K], добавлен 18.10.2008Классификация компьютерных сетей в технологическом аспекте. Устройство и принцип работы локальных и глобальных сетей. Сети с коммутацией каналов, сети операторов связи. Топологии компьютерных сетей: шина, звезда. Их основные преимущества и недостатки.
реферат [134,0 K], добавлен 21.10.2013Сущность и классификация компьютерных сетей по различным признакам. Топология сети - схема соединения компьютеров в локальные сети. Региональные и корпоративные компьютерные сети. Сети Интернет, понятие WWW и унифицированный указатель ресурса URL.
презентация [96,4 K], добавлен 26.10.2011Теоретические основы организации локальных сетей. Общие сведения о сетях. Топология сетей. Основные протоколы обмена в компьютерных сетях. Обзор программных средств. Аутентификация и авторизация. Система Kerberos. Установка и настройка протоколов сети.
курсовая работа [46,3 K], добавлен 15.05.2007Устройство компьютерных сетей. Системы для передачи информации, состоящие из терминалов, серверов и коммуникационной среды. Технические, программные и информационные средства сетей. Классификация компьютерных сетей. Сетевые операционные системы.
курсовая работа [3,7 M], добавлен 10.07.2014Топологии компьютерных сетей. Методы доступа к каналам связи. Среды передачи данных. Структурная модель и уровни OSI. Протоколы IP и TCP, принципы маршрутизации пакетов. Характеристика системы DNS. Создание и расчет компьютерной сети для предприятия.
курсовая работа [2,3 M], добавлен 15.10.2010Операция обмена данными между прикладной программой и шиной USB путем передачи буферов памяти. Основные характеристики каналов. Аппаратная часть USB. Физическая топология шины. Конструкция кабелей и коннекторов. Способы питания устройств от сети.
контрольная работа [218,4 K], добавлен 27.01.2014Принцип построения компьютерных сетей: локальные вычислительные сети и глобальные компьютерные сети Internet, FidoNet, FREEnet и другие в деле ускорения передачи информационных сообщений. LAN и WAN сети, права доступа к данным и коммутация компьютеров.
курсовая работа [316,0 K], добавлен 18.12.2009