Автор работы: Пользователь скрыл имя, 02 Июля 2015 в 21:04, курсовая работа
В связи с распространением широкополосного доступа в интернет множество приложений выносятся в web существуют онлайн редакторы фотографий, офисные приложения, системы хранения данных.
На декабрь 2014 года в интернете насчитывается порядка 1 млрд. сайтов.
Появляются системы с операционными системами, основанными на Web-браузерах (к примеру Google Chrome Operating System).
Министерство образования и науки Российской Федерации
федеральное государственное автономное образовательное учреждение
высшего профессионального образования
«Северный (Арктический) федеральный университет имени М.В. Ломоносова»
(наименование кафедры) |
||||||||||||||||||||
(фамилия, имя, отчество студента) |
||||||||||||||||||||
Институт |
МИКТ |
курс |
2 |
группа |
||||||||||||||||
|
||||||||||||||||||||
КУРСОВАЯ РАБОТА |
||||||||||||||||||||
По дисциплине |
Технологии и методы программирования |
|||||||||||||||||||
На тему |
Современные технологии разработки ПО. Технологии |
|||||||||||||||||||
(наименование темы) |
||||||||||||||||||||
WEB-разработки. Протокол HTTP. CGI. DHTML. CMF и CMS. |
||||||||||||||||||||
Работа допущена к защите |
||||||||||||||||||||
(подпись руководителя) |
(дата) |
|||||||||||||||||||
Признать, что работа |
||||||||||||||||||||
выполнена и защищена с оценкой |
||||||||||||||||||||
Руководитель |
||||||||||||||||||||
(должность) |
(подпись) |
(инициалы, фамилия) |
||||||||||||||||||
(дата) |
||||||||||||||||||||
Архангельск 2014 |
Лист для замечаний
В связи с распространением широкополосного доступа в интернет множество приложений выносятся в web существуют онлайн редакторы фотографий, офисные приложения, системы хранения данных.
На декабрь 2014 года в интернете насчитывается порядка 1 млрд. сайтов.
Появляются системы с операционными системами, основанными на Web-браузерах (к примеру Google Chrome Operating System).
HTTP (HyperText Transfer Protocol — протокол передачи гипертекста) — это протокол прикладного уровня, во многом аналогичный протоколам FTP и SMTP. В настоящее время используются две версии протокола HTTP 1.0 и HTTP 1.1
Обмен сообщениями идет по обычной схеме «запрос-ответ». Клиент и сервер обмениваются текстовыми сообщениями стандартного формата, то есть каждое сообщение представляет собой нескольких строк обычного текста в кодировке ASCII.
Для транспортировки HTTP-сообщений служит протокол TCP. При этом ТСР-соединения могут использоваться двумя разными способами:
Долговременное соединение, в свою очередь, может быть использовано двумя способами:
В HTTP 1.1 по умолчанию применяются постоянные соединения и конвейерный режим.
Основным объектом манипуляции
в HTTP является ресурс, на который указывает
URI (Uniform Resource Identifier – уникальный идентификатор
ресурса) в запросе клиента. Основными
ресурсами являются хранящиеся на сервере
файлы, но ими могут быть и другие логические
(напр. каталог на сервере) или абстрактные
объекты (напр. ISBN). Протокол HTTP позволяет
указать способ представления (кодирования)
одного и того же ресурса по различным
параметрам: mime-типу, языку и т. д. Благодаря
этой возможности клиент и веб-сервер
могут обмениваться двоичными данными,
хотя данный протокол является текстовым.
В протоколе HTTP все сообщения состоят из текстовых строк. Сообщения как запросов, так и ответов имеют единую обобщенную структуру из трех частей: обязательной стартовой строки, а также необязательных заголовков и тела сообщения. В табл. 1.1 приведены форматы и примеры стартовых строк и заголовков для запросов и ответов.
Обобщенная структура сообщения |
HTTP-запрос |
HTTP-ответ |
Стартовая строка (всегда должна быть первой строкой сообщения; обязательный элемент) |
Формат запроса: Метод/ URL HTTP/l.x. Пример: GET /books/ books.htm HTTP/1.1 |
Формат ответа: HTTP/l.x КодСостояния Фраза. Пример: НТТР/1.0 200 ОК |
Заголовок о DNS-имени компьютера, на котором расположен веб-сервер. Пример: Host: www.olifer.co.uk |
Заголовок о времени отправления данного ответа. Пример: Date: 1 Jan 2009 14:00:30 | |
Заголовок об используемом браузере. Пример: User-agent: Mozilla/5.0 |
Заголовок об используемом вебсервере. Пример: Server: Apache/1.3.0 (Unix) | |
Заголовок о предпочтительном языке. Пример: Accept-language: ru |
Заголовок о количестве байтов в теле сообщения. Пример: Content-Length: 1234 | |
Заголовок о режиме соединения. Пример: Connection: close |
Заголовок о режиме соединения. Пример: Connection: close | |
Пустая строка | ||
Тело сообщения (может отсутствовать) |
Здесь могут быть расположены ключевые слова для поисковой машины или страницы для передачи на сервер |
Здесь может быть расположен текст запрашиваемой страницы |
Как видно из таблицы, запросы и ответы имеют разные форматы стартовой строки. Каждая из них состоит из трех элементов, включающих поле версии протокола HTTP. И в запросе, и в ответе примера указана версия HTTP 1.1. Стартовая строка запроса включает в себя поле метода — это название операции, которая должна быть выполнена. Чаще всего в запросах используется метод GET, то есть запрос объекта. Именно он включен в наш пример запроса. Помимо этого метода в запросах протокол предусматривает и другие методы, такие как POST, который используется клиентом, например, для отправки электронной почты или в поисковых машинах, когда клиент запрашивает у сервера не определенный объект, а объекты, содержащие ключевые слова, помещенные в теле сообщения. Еще одним элементом стартовой строки является URL-ссылка на запрашиваемый объект — здесь это имя файла /books/books.htm.
В стартовой строке ответа, помимо уже упоминавшегося указания на версию протокола HTTP, имеется поле кода состояния и поле фразы для короткого текстового сообщения, поясняющего данный код пользователю.
В настоящее время стандарты определяют пять классов кодов состояния:
Среди кодов состояния имеется код 401, сопровождаемый сообщением authorization required. Если клиент получает такое сообщение в ответ на попытку доступа к странице или объекту, это означает, что доступ к данному ресурсу ограничен и требует авторизации 1 пользователя. Помимо поясняющей фразы сервер помещает в свой ответ дополнительный заголовок www – Authenticate:<…>, который сообщает клиенту, какую информацию он должен направить серверу для того, чтобы процедура авторизации могла быть выполнена. Обычно это имя и пароль. Веб-клиент с момента получения такого ответа сервера начинает добавлять во все свои запросы к ресурсам данного сервера дополнительный заголовок Authorization: <имя пароль>, который содержит информацию, необходимую для авторизации доступа.
Несмотря на то что HTTP был разработан специально для использования в вебтехнологиях, он был намеренно сделан более универсальным, чем это было необходимо, так как рассчитывался на будущее применение в объектно-ориентированных приложениях. По этой причине в дополнение к обычным запросам веб-страниц были разработаны специальные операции, называемые методами. Ещё один способ — использование дорвеев без перенаправления.
Каждый запрос состоит из одной или нескольких строк ASCII-текста, причем первое слово в первой строке является именем вызываемого метода. Встроенные методы перечислены в табл. 1.2. Имена методов чувствительны к регистру символов, то есть метод GET существует, а get — нет
Метод |
Описание |
GET |
Запрос чтения веб-страницы |
HEAD |
Запрос чтения заголовка веб-страницы |
PUT |
Запрос сохранения веб-страницы |
POST |
Добавить к именованному ресурсу (например, к веб-странице) |
DELETE |
Удалить веб-страницу |
TRACE |
Отобразить входящий запрос |
CONNECT |
Зарезервирован для будущего использования |
OPTIONS |
Опрос определенных параметров |
За строкой запроса (например, содержащей название метода GET) могут следовать другие строки с дополнительной информацией. Они называются заголовками запросов (request headers). Эту информацию можно сравнить с параметрами, предоставляемыми при вызове процедуры. В свою очередь, ответы могут содержать заголовки ответов (response headers). Некоторые заголовки могут встречаться и там, и там. Наиболее важные из них перечислены в табл. 1.3. Этот список достаточно длинный, так что, как вы понимаете, каждому запросу и ответу может соответствовать набор заголовков.
Заголовок |
Тип |
Содержимое |
User-Agent |
Запрос |
Информация о браузере и его платформе |
Accept |
Запрос |
Тип страниц, поддерживаемых клиентом |
Accept-Charset |
Запрос |
Поддерживаемые клиентом наборы символов |
Accept-Encoding |
Запрос |
Поддерживаемые клиентом типы кодирования |
Accept-Language |
Запрос |
Естественные языки, понимаемые клиентом |
If-Modified-Since |
Запрос |
Время и дата последнего обновления |
If-None-Match |
Запрос |
Теги, отосланные с последнего обновления |
Host |
Запрос |
DNS-имя сервера |
Authorization |
Запрос |
Список персональных идентификаторов клиента |
Referer |
Запрос |
URL, с которого был отправлен предыдущий запрос |
Cookie |
Запрос |
Отправка ранее принятого cookie-файла на сервер |
Set-Cookie |
Ответ |
Сервер хочет, чтобы клиент сохранил cookie |
Server |
Ответ |
Информация о сервере |
Content-Encoding |
Ответ |
Тип кодирования содержимого (например, gzip) |
Content-Language |
Ответ |
Естественный язык, используемый на странице |
Content-Length |
Ответ |
Размер страницы в байтах |
Content-Type |
Ответ |
Тип MIME страницы |
Content-Range |
Ответ |
Идентифицирует часть контента страницы |
Last-Modified |
Ответ |
Время и дата внесения последних изменений в страницу |
Expires |
Ответ |
Время и дата, когда страница перестанет считаться действительной |
Location |
Ответ |
Команда клиенту на пересылку его запроса по другому адресу |
Accept-Ranges |
Ответ |
Сервер готов принимать запросы на страницы указанного размера |
Date |
Запрос/ Ответ |
Дата и время отправки сообщения |
Range |
Запрос/ Ответ |
Идентифицирует часть страницы |
Cache-Control |
Запрос/ Ответ |
Указание на то, как обрабатывать кэш |
ETag |
Запрос/ Ответ |
Тег для контента страницы |
Upgrade |
Запрос/ Ответ |
Протокол, на который хочет переключиться отправитель |