Ознакомительная версия. Доступно 23 страниц из 113
Качественное отличие интернета от этих ранних систем заключается в децентрализованности. Работа интернета основана на наборе протоколов, с помощью которых компьютеры взаимодействуют друг с другом. Самый важный — семейство протоколов TCP/IP (Transmission Control Protocol / Internet Protocol). Вместо передачи ASCII-кодов по проводам передатчики, работающие на основе TCP/IP, разделяют крупные блоки данных на небольшие пакеты, которые отправляются по линии передачи (например, по телефонной) и заново собираются в приемнике.
Популярная составляющая интернета — сервис World Wide Web (WWW, Всемирная паутина), использующий протокол HTTP (Hypertext Transfer Protocol — «протокол передачи гипертекста»). Содержимое веб-страниц оформляется в текстовом формате HTML (Hypertext Markup Language — «язык разметки гипертекста»). Слово «гипертекст» используется для описания совокупности связанных фрагментов (как в устройстве Memex Вэнивара Буша). HTML-файл может содержать ссылки на другие веб-страницы, на которые с него можно легко перейти.
Формат HTML напоминает описанный ранее RTF, поскольку содержит ASCII-текст вместе с информацией о его форматировании. HTML также позволяет ссылаться на изображения в форматах GIF, PNG (Portable Network Graphics) и JFIF (JPEG File Interchange Format). Большинство веб-браузеров разрешают просматривать HTML-файлы именно благодаря их текстовому формату. Еще одно преимущество текстового представления HTML-файла — легкость, с которой в нем можно осуществлять поиск. Несмотря на свое название, HTML не относится к языкам программирования, о которых мы говорили в главе 19 и главе 24. Веб-браузер считывает данные из HTML-файла и соответствующим образом форматирует текст и графику.
Иногда при просмотре определенных веб-страниц необходимо запустить специальный программный код. Такой код может работать либо на сервере, где хранятся исходные веб-страницы, либо на клиенте, то есть на вашем компьютере. На сервере вся необходимая работа (например, интерпретация содержимого полей онлайн-формы), как правило, выполняется с помощью сценариев CGI (Common Gateway Interface — «общий интерфейс шлюза»). Запускаемый на стороне клиента код обычно содержится в HTML-файле в виде сценария, написанного на простом языке программирования JavaScript. Веб-браузер интерпретирует операторы JavaScript так же, как текст HTML.
Почему веб-сайт не может просто предоставить исполняемую программу для запуска на компьютере? Во-первых, многое зависит от типа машины. Компьютеру Macintosh требуется исполняемый файл, содержащий машинный код для процессора PowerPC и обращения к функциям API Mac OS, PC-совместимому — исполняемый файл, содержащий код для процессора Intel Pentium и обращения к функциям API ОС Windows. Однако существуют другие компьютеры и графические операционные системы. Более того, вам вряд ли захочется загружать все исполняемые файлы без разбора, поскольку можно загрузить из ненадежного источника файл, который способен причинить вред.
Для решения этой проблемы компания Sun Microsystems разработала язык Java (не путайте с JavaScript). Java — это полноценный объектно-ориентированный язык программирования, похожий на C++. В предыдущей главе я объяснил, в чем разница между компилируемыми и интерпретируемыми языками. Язык Java — что-то среднее. Программу, написанную на Java, необходимо скомпилировать, но результатом компиляции обычно является не машинный код, а байт-коды Java. По структуре они похожи на машинный код, но предназначены для воображаемого компьютера, называемого виртуальной машиной Java (JVM, Java virtual machine). Компьютер, на котором выполняется скомпилированная Java-программа, эмулирует работу JVM, интерпретируя байт-коды. Java-программа использует установленную графическую операционную систему, что позволяет заниматься платформонезависимым программированием.
Несмотря на то что большая часть этой книги была посвящена использованию электричества для передачи сигналов и информации по проводам, более эффективна передача данных в виде световых импульсов по оптоволоконному кабелю — тонкой стеклянной или полимерной трубке, позволяющей свету огибать углы. При использовании такой технологии скорость передачи данных достигает миллиардов бит в секунду.
Таким образом, в будущем именно фотоны, а не электроны будут доставлять большую часть информации в наши дома и офисы. Это будет напоминать многократно ускоренную передачу кода Морзе и обмен вспышками света, которые мы когда-то использовали для того, чтобы поделиться полуночной мудростью с лучшим другом, жившим в доме напротив.
Благодарности
Идея написать эту книгу возникла у меня в 1987 году. Я обдумывал ее на протяжении десяти лет и писал наброски в файле Microsoft Word с января 1996 года по июль 1999-го. Я выражаю огромную благодарность:
читателям первых черновиков книги Шерил Кантер, Йену Истлунду, Питеру Голдеману, Линн Магалска и Дейрдре Синнотт за комментарии, замечания и предложения;
моему агенту Клодетт Мур из литературного агентства Moore Literary Agency и всем сотрудникам Microsoft Press, которые помогли этой книге увидеть свет;
моей матери, которая всегда поддерживала меня в начинаниях;
маленькой кошечке, жившей у меня с 1982 по май 1999 года, благодаря которой в книге появились многие примеры;
таким веб-сайтам, как Bibliofind (bibliofind.com) и Advanced Book Exchange (abebooks.com), предоставляющим удобный доступ к подержанным книгам, а также сотрудникам отдела науки, техники и бизнеса Нью-Йоркской публичной библиотеки (nypl.org);
моим друзьям, без поддержки которых мой замысел не был бы реализован;
и еще раз Дейрдре, моему идеальному читателю и не только.
Чарльз Петцольд
15 июля 1999 года
Об авторе
Чарльз Петцольд живет в Нью-Йорке и занимается программированием и написанием книг о персональных компьютерах. Его классическая книга «Программирование для Windows» выдержала множество изданий и оказала значительное влияние на целое поколение программистов. Книга «Код» позволяет читателю с любым уровнем технической подготовки узнать, как работают компьютеры, и познакомиться с одаренным преподавателем.
Библиография
Аннотированную библиографию для этой книги можно найти на сайте charlespetzold.com/code.
Ознакомительная версия. Доступно 23 страниц из 113