Http сервер и клиент

  • 11 марта 2013 г.
  • 15390 Слова
HTTP сервер и клиент. Заголовки запросов и ответов по HTTP – протоколу.
HTTP сервер и клиент
HTTP proxy сервер - это прокси, позволяющий работать в Internet по HTTP и (не всегда) HTTPS / FTP протоколам. Он (как и все proxy серверы) может осуществлять кэширование скачиваемой из Internet информации.
HTTP (англ. HyperTextTransferProtocol — «протокол передачи гипертекста») — протокол прикладногоуровня передачи данных в первую очередь в виде текстовых сообщений. Основой HTTP является технология «клиент-сервер», то есть предполагается существование потребителей (клиентов), которые инициируют соединение и посылают запрос, и поставщиков (серверов), которые ожидают соединения для получения запроса, производят необходимые действия и возвращают обратно сообщение с результатом.
HTTP в настоящеевремя повсеместно используется во Всемирной паутине для получения информации с веб-сайтов. В 2006 году в Северной Америке доля HTTP-трафика превысила долю P2P-сетей и составила 46 %, из которых почти половина — это передача потокового видео и звука[1].
HTTP используется также в качестве «транспорта» для других протоколов прикладного уровня, таких как SOAP.
Основным объектом манипуляции в HTTPявляется ресурс, на который указывает URI (англ. Uniform Resource Identifier) в запросе клиента. Обычно такими ресурсами являются хранящиеся на сервере файлы, но ими могут быть логические объекты или что-то абстрактное. Особенностью протокола HTTP является возможность указать в запросе и ответе способ представления одного и того же ресурса по различным параметрам: формату, кодировке, языку и т. д.Именно благодаря возможности указания способа кодирования сообщения клиент и сервер могут обмениваться двоичными данными, хотя данный протокол является текстовым.
Заголовки запросов и ответов по HTTP-протоколу.
HTTP — протокол прикладного уровня, аналогичными ему являются FTP и SMTP. Обмен сообщениями идёт по обыкновенной схеме «запрос-ответ».
Для идентификации ресурсов HTTP используетглобальные URI. В отличие от многих других протоколов, HTTP не сохраняет своего состояния. Это означает отсутствие сохранения промежуточного состояния между парами «запрос-ответ».
Сервер может хранить IP-адреса и заголовки запросов последних клиентов.
Компоненты, использующие HTTP, могут самостоятельно осуществлять сохранение информации о состоянии, связанной с последними запросами и ответами. Браузер,посылающий запросы, может отслеживать задержки ответов.
Даже если вы и знаете кое-что о HTTP все равно не лишне будет вспомнить о том как это все работает тем более на эту информацию придется ориентироваться при написании CGI скриптов.
Этапы соединения
Первый этап это когда HTTP -клиент(браузер) соединяется с сервером. Для этого он использует протокол TCP/IP соединение происходит к известномуклиенту TCP-порту (80 -номер порта HTTP) (другие сервисы сидят на других портах ,например FTP и SMTP на 21 и 25)
Вторым этапом идет запрос клиента:клиент передает заголовок запроса и возможно(в зависимости от метода) тело сообщения запроса.В заголовке обязательно указывается метод ,URI,и версия HTTP,и может быть еще несколько необязательных полей.
Третий этап -ответ сервера, который опять такисостоит из заголовка, в котором сервер указывает версию HTTP и код статуса, который может говорить о успешном или неуспешном результате и его причинах. Далее идет тело ответа.
Четвертым этапом происходит разрыв TCP/IP соединения.
HTTP -запрос.
Запрос состоит из Строки запроса(она обязательна) и остальных полей. Синтаксис строки:
МЕТОД <SP> URI <SP> HTTP/версия <CRLF>
где<SP> -пробел ,<CRLF> -переход на новую строку
Методы HTTP.
GET
Самый часто применяемый метод, в протоколе HTTP/0.9 был единственным методом, и применяется для извлечения информации по заданному URI Может быть условным если в заголовке указано поле If-Modified-Since:
HEAD
Почти идентичен GET но отличается тем что сервер не возвращает тело объекта а только его заголовок...
tracking img