Способ организации работы компьютера клиента при котором
Назовём задачи, которые трудно или невозможно решить без организации информационной связи между различными компьютерами:
- перенос информации на большие расстояния (сотни, тысячи километров);
- совместное использование несколькими компьютерами дорогостоящих аппаратных, программных или информационных ресурсов мощного процессора, ёмкого накопителя, высокопроизводительного лазерного принтера, баз данных, программного обеспечения и т.д.;
- перенос информации с одного компьютера на другой при несовместимых флоппи-дисководах (5,25 и 3,5 дюйма);
- совместная работа над большим проектом, когда исполнили должны всегда иметь последние (актуальные) копии общих данных во избежание путаницы, и т.д.
Есть три основных способа организации межкомпьютерной связи:
- объединение двух рядом расположенных компьютеров через их коммуникационные порты посредством специального кабеля;
- передача данных от одного компьютера к другому посредством модема с помощью проводных или спутниковых линий связи;
- объединение компьютеров в компьютерную сеть.
Часто при организации связи между двумя компьютерами за одним компьютером закрепляется роль поставщика ресурсов (программ, данных и т.д.), а за другим роль пользователя этих ресурсов. В этом случае первый компьютер называется сервером, а второй клиентом или рабочей станцией. Работать можно только на компьютере-клиенте под управлением специального программного обеспечения.
Сервер (англ. serve обслуживать) это высокопроизводительный компьютер с большим объёмом внешней памяти, который обеспечивает обслуживание других компьютеров путем управления распределением дорогостоящих ресурсов совместного пользования (программ, данных и периферийного оборудования). |
Клиент (иначе, рабочая станция) любой компьютер, имеющий доступ к услугам сервера. |
Сетевой сервер
HP LD PRO
Например, сервером может быть мощный компьютер, на котором размещается центральная база данных, а клиентом обычный компьютер, программы которого по мере необходимости запрашивают данные с сервера. В некоторых случаях компьютер может быть одновременно и клиентом, и сервером. Это значит, что он может предоставлять свои ресурсы и хранимые данные другим компьютерам и одновременно использовать их ресурсы и данные.
Клиентом также называют прикладную программу, которая от имени пользователя получает услуги сервера. Соответственно, программное обеспечение, которое позволяет компьютеру предоставлять услуги другому компьютеру, называют сервером так же, как и сам компьютер. Для преодоления несовместимости интерфейсов отдельных компьютеров вырабатывают специальные стандарты, называемые протоколами коммуникации.
Протокол коммуникации это согласованный набор конкретных правил обмена информацией между разными устройствами передачи данных. Имеются протоколы для скорости передачи, форматов данных, контроля ошибок и др. |
Для работы с сетью необходимо наличие специального сетевого программного обеспечения, которое обеспечивает передачу данных в соответствии с заданным протоколом. Протоколы коммуникации предписывают разбить весь объём передаваемых данных на пакеты отдельные блоки фиксированного размера. Пакеты нумеруются, чтобы их затем можно было собрать в правильной последовательности. К данным, содержащимся в пакете, добавляется дополнительная информация примерно такого формата:
Адрес получателя | Адрес отправителя | Длина | Данные | Поле контрольной суммы |
Контрольная сумма данных пакета содержит информацию, необходимую для контроля ошибок. Первый раз она вычисляется передающим компьютером. После того, как пакет будет передан, контрольная сумма повторно вычисляется принимающим компьютером. Если значения не совпадают, это означает, что данные пакета были повреждены при передаче. Такой пакет отбрасывается, и автоматически направляется запрос повторно передать пакет.
При установлении связи устройства обмениваются сигналами для согласования коммуникационных каналов и протоколов. Этот процесс называется подтверждением установления связи (англ. HandShake рукопожатие).
Источник
Введение в клиент-серверные технологии Веб. Протокол HTTP
Базовым протоколом сети гипертекстовых ресурсов Веб является протокол HTTP . В его основу положено взаимодействие » клиент-сервер «, то есть предполагается, что:
- Потребитель- клиент инициировав соединение с поставщиком-сервером посылает ему запрос;
- Поставщик- сервер, получив запрос, производит необходимые действия и возвращает обратно клиенту ответ с результатом.
При этом возможны два способа организации работы компьютера-клиента:
- Тонкий клиент — это компьютер-клиент, который переносит все задачи по обработке информации на сервер. Примером тонкого клиента может служить компьютер с браузером, использующийся для работы с веб-приложениями.
- Толстый клиент, напротив, производит обработку информации независимо от сервера, использует последний в основном лишь для хранения данных.
Прежде чем перейти к конкретным клиент-серверным веб-технологиям, рассмотрим основные принципы и структуру базового протокола HTTP .
Протокол HTTP
HTTP (HyperText Transfer Protocol — RFC 1945, RFC 2616) — протокол прикладного уровня для передачи гипертекста.
Центральным объектом в HTTP является ресурс, на который указывает URL в запросе клиента. Обычно такими ресурсами являются хранящиеся на сервере файлы. Особенностью протокола HTTP является возможность указать в запросе и ответе способ представления одного и того же ресурса по различным параметрам: формату, кодировке, языку и т. д. Именно благодаря возможности указания способа кодирования сообщения клиент и сервер могут обмениваться двоичными данными, хотя изначально данный протокол предназначен для передачи символьной информации. На первый взгляд это может показаться излишней тратой ресурсов. Действительно, данные в символьном виде занимают больше памяти, сообщения создают дополнительную нагрузку на каналы связи, однако подобный формат имеет много преимуществ. Сообщения, передаваемые по сети, удобочитаемы, и, проанализировав полученные данные, системный администратор может легко найти ошибку и устранить ее. При необходимости роль одного из взаимодействующих приложений может выполнять человек, вручную вводя сообщения в требуемом формате.
В отличие от многих других протоколов, HTTP является протоколом без памяти. Это означает, что протокол не хранит информацию о предыдущих запросах клиентов и ответах сервера. Компоненты, использующие HTTP , могут самостоятельно осуществлять сохранение информации о состоянии, связанной с последними запросами и ответами. Например, клиентское веб- приложение , посылающее запросы, может отслеживать задержки ответов, а веб- сервер может хранить IP-адреса и заголовки запросов последних клиентов.
Все программное обеспечение для работы с протоколом HTTP разделяется на три основные категории:
- Серверы — поставщики услуг хранения и обработки информации (обработка запросов).
- Клиенты — конечные потребители услуг сервера (отправка запросов).
- Прокси-серверы для поддержки работы транспортных служб.
Основными клиентами являются браузеры, например: Internet Explorer, Opera, Mozilla Firefox, Netscape Navigator и другие. Наиболее популярными реализациями веб-серверов являются: Internet Information Services ( IIS ), Apache, lighttpd, nginx. Наиболее известные реализации прокси-серверов: Squid, UserGate, Multiproxy, Naviscope.
«Классическая» схема HTTP -сеанса выглядит так.
- Установление TCP-соединения.
- Запрос клиента.
- Ответ сервера.
- Разрыв TCP-соединения.
Таким образом, клиент посылает серверу запрос , получает от него ответ, после чего взаимодействие прекращается. Обычно запрос клиента представляет собой требование передать HTML -документ или какой-нибудь другой ресурс , а ответ сервера содержит код этого ресурса.
В состав HTTP -запроса, передаваемого клиентом серверу, входят следующие компоненты.
- Строка состояния (иногда для ее обозначения используют также термины строка-статус, или строка запроса).
- Поля заголовка.
- Пустая строка.
- Тело запроса.
Строку состояния вместе с полями заголовка иногда называют также заголовком запроса.
Строка состояния имеет следующий формат:
Рассмотрим компоненты строки состояния, при этом особое внимание уделим методам запроса.
Метод, указанный в строке состояния, определяет способ воздействия на ресурс , URL которого задан в той же строке. Метод может принимать значения GET , POST , HEAD , PUT , DELETE и т.д. Несмотря на обилие методов, для веб-программиста по-настоящему важны лишь два из них: GET и POST .
- GET . Согласно формальному определению, метод GET предназначается для получения ресурса с указанным URL. Получив запрос GET , сервер должен прочитать указанный ресурс и включить код ресурса в состав ответа клиенту. Ресурс, URL которого передается в составе запроса, не обязательно должен представлять собой HTML-страницу, файл с изображением или другие данные. URL ресурса может указывать на исполняемый код программы, который, при соблюдении определенных условий, должен быть запущен на сервере. В этом случае клиенту возвращается не код программы, а данные, сгенерированные в процессе ее выполнения. Несмотря на то что, по определению, метод GET предназначен для получения информации, он может применяться и в других целях. Метод GET вполне подходит для передачи небольших фрагментов данных на сервер.
- POST . Согласно тому же формальному определению, основное назначение метода POST — передача данных на сервер. Однако, подобно методу GET , метод POST может применяться по-разному и нередко используется для получения информации с сервера. Как и в случае с методом GET , URL, заданный в строке состояния, указывает на конкретный ресурс. Метод POST также может использоваться для запуска процесса.
- Методы HEAD и PUT являются модификациями методов GET и POST.
Версия протокола HTTP , как правило, задается в следующем формате:
Поля заголовка, следующие за строкой состояния, позволяют уточнять запрос , т.е. передавать серверу дополнительную информацию. Поле заголовка имеет следующий формат:
Назначение поля определяется его именем, которое отделяется от значения двоеточием.
Имена некоторых наиболее часто встречающихся в запросе клиента полей заголовка и их назначение приведены в таблице 2.1.
Поля заголовка HTTP -запроса | Значение |
---|---|
Host | Доменное имя или IP-адрес узла, к которому обращается клиент |
Referer | URL документа, который ссылается на ресурс, указанный в строке состояния |
From | Адрес электронной почты пользователя, работающего с клиентом |
Accept | MIME-типы данных, обрабатываемых клиентом. Это поле может иметь несколько значений, отделяемых одно от другого запятыми. Часто поле заголовка Accept используется для того, чтобы сообщить серверу о том, какие типы графических файлов поддерживает клиент |
Accept-Language | Набор двухсимвольных идентификаторов, разделенных запятыми, которые обозначают языки, поддерживаемые клиентом |
Accept-Charset | Перечень поддерживаемых наборов символов |
Content-Type | MIME-тип данных, содержащихся в теле запроса (если запрос не состоит из одного заголовка) |
Content-Length | Число символов, содержащихся в теле запроса (если запрос не состоит из одного заголовка) |
Range | Присутствует в том случае, если клиент запрашивает не весь документ, а лишь его часть |
Connection | Используется для управления TCP-соединением. Если в поле содержится Close, это означает, что после обработки запроса сервер должен закрыть соединение. Значение Keep-Alive предлагает не закрывать TCP-соединение, чтобы оно могло быть использовано для последующих запросов |
User-Agent | Информация о клиенте |
Во многих случаях при работе в Веб тело запроса отсутствует. При запуске CGI-сценариев данные, передаваемые для них в запросе, могут размещаться в теле запроса.
Ниже представлен пример HTML -запроса, сгенерированного браузером
Получив от клиента запрос , сервер должен ответить ему. Знание структуры ответа сервера необходимо разработчику веб-приложений, так как программы, которые выполняются на сервере, должны самостоятельно формировать ответ клиенту.
Источник
Введение. Структура веб-технологий
Предметом данного курса являются технологии глобальной сети World Wide Web (сокращенно WWW или просто Web ). На русском языке распространенным вариантом является название «Веб».
В частности, в рамках курса будут рассмотрены такие вопросы как: базовые стандарты и протоколы сети Веб, языки разметки и программирования веб-страниц, инструменты разработки и управления веб-контента и приложений для Веб, средства интеграции веб-контента и приложений в Веб.
Сеть Веб представляет собой глобальное информационное пространство , основанное на физической инфраструктуре Интернета и протоколе передачи данных HTTP . Зачастую, говоря об Интернете, подразумевают именно сеть Веб.
Клиент-серверные технологии Веб
Базовым протоколом сети гипертекстовых ресурсов Веб является протокол HTTP . В его основу положено взаимодействие «клиент-сервер«, то есть предполагается, что:
- Потребитель-клиент, инициировав соединение с поставщиком-сервером, посылает ему запрос;
- Поставщик-сервер, получив запрос, производит необходимые действия и возвращает обратно клиенту ответ с результатом.
При этом возможны два способа организации работы компьютера-клиента:
- Тонкий клиент — это компьютер-клиент, который переносит все задачи по обработке информации на сервер. Примером тонкого клиента может служить компьютер с браузером, использующийся для работы с веб-приложениями.
- Толстый клиент, напротив, производит обработку информации независимо от сервера, использует последний в основном лишь для хранения данных.
Прежде чем перейти к конкретным клиент-серверным веб-технологиям, рассмотрим основные принципы и структуру базового протокола HTTP .
Протокол HTTP
HTTP (HyperText Transfer Protocol — RFC 1945, RFC 2616) — протокол прикладного уровня для передачи гипертекста.
Центральным объектом в HTTP является ресурс, на который указывает URI в запросе клиента. Обычно такими ресурсами являются хранящиеся на сервере файлы. Особенностью протокола HTTP является возможность указать в запросе и ответе способ представления одного и того же ресурса по различным параметрам: формату, кодировке, языку и т. д. Именно благодаря возможности указания способа кодирования сообщения клиент и сервер могут обмениваться двоичными данными, хотя изначально данный протокол предназначен для передачи символьной информации. На первый взгляд это может показаться излишней тратой ресурсов. Действительно, данные в символьном виде занимают больше памяти, сообщения создают дополнительную нагрузку на каналы связи, однако подобный формат имеет много преимуществ. Сообщения, передаваемые по сети, удобочитаемы, и, проанализировав полученные данные, системный администратор может легко найти ошибку и устранить ее. При необходимости роль одного из взаимодействующих приложений может выполнять человек, вручную вводя сообщения в требуемом формате.
В отличие от многих других протоколов, HTTP является протоколом без памяти. Это означает, что протокол не хранит информацию о предыдущих запросах клиентов и ответах сервера. Компоненты, использующие HTTP , могут самостоятельно осуществлять сохранение информации о состоянии, связанной с последними запросами и ответами. Например, клиентское веб- приложение , посылающее запросы, может отслеживать задержки ответов, а веб- сервер может хранить IP-адреса и заголовки запросов последних клиентов.
Всё программное обеспечение для работы с протоколом HTTP разделяется на три основные категории:
- Серверы — поставщики услуг хранения и обработки информации (обработка запросов).
- Клиенты — конечные потребители услуг сервера (отправка запросов).
- Прокси-серверы для поддержки работы транспортных служб.
«Классическая» схема HTTP -сеанса выглядит так.
- Установление TCP-соединения.
- Запрос клиента.
- Ответ сервера.
- Разрыв TCP-соединения.
Таким образом, клиент посылает серверу запрос , получает от него ответ, после чего взаимодействие прекращается. Обычно запрос клиента представляет собой требование передать HTML -документ или какой-нибудь другой ресурс , а ответ сервера содержит код этого ресурса.
В состав HTTP -запроса, передаваемого клиентом серверу, входят следующие компоненты.
- Строка состояния (иногда для ее обозначения используют также термины строка-статус, или строка запроса).
- Поля заголовка.
- Пустая строка.
- Тело запроса.
Строку состояния вместе с полями заголовка иногда называют также заголовком запроса.
Строка состояния имеет следующий формат:
Рассмотрим компоненты строки состояния, при этом особое внимание уделим методам запроса.
Метод, указанный в строке состояния, определяет способ воздействия на ресурс , URL которого задан в той же строке. Метод может принимать значения GET , POST , HEAD , PUT , DELETE и т.д. Несмотря на обилие методов, для веб-программиста по -настоящему важны лишь два из них: GET и POST .
- GET . Согласно формальному определению, метод GET предназначается для получения ресурса с указанным URL. Получив запрос GET , сервер должен прочитать указанный ресурс и включить код ресурса в состав ответа клиенту. Ресурс, URL которого передается в составе запроса, не обязательно должен представлять собой HTML-страницу, файл с изображением или другие данные. URL ресурса может указывать на исполняемый код программы, который, при соблюдении определенных условий, должен быть запущен на сервере. В этом случае клиенту возвращается не код программы, а данные, сгенерированные в процессе ее выполнения. Несмотря на то что, по определению, метод GET предназначен для получения информации, он может применяться и в других целях. Метод GET вполне подходит для передачи небольших фрагментов данных на сервер.
- POST . Согласно тому же формальному определению, основное назначение метода POST — передача данных на сервер. Однако, подобно методу GET , метод POST может применяться по-разному и нередко используется для получения информации с сервера. Как и в случае с методом GET , URL, заданный в строке состояния, указывает на конкретный ресурс. Метод POST также может использоваться для запуска процесса.
- Методы HEAD и PUT являются модификациями методов GET и POST .
Версия протокола HTTP, как правило, задается в следующем формате:
Поля заголовка, следующие за строкой состояния, позволяют уточнять запрос , т.е. передавать серверу дополнительную информацию. Поле заголовка имеет следующий формат:
Назначение поля определяется его именем, которое отделяется от значения двоеточием.
Имена некоторых наиболее часто встречающихся в запросе клиента полей заголовка и их назначение приведены в табл. 1.1.
Поля заголовка HTTP-запроса | Значение |
---|---|
Host | Доменное имя или IP-адрес узла, к которому обращается клиент |
Referer | URL документа, который ссылается на ресурс, указанный в строке состояния |
From | Адрес электронной почты пользователя, работающего с клиентом |
Accept | MIME-типы данных, обрабатываемых клиентом. Это поле может иметь несколько значений, отделяемых одно от другого запятыми. Часто поле заголовка Accept используется для того, чтобы сообщить серверу о том, какие типы графических файлов поддерживает клиент |
Accept-Language | Набор двухсимвольных идентификаторов, разделенных запятыми, которые обозначают языки, поддерживаемые клиентом |
Accept-Charset | Перечень поддерживаемых наборов символов |
Content-Type | MIME-тип данных, содержащихся в теле запроса (если запрос не состоит из одного заголовка) |
Content-Length | Число символов, содержащихся в теле запроса (если запрос не состоит из одного заголовка) |
Range | Присутствует в том случае, если клиент запрашивает не весь документ, а лишь его часть |
Connection | Используется для управления TCP-соединением. Если в поле содержится Close , это означает, что после обработки запроса сервер должен закрыть соединение. Значение Keep-Alive предлагает не закрывать TCP-соединение, чтобы оно могло быть использовано для последующих запросов |
User-Agent | Информация о клиенте |
Во многих случаях при работе в Веб тело запроса отсутствует. При запуске CGI-сценариев данные, передаваемые для них в запросе, могут размещаться в теле запроса.
Ниже представлен пример HTTP -запроса, сгенерированного браузером
Получив от клиента запрос , сервер должен ответить ему. Знание структуры ответа сервера необходимо разработчику веб-приложений, так как программы, которые выполняются на сервере, должны самостоятельно формировать ответ клиенту.
Подобно запросу клиента, ответ сервера также состоит из четырех перечисленных ниже компонентов.
- Строка состояния.
- Поля заголовка.
- Пустая строка.
- Тело ответа.
Ответ сервера клиенту начинается со строки состояния, которая имеет следующий формат:
- Версия_протокола задается в том же формате, что и в запросе клиента, и имеет тот же смысл.
- Код_ответа — это трехзначное десятичное число, представляющее в закодированном виде результат обслуживания запроса сервером.
- Пояснительное_сообщение дублирует код ответа в символьном виде. Это строка символов, которая не обрабатывается клиентом. Она предназначена для системного администратора или оператора, занимающегося обслуживанием системы, и является расшифровкой кода ответа.
Из трех цифр, составляющих код ответа, первая (старшая) определяет класс ответа, остальные две представляют собой номер ответа внутри класса. Так, например, если запрос был обработан успешно, клиент получает следующее сообщение:
Как видно, за версией протокола HTTP 1.0 следует код 200. В этом коде символ 2 означает успешную обработку запроса клиента, а остальные две цифры (00) — номер данного сообщения.
В используемых в настоящее время реализациях протокола HTTP первая цифра не может быть больше 5 и определяет следующие классы ответов.
- 1 — специальный класс сообщений, называемых информационными. Код ответа, начинающийся с 1, означает, что сервер продолжает обработку запроса. При обмене данными между HTTP-клиентом и HTTP-сервером сообщения этого класса используются достаточно редко.
- 2 — успешная обработка запроса клиента.
- 3 — перенаправление запроса. Чтобы запрос был обслужен, необходимо предпринять дополнительные действия.
- 4 — ошибка клиента. Как правило, код ответа, начинающийся с цифры 4, возвращается в том случае, если в запросе клиента встретилась синтаксическая ошибка.
- 5 — ошибка сервера. По тем или иным причинам сервер не в состоянии выполнить запрос.
Примеры кодов ответов, которые клиент может получить от сервера, и поясняющие сообщения приведены в табл. 1.2.
Код | Расшифровка | Интерпретация |
---|---|---|
100 | Continue | Часть запроса принята, и сервер ожидает от клиента продолжения запроса |
200 | OK | Запрос успешно обработан, и в ответе клиенту передаются данные, указанные в запросе |
201 | Created | В результате обработки запроса был создан новый ресурс |
202 | Accepted | Запрос принят сервером, но обработка его не окончена. Данный код ответа не гарантирует, что запрос будет обработан без ошибок. |
206 | Partial Content | Сервер возвращает часть ресурса в ответ на запрос, содержавший поле заголовка Range |
300 | Multiple Choice | Запрос указывает более чем на один ресурс. В теле ответа могут содержаться указания на то, как правильно идентифицировать запрашиваемый ресурс |
301 | Moved Permanently | Затребованный ресурс больше не располагается на сервере |
302 | Moved Temporarily | Затребованный ресурс временно изменил свой адрес |
400 | Bad Request | В запросе клиента обнаружена синтаксическая ошибка |
403 | Forbidden | Имеющийся на сервере ресурс недоступен для данного пользователя |
404 | Not Found | Ресурс, указанный клиентом, на сервере отсутствует |
405 | Method Not Allowed | Сервер не поддерживает метод, указанный в запросе |
500 | Internal Server Error | Один из компонентов сервера работает некорректно |
501 | Not Implemented | Функциональных возможностей сервера недостаточно, чтобы выполнить запрос клиента |
503 | Service Unavailable | Служба временно недоступна |
505 | HTTP Version not Supported | Версия HTTP, указанная в запросе, не поддерживается сервером |
В ответе используется такая же структура полей заголовка, как и в запросе клиента. Поля заголовка предназначены для того, чтобы уточнить ответ сервера клиенту. Описание некоторых из полей, которые можно встретить в заголовке ответа сервера, приведено в табл. 1.3.
Имя поля | Описание содержимого |
---|---|
Server | Имя и номер версии сервера |
Age | Время в секундах, прошедшее с момента создания ресурса |
Allow | Список методов, допустимых для данного ресурса |
Content-Language | Языки, которые должен поддерживать клиент для того, чтобы корректно отобразить передаваемый ресурс |
Content-Type | MIME-тип данных, содержащихся в теле ответа сервера |
Content-Length | Число символов, содержащихся в теле ответа сервера |
Last-Modified | Дата и время последнего изменения ресурса |
Date | Дата и время, определяющие момент генерации ответа |
Expires | Дата и время, определяющие момент, после которого информация, переданная клиенту, считается устаревшей |
Location | В этом поле указывается реальное расположение ресурса. Оно используется для перенаправления запроса |
Cache-Control | Директивы управления кэшированием. Например, no-cache означает, что данные не должны кэшироваться |
В теле ответа содержится код ресурса, передаваемого клиенту в ответ на запрос . Это не обязательно должен быть HTML -текст веб-страницы. В составе ответа могут передаваться изображение, аудио- файл , фрагмент видеоинформации, а также любой другой тип данных , поддерживаемых клиентом. О том, как следует обрабатывать полученный ресурс , клиенту сообщает содержимое поля заголовка Content-type .
Ниже представлен пример ответа сервера на запрос , приведенный в предыдущем разделе. В теле ответа содержится исходный текст HTML -документа.
Поля заголовка и тело сообщения могут отсутствовать, но строка состояния является обязательным элементом, так как указывает на тип запроса/ответа.
Поле с именем Content-type может встречаться как в запросе клиента, так и в ответе сервера. В качестве значения этого поля указывается MIME-тип содержимого запроса или ответа. MIME-тип также передается в поле заголовка Accept , присутствующего в запросе.
Спецификация MIME ( Multipurpose Internet Mail Extension — многоцелевое почтовое расширение Internet ) первоначально была разработана для того, чтобы обеспечить передачу различных форматов данных в составе электронных писем. Однако применение MIME не исчерпывается электронной почтой. Средства MIME успешно используются в WWW и, по сути, стали неотъемлемой частью этой системы.
Стандарт MIME разработан как расширяемая спецификация, в которой подразумевается, что число типов данных будет расти по мере развития форм представления данных. Каждый новый тип в обязательном порядке должен быть зарегистрирован в IANA ( Internet Assigned Numbers Authority ).
До появления MIME компьютеры, взаимодействующие по протоколу HTTP , обменивались исключительно текстовой информацией. Для передачи изображений, как и для передачи любых других двоичных файлов, приходилось пользоваться протоколом FTP .
В соответствии со спецификацией MIME, для описания формата данных используются тип и подтип. Тип определяет, к какому классу относится формат содержимого HTTP -запроса или HTTP -ответа. Подтип уточняет формат. Тип и подтип отделяются друг от друга косой чертой:
Поскольку в подавляющем большинстве случаев в ответ на запрос клиента сервер возвращает исходный текст HTML -документа, то в поле Content-type ответа обычно содержится значение text/html . Здесь идентификатор text описывает тип, сообщая, что клиенту передается символьная информация , а идентификатор html описывает подтип , т.е. указывает на то, что последовательность символов, содержащаяся в теле ответа, представляет собой описание документа на языке HTML .
Перечень типов и подтипов MIME достаточно велик. В табл. 1.4 приведены примеры MIME-типов, наиболее часто встречающиеся в заголовках HTTP -запросов и ответов.
Тип/подтип | Расширение файла | Описание |
---|---|---|
application/pdf | Документ, предназначенный для обработки Acrobat Reader | |
application/msexcel | .xls | Документ в формате Microsoft Excel |
application/postscript | .ps, .eps | Документ в формате PostScript |
application/x-tex | .tex | Документ в формате ТеХ |
application/msword | .doc | Документ в формате Microsoft Word |
application/rtf | .rtf | Документ в формате RTF, отображаемый с помощью Microsoft Word |
image/gif | .gif | Изображение в формате GIF |
image/ jpeg | .jpeg, .jpg, | Изображение в формате JPEG |
image/tiff | .tiff, .tif | Изображение в формате TIFF |
image/x-xbitmap | .xbm | Изображение в формате XBitmap |
text/plain | .txt | ASCII-текст |
text/html | . html , . htm | Документ в формате HTML |
audio/midi | .midi, .mid | Аудиофайл в формате MIDI |
audio/x-wav | .wav | Аудиофайл в формате WAV |
message/rfc822 | Почтовое сообщение | |
message/news | Сообщение в группы новостей | |
video /mpeg | .mpeg, .mpg, . mpe | Видеофрагмент в формате MPEG |
video/avi | .avi | Видеофрагмент в формате AVI |
Для однозначной идентификации ресурсов в сети Веб используются уникальные идентификаторы URL .
Единообразный идентификатор ресурса URI ( Uniform Resource Identifier ) представляет собой короткую последовательность символов, идентифицирующую абстрактный или физический ресурс . URI не указывает на то, как получить ресурс , а только идентифицирует его. Это даёт возможность описывать с помощью RDF ( Resource Description Framework ) ресурсы, которые не могут быть получены через Интернет (имена, названия и т.п.). Самые известные примеры URI — это URL и URN .
Источник