Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






HTTP-запросы





 

Каждый клиент посылает запрос, и сервер на него отвечает. Все запросы и ответы состоят из трех частей, а именно: строки запроса или ответа, секции заголовков и тела сущности (любого содержания, отправляемого вместе с сообщением, например, страницы HTML для отображения в браузере или данных формы, пересылаемых на сервер).

Клиент связывается с сервером в назначенном номере порта (по умолчанию равном 80) и запрашивает у сервера документ, задавая HTTP-команду, называемую методом, за которой следует адрес документа и номер версии HTTP. Клиент также отправляет серверу необязательную информацию в заголовках, чтобы сообщить серверу о своей конфигурации и приемлемых для него форматах документов. Информация заголовка дается в одной строке вместе с именем и значением заголовка. После заголовков клиент посылает пустую строку. Затем клиент отправляет дополнительные данные. Это могут быть данные формы, отправляемые на сервер методом POST, или файл, копируемый на сервер методом PUT.

Запросы клиентов подразделяются на три секции. Первая строка сообщения всегда должна содержать HTTP-команду, называемую методом, за которой следует URI, идентифицирующий файл или ресурс, запрашиваемый клиентом, и номер версии HTTP:

 

GET /default.aspx HTTP/1.1

 

Теперь исследуем каждую из этих секций. Метод — это HTTP-команда, начинающая первую строку запроса клиента. Метод информирует сервер о цели запроса клиента. Для HTTP определены семь методов: GET, HEAD, POST, OPTIONS, PUT, DELETE и TRACE, но HTTP-серверы могут также реализовать методы расширения, не определенные протоколом HTTP. Заметим, что названия методов зависят от регистра клавиатуры, поэтому, например, слово get не будет распознано как допустимый метод.

 

Метод GET используется для запроса информации, расположение которой на сервере определяется заданным URI. Этот метод широко применяется браузерами, чтобы извлекать документы для просмотра. Результат запроса GET генерируется разными способами. Это может быть файл, доступный с сервера, вывод программы, вывод, полученный на устройстве, и т. д.

Когда клиент в своем запросе использует метод GET, сервер отправляет ответ, содержащий строку состояния, заголовки и метаданные. Если сервер не может обработать запрос из-за ошибки или отсутствия авторизации, он отправляет объяснение в текстовом виде, помещая его в ответе в секцию данных.

Секция тела о сути запроса GET всегда остается пустой. Запрошенный клиентом ресурс (файл или программа) идентифицируется по его полному пути на сервере. Любая дополнительная информация, например, значения из формы, которую клиенту нужно отправить серверу, присоединяется вслед за URI как строка запроса:

 

GET /default.aspx?name=Alex HTTP/1.1

 

Метод HEAD функционально аналогичен методу GET, не считая того, что сервер ничего не помещает в секцию данных ответа. Методом HEAD запрашивается только заголовочная информация по файлу или ресурсу. Для запроса HEAD HTTP-сервер должен отправить в заголовках ту же информацию, которую он бы отправил в ответ на запрос GET. Данный метод используется, если клиенту нужна информация о документе, но не нужно получать сам документ.

 

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

 

В методе OPTIONS запрашивается информация о поддержке HTTP на Web-cepвeре. Метод OPTIONS может применяться с URL, чтобы извлечь информацию о конкретном документе или, с групповым символом *, чтобы получить информацию о возможностях сервера в целом. Информация возвращается в заголовках ответа.

 

HTTP-ответы

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

 

 

Рис. 1. Препроцессинг HTML на сервере

 

Ответ сервера на запрос клиента также подразделяется на три части. Первая строка—это строка ответа сервера, содержащая номер версии HTTP, код состояния, указывающий состояние запроса, и краткую фразу, описывающую это состояние. Далее следует информация заголовков, за ней — пустая строка и тело сущности (которое может быть пустым, например, в ответах на запросы HEAD и OPTIONS).

В качестве версии HTTP указывается та версия, которую сервер использует в ответе. Код состояния представляет собой трехбайтовое число, определяющее результат обработки сервером запроса клиента. Описание, следующее за кодом состояния, просто дает удобное для восприятия пользователем значение кода состояния. Хотя существует несколько определенных кодов состояния, сервер вправе устанавливать дополнительные коды. Некоторые наиболее распространенные коды приведены в таблице 1.

 

Таблица 1. Коды состояния запросаHTTP

 

  Продолжить (Continue)
  Переключение протоколов (switching protocols)
  OK запрос получен и обработан
  Создан (created)
  Принят
  Неавторитенаяинформация (non -authoritative information)
  Файл пуст (no content)
  Сброс содержимого (reset content)
  Частичное содержимое (partial content)
  Многократный выбор (multiple choices)
  Ресурс перемещен постоянно (moved permanently)
  Ресурс перемещен временно (moved temporarily)
  Смотри другой (see other)
  Неизмененный (not modified)
  Использовать прокси-сервер (use proxy)
  Неправильный формат запроса (bad request)
  Запрос неавторизирован (unauthorized)
  Payment Required
  Нет доступа (forbidden)
  Не найден
  Методнеразрешен (method not allowed)
  Неприемлемый (not acceptable)
  Требуется аутентификация на прокси-сервере (proxy authentication required)
  Превышение тайм-аута запроса (request time-out)
  Требуется длина (при использовании метода POST)
  Не выполнено предыдущее условие (precondition failed)
  Объект запроса слишком велик (request entity too large)
  Запрашиваемый URL слишком велик (request URL too large)
  Неподдерживаемый тип информации (unsupportedmedia type)
  Ошибка сервера (server error)
  Не реализован (not implemented)
  Неправильный шлюз (Bad Gateway)
  Нехваткаресурсов (out of resources)
  Превышен тайм-аут шлюза
  Неподдерживаемаявесрия HTTP (HTTP version not supported)

 

 

После строки состояния сервер отправляет клиенту в заголовках информацию о себе и запрошенном документе. Заголовки завершаются пустой строкой (т.е. двумя идущими подряд последовательностями CRLF).

Если клиент запрашивал данные и запрос обработан успешно, эти данные будут отправлены в теле сущности после заголовков ответа. Они могут представлять собой копию запрошенного файла или содержание, сгенерированное динамически, например страницу ASP.NET или сценарий на стороне сервера. Если запрос клиента не выполнен, могут быть предоставлены дополнительные данные объясняющие, почему сервер не смог выполнить этот запрос.

В HTTP 1.0 сервер, завершив отправку запрошенных данных, отсоединяется от клиента и транзакция на этом заканчивается, если только не был отправлен заголовок Connection: Keep-Alive. Однако в HTTP 1.1 сервер должен поддерживать соединение, позволяя клиенту делать дополнительные запросы, даже если заголовок Connection не был отправлен. Если не нужно такое поведение, следует отправить заголовок Connection: close, который указывает, что после отправки ответа соединение должно быть закрыто.

 

2. Локальный веб-сервер XAMPP

XAMPP(X + A pache+ M ySQL + P HP+ P erl) – это кросплатформенная сборка локального веб-сервера. Ее можно установить на операционной системе X: Linux, Windows, Mac OS, Solaris. Локальный веб-сервер - это набор программ, которые позволяют разрабатывать сайты на локальном компьютере без подключения к Интернету. Он аналогичен серверам, которые расположены у хостеров. Если при создании сайта используются только html-страницы с дизайном CSS, то локальный сервер не нужен. Но если сайт динамичный, т.е. создается с использованием PНР, Perl, MySQL, то для его отладки и тестирования понадобится локальный веб-сервер.

 

 

Рис. 2. Панель управления ХАМРР

 

ХАМРР – свободно распространяемая программа и весь процесс установки не требует никакого вмешательства со стороны пользователя, кроме нажатия кнопки «Next». После установки ХАМРР открывается панель управления сервером (рис. 2).

 

 

Date: 2015-07-22; view: 475; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.008 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию