Всемирная паутина

Методические указания к лабораторной работе по курсу «инфокоммуникационные системы и сети»

Всемирная паутина, или «Веб» (англ. World Wide Web, WWW), является, пожалуй, наиболее заметным приложением Internet.

Номинальный вклад этой работы в оценку — 30 баллов.

Ресурсы Всемирной паутины

Ознакомьтесь с материалами какого-либо «некоммерческого» (т. е. не принадлежащего какой-либо компании и не связанного с реализацией предпринимательской деятельности) ресурса Всемирной паутины.

  1. (1 балл.) Расскажите о предмете, которому посвящен выбранный ресурс Всемирной паутины. Подкрепите ссылками (URI) на две различных страницы ресурса.

  2. (2 балла.) Найдите во Всемирной паутине альтернативный, независимый от выбранного, источник информации о предмете (индивиде, некоммерческой организации, etc.) Опишите предмет по материалам альтернативного источника. Укажите, в чем источники сходятся, а в чем не согласны друг с другом. Подкрепите сравнение двумя цитатами из каждого ресурса.

  3. (1 балл.) Используя «отладочные» средства пользовательского агента выявите три различных ресурса HTTP, запрашиваемых для отображения конкретной страницы. Приведите URI ресурсов и их HTTP-заголовки.

  4. (1 балл.) Воспользуйтесь для просмотра ресурса каким-либо «легковесным» пользовательским агентом Всемирной паутины — Lynx, Dillo, Edbrowse, etc. Приведите одно преимущество и один недостаток использования такого агента по сравнению с «полновесным» (Chromium, Firefox, etc.)

  5. (1 балл.) Выявите и опишите две существенных «технических» (орфография, «разметка», etc.) ошибки на ресурсе. Подкрепите ссылками на «нормативные» (словарь, спецификация формата, etc.) документы.

  6. (2 балла.) Свяжитесь с оператором ресурса и договоритесь об устранении найденных проблем. Сохраните страницу в «машине времени» Internet-архива до и после их устранения! Включите в отчет URI сохраненных редакций.

Internet-архив

  1. (1 балл.) Изучите историю какого-либо «некоммерческого» ресурса Всемирной паутины в «машине времени» (англ. Wayback machine; http://web.archive.org/.) Сравните между собой три редакции какой-либо страницы ресурса, разделенные не менее, чем одним годом. Приведите пять существенных отличий между редакциями.

  2. Среди прочего, Internet-архив содержит большое количество «исторических» видеоигр для различных платформ.

    1. (2 балла.) Для какой-либо игры, имеющейся в Internet-архиве, найдите видео прохождения «на скорость.» Запишите видео собственного успешного прохождения этой игры, время которого не превышает время найденного более, чем на четверть.

    2. (1 балл.) Опубликуйте записанное видео во Всемирной паутине.

    3. (1 балл.) Сохраните копию прохождения в «машине времени» Internet-архива.

    4. (2 балла.) Приведите убедительные свидетельства в пользу того, что опубликованное видео было просмотрено не менее, чем 100 раз.

  3. (1 балл.) Найдите в Internet-архиве какое-либо художественное произведение, объемом не менее 5 000 слов. Опишите сюжет. Подкрепите свое описание тремя цитатами из текста.

  4. (2 балла.) Прослушайте запись эпизода какой-либо радиопостановки, из числа представленных в Internet-архиве. Опишите сюжет. Подкрепите свое описание тремя цитатами из записи.

Размещение материалов

Размещение (публикация) материалов во Всемирной паутине представляет собой задачу, которая, в зависимости от контекста, может решаться как крайне просто, так и на удивление сложно.

Во всех случаях ниже, мы считаем необходимым, чтобы фактически опубликованный во Всемирной паутине файл в точности (побайтово) совпадал с исходным; заголовок Content-Type: ответа HTTP так же должен соответствовать назначению и формату исходного файла.

  1. (1 балл.) Опубликуйте какой-либо документ HTML. Документ должен успешно проходить формальную проверку с использованием http://html5.validator.nu/ и (или) иных подобных средств.

  2. (1 балл.) Опубликуйте какой-либо файл растрового графического формата (JPEG/JFIF, PNG, etc.)

  3. (1 балл.) Опубликуйте какой-либо видеофрагмент в открытом, непатентованном формате (например, WebM, Ogg/Theora.)

  4. (1 балл.) Опубликуйте программу для выполнения пользовательским агентом, дающую результат, аналогичный требуемому в задаче на «серверное» программирование. Приведите одно преимущество и один недостаток такой реализации по сравнению с выполнением программы на сервере.

  5. (1 балл.) Опубликуйте какие-либо два файла различных типов используя http://transfer.sh/. Изучите и объясните заголовки ответов HTTP, получаемых при разрешении соответствующих URI.

  6. (1 балл.) Сохраните копию трех опубликованных ресурсов в «машине времени» Internet-архива. Все ресурсы должны быть различных типов.

Сервера HTTP

  1. Запустите какой-либо сервер HTTP (например, lighttpd, busybox httpd, или иной.)

    Обратите внимание, что занятие TCP-порта 80, зарегистрированного IANA для протокола HTTP, является привилегированной операцией в многопользовательских системах. (Как и любого другого порта с номером в диапазоне 0‒1023.) Следовательно, для успешного запуска сервера может потребоваться выбрать какой-либо другой (свободный в данный момент) номер порта.

    1. (1 балл.) Удостоверьтесь в работоспособности сервера отправив к нему HTTP-запрос и успешно получив на него HTTP-ответ. Объясните полученный код состояния HTTP и значение заголовка Content-Type:.

      Обратите внимание, что для получения кода состояния и HTTP-заголовков ответа может потребоваться использовать отдельную опцию пользовательского агента (wget -S, curl -i, etc.)

    2. (1 балл.) Разместите на сервере какой-либо файл. Получите копию файла и удостоверьтесь, что она совпадает с оригиналом. Объясните код состояния и значения трех заголовков ответа.

    3. (2 балла.) Разместите на сервере программу, выдающую приветственное сообщение и как-либо нетривиально измененную задаваемую произвольно пользователем часть URI. (Например, обращение к http://example.com/program/notapalindrome может возвращать emordnilapaton.) Проверьте ее работоспособность. Обоснуйте код состояния и заголовки, возвращаемые программой.

      Как вариант, вместо запуска программы HTTP-сервером, сделайте HTTP-сервер частью своей программы. Воспользуйтесь GNU Microhttpd, HTTP::Daemon, Tcllib httpd, или иным «встраиваемым» сервером.

    4. (1 балл.) Сохраните копию трех ресурсов своего сервера в «машине времени» Internet-архива. URI сохраняемых ресурсов должны иметь вид http://имя-сервера:порт/tevej1/имя-ресурса.

  2. Частным случаем HTTP-сервера является т. н. HTTP proxy.

    Исторически, кэширующие proxy применялись для «ускорения» доступа на уровне организации (или домашней сети), однако повсеместное распространение HTTP/TLS (HTTPS) сделало такое использование невозможным. (Во всяком случае, без потери «защищенности», обеспечиваемой TLSсм., например, Mitmproxy, Sslstrip, etc.)

    Тем не менее, HTTP proxy могут применяться для обеспечения (ограниченного) доступа к Internet без предоставления полной связности. Кроме того, такие сервера могут, в определенных случаях, применяться для ускорения обработки запросов на стороне сервера (т. н. обратный proxy.)

    1. (1 балл.) Запустите какой-либо proxy-сервер (например, Polipo.) Удостоверьтесь в работоспособности, выполнив через него запросы к трем различным http: URI.

    2. (1 балл.) Многие Internet-клиенты поддерживают использование HTTP proxy для установления TCP-соединения с удаленными серверами — в том числе и с использованием протоколов, отличных от HTTP. Еще один протокол, который можно использовать для тех же целей — SOCKS — поддерживается значительно реже. Тем не менее, по меньшей мере Polipo может быть настроен на использование «вышестоящего» SOCKS proxy.

      Перенаправьте поток данных через SOCKS proxy используя HTTP proxy.

    3. (1 балл.) В некоторых случаях, для аутентикации пользователя proxy используется «фирменный» протокол NTLM, поддерживаемый далеко не всеми клиентами HTTP. Для передачи запросов через такой сервер можно включить между ним и целевым HTTP-клиентом специализированный сервер Cntlm.

      Настройте и запустите Cntlm. Удостоверьтесь в работоспособности, выполнив через него запросы к трем различным http: URI.

  3. (2 балла.) Реализуйте собственную «веб-радиостанцию». (Например, на основе специализированного HTTP-сервера Icecast.)

    Музыкальные произведения для трансляции можно найти, например, на Викискладе; или же, с оговорками, Jamendo, http://remix.kwed.org/ и др.

Оформление отчета

  1. (1 балл.) Оформите отчет в виде документа HTML.

    Обратите внимание на то, что документ должен не только корректно воспроизводится соответствующим программным обеспечением, но и успешно проходить формальную проверку с использованием http://html5.validator.nu/ и (или) иных подобных средств. Элементы и атрибуты HTML должны быть использованы семантически-обоснованно — сообразно смыслу, которым их наделяет текущая практика и актуальные спецификации.

  2. (1 балл.) Дополните документ нетривиальной стилевой информацией (CSS.) Используйте пять не дублирующих правил (ни друг-друга, ни умолчания пользовательского агента), пять различных селекторов и пять различных свойств. Поясните их использование.

  3. (1 балл.) Опубликуйте отчет во Всемирной паутине. Удостоверьтесь, используя какой-либо специализированный агент Всемирной паутины (Wget, Curl, etc.) в том, что полученный URI действительно разрешается в точную копию опубликованного файла, а HTTP-ответ содержит корректный код состояния и заголовки (в первую очередь — Content-Type:.)

  4. (1 балл.) Сохраните копию опубликованного отчета в «машине времени» Internet-архива.