HTML

Автор: Пользователь скрыл имя, 23 Февраля 2013 в 00:36, курсовая работа

Описание работы

Первый в мире сайт info.cern.ch появился в 1990 году. Его создатель, Тим Бернерс-Ли, опубликовал на нём описание новой технологии World Wide Web, основанной на протоколе передачи данных HTTP, системе адресации URI и языке гипертекстовой разметки HTML. Сайт стал и первым в мире интернет-каталогом, так как позже Тим Бернерс-Ли разместил на нём список ссылок на другие сайты.Все инструменты, необходимые для работы первого сайта, Бернерс-Ли подготовил ещё раньше — в конце 1990 года появились первый гипертекстовый браузер WorldWideWeb с функционалом веб-редактора, первый сервер на базе NeXTcube и первые веб-страницы.«Отец» веба считал, что гипертекст может служить основой для сетей обмена данными, и ему удалось претворить свою идею в жизнь.

Содержание

Введение 3
1. HTML 5
1.1.Структура HTML-документа 7
1.2. Варианты DOCTYPE для HTML 4.01 8
1.3. Варианты DOCTYPE для HTML 5 8
2. JavaScript 9
2.1. Предпосылки 9
2.2. Возможности языка 12
2.2.1 Структура языка 13
Ядро ECMAScript 14
2.2. Встраивание в веб-страницы 14
Расположение внутри страницы 14
2.3. Область применения Веб-приложения 16
2.4. Браузерные операционные системы WebOS 17
2.5. Виджеты 18
Элемент интерфейса 18
2.6. Офисные приложения 19
2.7. Библиотеки JavaScript 20
2.8. Связь с другими языками 22
Взаимное влияние 22
2.9. Безопасность 23
3. Perl 25
4. PHP 26
Заключение 28
Список литературы. 29

Работа содержит 1 файл

Компьютерные сети.docx

— 193.56 Кб (Скачать)

Blue Ridge, плагин к фреймворку  веб-приложений Ruby on Rails, позволяет осуществлять модульное тестирование JavaScript-кода как в браузере, так и вне его. Это достигается за счёт использования фреймворка автоматизированного тестирования Screw.Unit и Rhino с env.js.

Главная проблема систем тестирования, не использующих браузеры, в том, что  они используют эмуляции, а не реальные окружения, в которых выполняется  код. Это приводит к тому, что успешное прохождение тестов не гарантирует  того, что код корректно отработает в браузере. Проблемой систем тестирования, использующих браузер, является сложность  работы с ними, необходимость осуществления  рутинных неавтоматизированных действий. Для решения этого JsTestDriver, фреймворк  автоматизированного тестирования, разрабатываемый Google, использует сервер, взаимодействующий с браузерами для осуществления тестирования. Сходным образом ведёт себя Selenium Remote Control, входящий во фреймворк автоматизированного тестирования Selenium: он включает в себя сервер, запускающий и завершающий браузеры и действующий как HTTP-прокси для запросов к ним. Кроме того, в Selenium содержится Selenium Grid, позволяющий осуществлять одновременное тестирование JavaScript-кода на разных компьютерах с разными окружениями, уменьшая время выполнения тестов. Testswarm, имеющее поддержку фреймворков автоматизированного тестирования JavaScript-кода QUnit (библиотека jQuery), UnitTestJS (библиотека Prototype), JSSpec (библиотека MooTools), JsUnit, Selenium и Dojo Objective Harness, представляет собой распределённое средство поддержки непрерывной интеграции.

Негативное свойство, которым  может обладать фреймворк автоматизированного  тестирования JavaScript-кода — наличие зависимостей. Это создаёт риск отказа в работе тестируемого кода, успешно проходящего тесты, в среде с отсутствием этих зависимостей. Например, исходная версия JsUnitTest, фреймворка, созданного и использовавшегося для тестирования библиотеки Prototype, зависела от самой Prototype, изменяющего свойства объектов в глобальной области видимости. Включение в библиотеку JavaScript инструмента тестирования — распространённая практика. Так YUI Test 3 является частью Yahoo! UI Library и может быть безопасно использован для тестирования произвольного JavaScript-кода. QUnit — фреймворк автоматизированного тестирования, созданный разработчиками jQuery.

2.8. Связь с другими языками

Взаимное влияние

Стандартизация JavaScript потребовала  уйти от проблем с торговыми марками, поэтому стандарт ECMA 262 называет язык ECMAScript, три редакции которого были опубликованы с начала работы над ним в ноябре 1996 года.

Objective-J — это строгое компактное надмножество JavaScript, в котором к JavaScript добавлено:

традиционное наследование,

динамическая диспетчеризация  методов в стиле Smalltalk/Objective-C,

псевдостатичная типизация.

VBScript от Microsoft, подобно JavaScript, может выполняться на стороне клиента в веб-страницах. VBScript имеет синтаксис, производный от Visual Basic и поддерживается только в Internet Explorer.

JSON, или объектная нотация JavaScript, это формат обмена данными общего назначения, определённый как подмножество JavaScript.

Scheme также является родственным JavaScript языком, поскольку оба представляют богатые возможности функционального программирования: JavaScript является динамическим языком, поддерживает гибкие массивы, может легко симулировать s-выражения, имеет поддержку лямбда-выражений.

Взаимодействие

В некоторых языках программирования существуют средства поддержки взаимодействия с JavaScript-кодом.

Для PHP имеется пакет HTML_Javascript, предоставляющий интерфейс создания простых JavaScript-программ.

Соответствующий пакет для TCL называется :javascript. Он предоставляет команды генерации кода HTML и JavaScript.

Пакет для Perl Data::JavaScript позволяет переносить структуры данных Perl в JavaScript-код.

Поддержка браузерами

На сегодняшний день поддержку JavaScript обеспечивают современные версии всех наиболее часто используемых браузеров. В Internet Explorer, Mozilla Firefox, Safari, Google Chrome, Opera имеется полная поддержка третьей редакции ECMA-262. При этом в Mozilla Firefox предпринята попытка осуществления поддержки четвёртой редакции спецификации, а первым браузером, в котором появилась неполная поддержка спецификации 3.1, явился Internet Explorer 8.

Допущенные разработчиками популярных браузеров ошибки в реализации спецификации, как правило, незначительны. По состоянию на ноябрь 2009 года объектная  модель документа имеет более  ограниченную поддержку.

По мнению создателя языка, поддержка в Internet Explorer компанией Microsoft одного из существующих и применяющихся  в других браузерах быстрых движков JavaScript способно привести к появлению приложений, работающих с трёхмерной графикой, написанных на JavaScript 3D-игр, использованию JavaScript в задачах, в которых ранее применялась технология Adobe Flash.

2.9. Безопасность

JavaScript позволяет потенциальным  авторам вредоносного кода запускать  его на любом компьютере сети: для этого достаточно открыть  на нём веб-страницу. Это обуславливает  наличие двух принципиальных  ограничений:

JavaScript-программы выполняются  в песочнице, в которой они могут выполнять только ограниченный круг действий, а не задачи программирования общего назначения (например, создание файлов, работа с сокетами),

для JavaScript-кода применяется политика общего происхождения, в соответствии с которой скрипт, встроенный в страницу, не может получить доступ к ряду свойств объектов другой страницы (в частности, к большинству свойств объекта document) при отличии в протоколе, хосте и номере порта этих страниц.

Помимо этого, разработчики браузеров вносят дополнительные ограничения  в ответ на имеющие место злоупотребления. Так появился, в частности, запрет на открытие окна, размер одной стороны  которого меньше ста пикселей.

Межсайтовые уязвимости

Общая проблема, касающаяся JavaScript — межсайтовый скриптинг или XSS, нарушение политики общего происхождения. Уязвимости XSS имеют место в ситуациях, когда злоумышленник имеет возможность поместить скрипт на страницу, демонстрирующуюся пользователю. В этом случае скрипт получает доступ к сайту с правами этого пользователя, что в ряде случаев открывает возможность отсылки конфиденциальной информации, осуществление нежелательных транзакций.

Уязвимости XSS также происходят из-за ошибок, допущенных разработчиками браузеров.

Другим типом межсайтовой  уязвимости является подделка межсайтовых  запросов или CSRF. Она заключается  в возможности сайта злоумышленника заставить браузер пользователя осуществить нежелательное действие на целевом сайте (например, банковский перевод денег). Такая возможность  имеется, если целевой сайт полагается только на HTTP cookie или запросы авторизации. В этом случае запросы, инициализированные кодом сайта злоумышленника выполняются так же как запросы пользователя, если он авторизован на целевом сайте. Одним из средств защиты от CSRF является осуществление аутентификации при любом запросе, который приводит к необратимым последствиям. Также может помочь анализ HTTP referer.

 

3. Perl

Perl - это процедурный язык программирования -- универсальный инструмент для решения очень широкого круга задач. Perl не разрабатывался специально для Web-программирования. Perl, как и любой полноценный язык, имеет некоторое ядро - набор функций и правил, которые не зависят от платформы, операционной системы и прочих обстоятельств. Код Perl мобилен и переносим и везде одинаков. Различия дистрибутивов Perl схожих версий сводятся наличием установленных модулей. Perl предоставляет программисту ограниченный набор стандартных инструментов. Это дисциплинирует программиста и облегчает обмен кодом и опытом. При этом, программист совсем не скован и всегда может получить требуемые возможности, подключив соответствующий модуль. Perl является зрелым языком. Мало подвержен всяческим багфиксам и изменениям. Снабжен развитыми средствами разработки. Все "детские" ошибки Perl пережил еще более чем 10 лет назад. Perl обеспечивает более высокую производительность в веб-разработках, только если использовать не CGI-подход, а mod_perl. Большинство провайдеров не предоставят вам такой возможности. Perl представляет минимум функций в своем ядре. Чтобы расширить функционал языка требуется подключать дополнительные модули. Большинство других языков имеют гораздо больше встроенных функций. Perl имеет собственную систему документирования и снабжён прекрасной документацией на английском языке. Перегрузка операторов возможна, но является очень ограниченной и искусственной надстройкой. В Perl исключения можно эмулировать, при помощи таких модулей, как Error.pm и Exception.pm, не входящих в стандартную поставку. Они основаны на умелом использовании eval/die, но это весьма искусственный приём, который никак не может обеспечить требуемой гибкости современного объектно-ориентированного языка.  В Perl все переменные глобальны, если не указано иное. Но чаще всего требуется именно иное. В Perl аргументы функций задаются в магическом массиве.

 

4. PHP

PHP псевдообъектный язык  программирование и изначально  предназначался для разработки Web-приложений. Он пытается сочетать мощь  полноценного языка и преимущества  узкоспециального средства. В поисках  компромисса, PHP приобретает целый  ряд спорных качеств. PHP не является полноценным языком программирования и практически не имеет своего ядра. Отсюда проистекает целый ряд особенностей PHP. Набор функций PHP, который оказывается в распоряжении программиста, практически полностью зависит от провайдера. («Правильные» провайдеры всегда пишут, с какими опциями был собран их PHP.) Эта разница весьма ощутима. Например, если сайт разработан с использованием Smarty, то он заработает далеко не на всяком хостинге. И происходит это только потому, что аппарат Smarty использует POSIX-расширение механизма регулярных выражений. Если ваше PHP-приложение написано с использованием функций, которых хостер не предоставляет, или вы использовали библиотеки, которые зависят от таких функций, то расширить набор функций PHP самостоятельно чаще всего нельзя. PHP предоставляет (потенциально) великое множество функций. На настоящий момент их более 3000. На реальном хостинге вы обнаружите около 1000 из них. Такой широкий набор выразительных средств не идёт на пользу языку. Разные программисты знают разные наборы операторов. Это затрудняет чтение чужого кода, обмен кодом и совместную разработку. PHP относительно молодой язык. Подвержен частым багфиксам и дополнениям. В PHP механизм указателей находится в зачаточном состоянии. В PHP не предусмотрена такая структура данных, как массив. В этом смысле PHP находится на уровне awk. Одним словом, PHP ещё долго будет меняться, создавая множество проблем разработчикам. При ведении именно Web-разработок, PHP обнаруживает ряд существенных преимуществ. Во-первых, интерпретатор PHP интегрируется в Web-сервер, что в разы увеличивает производительность. Во-вторых, Web-приложения на PHP проще отлаживать. Сообщения об ошибках часто выдаются клиенту, а не пишутся в error_log. В-третьих, PHP имеет широкий набор встроенных функций, для работы по протоколу HTTP. Однако, почти все эти преимущества оборачиваются серьёзными проблемами с точки зрения безопасности ресурса. То, что PHP встроен в сервер, затрудняет диагностику источника атак. PHP даёт большую свободу разработчику -- PHP-скрипт может быть размещён в любой директории сервера. Но это тоже создаёт дополнительные риски. Во многих случаях, по невнимательности разработчиков, посетитель сервера получает возможность «залить» на сервер не только картинки и другие безобидные файлы, но PHP-скрипты, а это уже очень серьёзная опасность. То, что PHP выдаёт сообщения об ошибках в ответ на HTTP-запрос, удобно для разработчика. Но с точки зрения безопасности это решение мне всегда казалось спорным, ведь любой посетитель вашего сайта может узнать об ошибках в ваших программах. А злоумышленнику может оказаться достаточно узнать версию вашего PHP, чтобы «сломать» ваш ресурс. Преимуществом документации PHP является то, что она переведена на русский язык. К недостаткам я бы отнёс её необъятность. Основной проблемой PHP является то, что этот язык позволяет смешивать HTML-код и PHP-код. Фактически, это смешение данных и кода. Человечество уже десятки лет назад осознало, что код и данные следует разделять. Для этого найдено множество изящных решений, от хедеров и конфигурационных файлов, до шаблонов и обособленных хранилищ данных. В этом смысле PHP представляется шагом назад; каким-то старорождённым. Если посмотреть на это с прикладной точки зрения, то ничего хорошего мы тоже не увидим. Объединение HTML- и PHP-кода не улучшает читабельность ни того, ни другого. Соответственно, сопровождение, модернизация и модификация программ тоже затрудняются. Но существуют недостатки, «встроенные» в сам язык. Так, например, представляется очень неудобным то, как регламентируется передача параметров функциям. Будет ли параметр передан по значению или по ссылке определяется не при вызове функции, а при её создании. Вызов же выглядит одинаково и в том и в другом случае. Это удобно, если автором всеx функций являетесь вы сами, и вы хорошо помните прототипы ваших функций. Но при активной работе в команде это приводит к путанице. Точно также обстоит дело и с функциями, возвращающими указатели. Это самый большой из тех недостатков PHP, которые никак нельзя обойти.

 

Заключение

В данной курсовой работе рассмотрены  языки программирования (HTML,JavaScript,Perl,PHP) по web-разработке. Каждая из них актуальна и пользуется спросом как у программистов, так и простых людей не имеющих навыков в этой среде, но желающих саздать свой сайт.

С помощью HTML можно легко создать относительно простой, но красиво оформленный документ. Помимо упрощения структуры документа, в HTML внесена поддержка гипертекста. Мультимедийные возможности были добавлены позже.

JavaScript обычно используется  как встраиваемый язык для  программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.             Основные архитектурные черты: динамическая типизация, слабая типизация, автоматическое управление памятью, прототипное программирование, функции как объекты первого класса.

На JavaScript оказали влияние  многие языки, при разработке была цель сделать язык похожим на Java, но при  этом лёгким для использования непрограммистами. Языком JavaScript не владеет какая-либо компания или организация, что отличает его от ряда языков программирования, используемых в веб-разработке[.

 

Perl - это процедурный язык программирования, универсальный инструмент для решения очень широкого круга задач. Perl предоставляет программисту ограниченный набор стандартных инструментов. Это дисциплинирует программиста и облегчает обмен кодом и опытом. При этом, программист совсем не скован и всегда может получить требуемые возможности, подключив соответствующий модуль.

PHP псевдообъектный язык  программирование и изначально  предназначался для разработки Web-приложений. При ведении именно Web-разработок, PHP обнаруживает ряд существенных преимуществ. Во-первых, интерпретатор PHP интегрируется в Web-сервер, что в разы увеличивает производительность. Во-вторых, Web-приложения на PHP проще отлаживать. Сообщения об ошибках часто выдаются клиенту, а не пишутся в error_log. В-третьих, PHP имеет широкий набор встроенных функций, для работы по протоколу HTTP

Итак, рассмотрев эти программы  невольно приходишь к выводу, что  каждая особенна по своему. И использовав, тот или иной язык, получаешь уникальный электронный сайт, созданный своими руками.

 

Список литературы.

  1. Александровский А. Д. Создание Web-страниц с использованием  JavaScript. – М.: ДМК, 1998.
  2. Матросов А., Сергеев А., Чаунин М. HTML 4.0. – СПб.: БХВ-

Информация о работе HTML