Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Hypertext Transfer Protocol – это усовершенствованная прикладная программа извлечения файлов, которая может предоставить доступ и соединить документы WWW.

HTTP-переходы

HTTP использует услуги TCP, потому что сам HTTP – протокол, не основанный на смене состояния. Клиент инициализирует переход посылкой сообщения запроса. Сервер отвечает посылкой ответа.

Сообщение запроса

Сообщение запроса содержит строку запроса, заголовок и иногда "тело"

Строка запроса определяет тип запроса, ресурс (URL) и версию HTTP. Она содержит: тип запроса, пробел, URL, пробел, версию HTTP.

Тип запроса (Request type).

Типы запроса разделяются по категориям на несколько методов.

URL определяется четырьмя элементами: протокол, хост, компьютер, порт и путь.

Методы

 

Поле типа запроса в сообщении запроса определяет несколько видов сообщений, называемых методами.

Метод запроса – реальная команда или запрос, с которым клиент выходит к серверу. Мы здесь коротко обсудим цели некоторых методов.

GET

Метод GET используют, когда клиент хочет доставить документ от сервера. Адрес документа определяется в URL; это главный метод для доставки документа. Сервер обычно отвечает содержанием документа в теле ответного сообщения, если нет ошибки.

HEAD
Метод HEAD используется, когда клиент хочет получить некоторую информацию о документе, но не сам документ. Он подобен GET, но ответ от сервера не содержит тело документа.

POST

Метод POST используется, когда клиент обеспечивает информацией сервер. Например, это может быть нужно для посылки информации ввода к серверу

PUT
Метод PUT используется клиентом, чтобы обеспечить накопление нового или обновленного документа на сервере. Этот документ включает в "тело" запрос и будет сохранен в месте, определенном URL

PATCH
PATCH похож на PUT, за исключением того что запрос содержит только список отличий, которые нужно внести в существующий файл.

COPY

Метоод COPY используется, чтобы скопировать файл в другое место. Дается место исходного файла в линейке запроса (URL); место пункта назначения дается в заголовке (обсуждается в разделе "Заголовок").

MOVE

Метод MOVE используется для переноса файла в другое место. Место файла источника дается в строке запроса (URL); место пункта назначения дается в заголовке.

DELETE

Метод DELETE используется для удаления документа из сервера.

LINK

Метод LINK используется для создания ссылки (линка) или ссылок (линков) от одного документа к документу, расположенному в другом месте. Расположение файла дано в линейке запроса (URL). есто пункта назначения дано в заголовке.

UNLINK

Метод UNLINK используется для удаления ссылок (линков), созданных методом LINK.

OPTIONS

Метод OPTIONS используется клиентом для запроса сервера о доступности опции.

Сообщение ответа

Сообщение ответа содержит строку состояния, заголовок и иногда тело.

Строка состояния определяет состояние ответного сообщения. Она содержит: версию HTTP, пробел, код состояния, пробел, состояние фразы.

Код состояния (Status code).

Поле кода состояния содержит три цифры:

Коды в диапазоне 100 — только информационные.

Коды в диапазоне 200 указывают успешный запрос.

Коды в диапазоне 300 переориентируют клиента к другому URL.

Коды диапазона 400 указывают на ошибку на стороне клиента.

Коды диапазона 500 указывают на ошибку на стороне сервера

Фраза состояния

Это поле поясняет код состояния, обмена сообщениями в текстовой форме.

ИНФОРМАЦИОННЫЕ

100 Continue (Продолжение) Начальная часть запроса получена и клиент может продолжать свой запрос

101 Switching (Коммутация) Клиент переключает по запросу клиента протокол, определенный в модернизированном заголовке

Благоприятный исход

200 OK Запрос успешен

201 Created (Создан) Новый URL создан

202 Accept (Принято) Запрос принят, но он непосредственно не выполняется

204 No content (Без содержания) Содержание в "теле" отсутствует

Переадресация

301 Multiple choices (Многократный выбор) Запрос URL с обращением к более чем одному ресурсу

302 Moved permanently (Постоянно перемещаемый) Запрос URL больше не используемым сервером

304 Moved temporary (Временно перемещаемый) Запрос URL вр

Ошибка клиента

400 Bad request (Плохой запрос) Синтаксическая ошибка в запросе

401 Unauthorized (Неполномочный запрос) Запрос не имеет надлежащих полномочий

403 Forbidden (Запрещенный) Сервис не существует

404 Not found (Не найден) Документ не найден

405 Method not allowed (Метод не разрешен) Метод не поддерживается данным URL

406 Not acceptable (Недоступен) Формат требования не воспринимается

Ошибка сервера

500 Internal server error (Внутренняя ошибка сервера) Есть ошибка, такая как всплеск помех на стороне сервера

501 Not implemented (Неосуществимо) Затребованное действие не может быть выполнено

503 Service unviable (Сервис недоступен)

Заголовок

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

Заголовок может состоять из одной или нескольких строк. Каждая строка заголовка собирается из имени заголовка, двоеточия, пробела и значения заголовка.

Строка заголовка принадлежит к одной из четырех категорий: общий заголовок, заголовок запроса, заголовок ответа и объекта.

Сообщение запроса может содержать только заголовки: общий, запрос объекта.

С другой стороны, ответное сообщение может содержать только заголовки общий, ответа и объекта

Общий заголовок

Общий заголовок дает общую информацию о сообщении и может быть представлен и в запросе, и в ответе.

 

Общие заголовки

Cache-control (управление) Задает информацию о кэшировании кэш-памятью)

Connection ( Соединение) Показывает, должно ли соединение быть закончено или нет

Date (Данные) Показывает текущие данные

Версия MIME Показывает используемую версию MIME

Upgrade (Обновление) Задает предпочитаемый протокол связи

Заголовок запроса

Заголовок запроса может присутствовать только в сообщении запроса. Он задает конфигурацию клиента и предпочтительный формат документа клиента.

Заголовки запроса

Accept (Принято) Показывает массовый формат, который может быть принят клиентом

Accept-charset (Принятый набор символов) Показывает набор символов, которые могут быть предложены клиенту

Accept-encoding (Принятое кодирование) Показывает схему кодирования, которая может быть предложена клиенту

Accept-language (Принятый язык) Показывает язык, который клиент может применить

Authorization (Полномочия) Показывает, что разрешено клиенту

From (От) Показывает электронный адрес пользователя

Host (Хост) Показывает номера порта и хоста клиента

If-modified-since (Если – модифицирован – к) Посылает документ, если он обновлен к определенной дате

If-match (Если сравнился) Посылает документ, если только сравнениедает тег

If-non-match (Если не сравнился) Посылает документ, если только сравнение не дает тег

If-range (Если диапазон) Посылает порцию документов, которые потеряны

If-unmodified-since (Если – не модифицирован – к) Посылает документ, если он не изменен к определенной дате

Referrer (Ссылка) Задает URL присоединяемого документа

User-agent (Агент пользователя) Идентифицирует программу клиента

Заголовок ответа

Заголовок ответа может присутствовать только в сообщении "ответ". Он задает конфигурацию сервера и специальную информацию о запросе.

Заголовки ответа

Accept-range (Принятый диапазон) Показывает диапазон, запрашиваемый клиентом у сервера

Age (Возраст) Показывает "возраст" документа

Public Показывает поддерживаемый список методов

Retry-after Задает события, после которых сервер становится доступным

Server Показывает имя сервера и номер версии

Заголовок объекта
Заголовок объекта дает информацию о "теле" документа. Хотя он в большинстве случаев представлен в сообщении ответа, некоторые сообщения запроса, такие как POST- или PUT-методы, которые содержат "тело", также используют этот тип заголовка.

Заголовки объекта

Allow (Разрешено) Список действительных методов, которые могут быть использованы с URL

Content-encoding (Перечень кодирования) Заданная схема кодирования

Content-language (Перечень языков) Заданный язык

Content-length (Перечень длины) Показывает длину документа

Content-rang (Перечень диапазонов) Задает диапазон документа

Content-type (Перечень типов) Задает тип аппаратуры окружения

Etag (E-тег) Дает тег объекта

Expires (Истекло) Дает дату и время, когда содержание может измениться

Last-modified (Последняя модификация) Задает дату и время последнего изменения документа

Location (месторасположение) Задает местоположение созданного или перемещенного документа

Пример 1

 

В этом примере доставляется документ. Мы используем метод GET, чтобы доставить изображение с путем /usr/bin/image1.

Строка запроса показывает метод (GET), URL и HTTP-версию (1.1). Этот заголовок имеет две строки, которые показывают, что клиент может принять изображение в форматах GIF и JPEG. Запрос не имеет "тела".

Ответное сообщение содержит строку состояния и четыре строки заголовка. Строки заголовка определяют дату, сервер, версию MIME и длину документа

Пример 2

 

Пример доставки информации о документе. Мы используем метод HEAD для доставки информации о HTML-документе.

Строка запроса показывает метод (HEAD), URL и версию HTTP (1.1). Заголовок – это одна строка, показывающая, что клиент может принять документ в любом формате (непредсказуемое событие). Запрос не имеет "тела".

Ответное сообщение содержит строку состояния и пять строк заголовка. строка запроса определяет дату, сервер, версию MIME, тип документа и длину документа (рис. 16.9.). Заметим, что сообщение не содержит "тела".

Пример 3

 

В этом примере клиент хочет послать входные данные серверу. Мы используем метод POST.

Строка запроса показывает метод (POST), URL и версию HTTP (1.1). Имеется четыре строки заголовков. Запрос содержит входную информацию в "теле".

Ответное сообщение содержит строку состояния и четыре строки заголовков. Созданный документ является документом CGI и включает "тело"

Продолжительное и непродолжительное соединение

В непродолжительном соединении одно TCP-соединение делается по каждому запросу/ответу.

1) Клиент открывает TCP-соединение и посылает запрос.

2) Сервер посылает ответ и заканчивает соединение.

3) Клиент читает данные, пока не наталкивается на метку конца файла, затем он закрывает соединение.

HTTP 1.1 задает продолжительное соединение по умолчанию. В продолжительном соединении сервер оставляет соединение открытым для большого числа запросов после посылки ответа. Сервер заканчивает соединение по запросу клиента или если достигается заданное время (таймаут). Передатчик обычно посылает длину данных при каждом ответе.

Однако имеется несколько случаев, когда передатчик не знает длины данных — когда документ создается динамически или активно. В этом случае сервер информирует клиента, что длина не известна, и закрывает соединение после посылки данных, так как клиент знает, что был достигнут конец передачи данных.

Сервер-посредник (Proxy server)

 

HTTP поддерживается прокси-серверами. Proxy-сервер – это компьютер, который сохраняет копии ответов на прежние запросы. При наличии прокси-сервера клиент HTTP посылает запрос именно к нему. Прокси-сервер проверяет свою кэш-память. Если ответ в кэше не сохранен, прокси-сервер посылает запрос к соответствующему серверу. Входящий ответ посылается к прокси-серверу и запоминается для будущих запросов от клиентов.

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

Итоги

1) Всемирная паутина (World Wide Web – WWW) – это хранилище информации, размещенной во всем мире и соединенной воедино.

2) Гипертекст и гипермедиа – документы, объединенные один за другим с использованием концепции указателей.

3) Браузеры интерпретируют и отображают веб-документы.

Hypertext Transfer Protocol – это усовершенствованная прикладная программа извлечения файлов, которая может предоставить доступ и соединить документы WWW.

5) Веб-документ может быть классифицирован как статический, динамический и активный.

6) Статический документ — это один из тех, содержание которых зафиксировано и накоплено на сервере. Клиент не может изменять этот документ на сервере.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...