Протокол

5 последних уроков рубрики «Разное»

  • Выбрать хороший хостинг для своего сайта достаточно сложная задача. Особенно сейчас, когда на рынке услуг хостинга действует несколько сотен игроков с очень привлекательными предложениями. Хорошим вариантом является лидер рейтинга Хостинг Ниндзя — Макхост.

  • Как разместить свой сайт на хостинге? Правильно выбранный хороший хостинг — это будущее Ваших сайтов

    Проект готов, Все проверено на локальном сервере OpenServer и можно переносить сайт на хостинг. Вот только какую компанию выбрать? Предлагаю рассмотреть хостинг fornex.com. Отличное место для твоего проекта с перспективами бурного роста.

  • Создание вебсайта — процесс трудоёмкий, требующий слаженного взаимодействия между заказчиком и исполнителем, а также между всеми членами коллектива, вовлечёнными в проект. И в этом очень хорошее подспорье окажет онлайн платформа Wrike.

  • Подборка из нескольких десятков ресурсов для создания мокапов и прототипов.

Структура протокола

Запрос

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

Request            = Request-Line	
                          *( generalheader	
                          | requestheader	
                          | entityheader )	
                          CRLF	
                          

Отклик

После получения и интерпретации сообщения-запроса, сервер реагирует, посылая HTTP сообщение отклик.

Response	= Status-Line	; Раздел 5.1
*( general-header	; Раздел 3.5
| response-header	; Раздел 5.2
| entity-header )	; Раздел 6.1
CRLF	
	; Раздел 6.2

Отправив HTTP-запрос серверу, клиент ожидает ответа. HTTP-ответ выглядит в целом аналогично запросу: статусная строка, список заголовков и тело ответа.

HTTP/1.1 200 OK
Server: nginx/0.5.35
Date: Tue, 22 Apr 2008 10:18:08 GMT
Content-Type: text/plain; charset=utf-8
Connection: close
Last-Modified: Fri, 30 Nov 2007 12:46:53 GMT
ETag: ``27e74f-43-4750063d''
Accept-Ranges: bytes
Content-Length: 34

User-agent: *
Disallow: /people

Объект и соединение

Сообщения запрос и отклик могут нести в себе объект, если это не запрещено методом запроса или статусным кодом отклика. Объект состоит из полей заголовка объекта и тела объекта, хотя некоторые отклики включают в себя только заголовки объектов.
В данном разделе, как отправитель, так и получатель соотносятся к клиенту или серверу, в зависимости от того, кто отправляет и кто получает объект.

Структура ресурса и объекта

Постоянное HTTP соединение имеет много преимуществ:

  • При открытии и закрытии TCP соединений можно сэкономить время CPU и память, занимаемую управляющими блоками протокола TCP.
  • HTTP запросы и отклики могут при установлении связи буферизоваться (pipelining), образуя очередь. Буферизация позволяет клиенту выполнять множественные запросы, не ожидая каждый раз отклика на запрос, используя одно соединение TCP более эффективно и с меньшими потерями времени.
  • Перегрузка сети уменьшается за счет сокращения числа пакетов, сопряженных с открытием и закрытием TCP соединений, предоставляя достаточно времени для детектирования состояния перегрузки.
  • HTTP может функционировать более эффективно, так как сообщения об ошибках могут доставляться без потери TCP связи.Клиенты, использующие будущие версии HTTP, могут испытывать новые возможности, взаимодействуя со старым сервером, они могут после неудачи попробовать старую семантику. HTTP реализациям следует пользоваться постоянными соединениями.

Клиенты

Первоначально протокол HTTP разрабатывался для доступа к гипертекстовым документам Всемирной паутины. Поэтому основными реализациями клиентов являются браузеры (агенты пользователя). Для просмотра сохранённого содержимого сайтов на компьютере без соединения с Интернетом были придуманы офлайн-браузеры. При нестабильном соединении для загрузки больших файлов используются Менеджеры закачек. Они позволяют в любое время докачать указанные файлы после потери соединения с веб-сервером. Виртуальные атласы тоже используют HTTP.

Talks and Presentations

Preliminary HTTP/1.1 Performance
Evaluation by Jim Gettys
The HTTP/1.1 performance
paper explains the experiments in detail, and was recently
submitted for publication. This work shows how you can gain as much as
a factor of 10 in number of packets and 2 in times of speed by using
HTTP/1.1 pipelining. Earliest results were presented at the IETF meeting in San Jose,
December 1996, and more complete results at the W3C Advisory Committee Meeting
in England in January.
Overview of new HTTP/1.1 functionality and
changes from HTTP/1.0 by Jim Gettys
This presentation gives a good overview of new features. It will be
updated occasionally as it is presented. The presentation is also
available for Microsoft
PowerPoint
PEP — An Extension Mechanism for HTTP
by Henrik Frystyk Nielsen and Rohit Khare
This presentation was given at the IETF meeting in
Montreal, June 1996.

Функциональность

Эталонная модель связи открытых систем устанавливает 7 уровней, на которых функционируют сетевые протоколы. OSI содержит набор протоколов для межсетевого взаимодействия и соединения между устройствами. Большинство сетевых протоколов распределяют задачи по разным уровням. Стек протоколов состоит из набора протоколов, которые выполняют задачи на каждом уровне и коллективно создают полностью функционирующую сеть. Уровни OSI следующие:

Слой Определение Задачи
1 Физическая форма Передача мультимедиа, сигналов и двоичных данных
2 Связь с данными MAC и LLC (физический адрес)
3 Сеть Определение пути и ИС
4 Транспорт Непрерывные соединения и надежность
5 Заседание Межхостовая связь
6 Презентация Представление и шифрование данных
7 Применение Сетевой процесс к приложению

Физический уровень устанавливает руководящие принципы того, как оборудование функционирует вместе. Эти правила находятся на сетевой интерфейсной карте (NIC). Уровень канала передачи данных относится к тому, как обмен данными с помощью пакетов данных, называемых кадрами, зависит от мостов и коммутаторов, контролирующих передачу данных. Маршрутизация пакетов данных контролируется на сетевом уровне, в то время как транспортный уровень управляет передачей данных между устройствами, подключенными к сети. Сеансовый и презентационный уровни обрабатывают удаленные логины и трансляцию данных, соответственно. Последний уровень, прикладной уровень, содержит службы соединений, которые взаимодействуют с другими системными приложениями.

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

Формат запроса

Запрос выглядит примерно так:

Request-Line = Method SP URI SP HTTP-Version CRLF
Method = "OPTIONS"
       | "HEAD"
       | "GET"
       | "POST"
       | "PUT"
       | "DELETE"
       | "TRACE"

SP — это разделитель между токенами. Версия HTTP указывается в HTTP-Version. Реальный запрос выглядит так:

GET /articles/http-basics HTTP/1.1
Host: www.articles.com
Connection: keep-alive
Cache-Control: no-cache
Pragma: no-cache
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Список возможных заголовков запроса:

request-header = Accept
               | Accept-Charset
               | Accept-Encoding
               | Accept-Language
               | Authorization
               | Expect
               | From
               | Host
               | If-Match
               | If-Modified-Since
               | If-None-Match
               | If-Range
               | If-Unmodified-Since
               | Max-Forwards
               | Proxy-Authorization
               | Range
               | Referer
               | TE
               | User-Agent

В заголовке Accept определяется поддерживаемые mime типы, язык, кодировку символов. Заголовки From, Host, Referer и User-Agent содержат информацию о клиенте. Префиксы If- предназначены для создания условий. Если условие не прошло, то возникнет ошибка 304 Not Modified.

История

HTTP/0.9
HTTP был предложен в марте 1991 года Бернерс-Ли,Тимом Бернерсом-Ли, работавшим тогда в CERN, как механизм для доступа к документам в Интернете и облегчения навигации посредством использования гипертекста. Самая ранняя версия протокола HTTP/0.9 была впервые опубликована в январе 1992г. (хотя реализация датируется 1990 годом). Спецификация протокола привела к упорядочению правил взаимодействия между клиентами и серверами HTTP, а также чёткому разделению функций между этими двумя компонентами. Были задокументированы основные синтаксические и семантические положения.
HTTP/1.0
HTTP/1.1
Текущая версия протокола, принята в июне 1999 года. Впервые спецификация HTTP/1.1 была опубликована в январе 1997. Также разъяснено допустимое поведение клиента (браузера), сервера и прокси-серверов в некоторых сомнительных ситуациях. То есть версия 1.1 появилась всё-таки в 1997 году. Новым в этой версии был режим «постоянного соединения»: TCP-соединение может оставаться открытым после отправки ответа на запрос, что позволяет посылать несколько запросов за одно соединение. Клиент теперь обязан посылать информацию об имени хоста, к которому он обращается, что сделало возможной более простую организацию виртуального хостинга.
HTTP/2 
11 февраля 2015 года опубликованы финальные версии черновика следующей версии протокола. В отличие от предыдущих версий, протокол HTTP/2 является бинарным. Среди ключевых особенностей мультиплексирование запросов, расстановка приоритетов для запросов, сжатия заголовков, загрузка нескольких элементов параллельно, посредством одного TCP соединения, поддержка проактивных push-уведомлений со стороны сервера.

5 последних уроков рубрики «Разное»

  • Выбрать хороший хостинг для своего сайта достаточно сложная задача. Особенно сейчас, когда на рынке услуг хостинга действует несколько сотен игроков с очень привлекательными предложениями. Хорошим вариантом является лидер рейтинга Хостинг Ниндзя — Макхост.

  • Как разместить свой сайт на хостинге? Правильно выбранный хороший хостинг — это будущее Ваших сайтов

    Проект готов, Все проверено на локальном сервере OpenServer и можно переносить сайт на хостинг. Вот только какую компанию выбрать? Предлагаю рассмотреть хостинг fornex.com. Отличное место для твоего проекта с перспективами бурного роста.

  • Создание вебсайта — процесс трудоёмкий, требующий слаженного взаимодействия между заказчиком и исполнителем, а также между всеми членами коллектива, вовлечёнными в проект. И в этом очень хорошее подспорье окажет онлайн платформа Wrike.

  • Подборка из нескольких десятков ресурсов для создания мокапов и прототипов.

Other Areas and Protocols

  • The HTTP-NG activity has information about  the former W3C
    HTTP-NG Activity
  • The Propagation, Caching and Replication
    area has a lot of information about caching schemes and scalability
  • Internet Message Access Protocol
    (IMAP) is a method of accessing electronic mail or bulletin board
    messages that are kept on a (possibly shared) mail server
  • Next Generation Internet (NGI)
    Initiative. On October 10, 1996, President Clinton and Vice President
    Gore announced their commitment to the Next Generation Internet (NGI)
    Initiative, based upon strong research and development programs across
    Federal agencies.
  • The Web Robots Pages —
    information about Web robots and how to manage them
  • What’s the Internet
    weather like? A really useful service from UCLA
  • A few other Internet protocols
    relevant to HTTP
Yves Lafon
, @(#) $Id: Overview.html,v 1.244 2014-06-11 14:21:46 ylafon Exp $

Как работает HTTP протокол сайта

HTTP является прикладным протоколом передачи данных. Принцип его работы сложен, если разбираться в нем досконально, и крайне прост, если вникнуть в его суть. Работа через данный протокол осуществляется по схеме client-server. Существует сервер, который в пассивном режиме постоянно ожидает, когда с ним будет установлено соединение. Это соединение с ним рано или поздно установит клиент, то есть машинный интерфейс пользователя интернетом. Клиент хочет что-то получить от сервера: получить страницу, открыть картинку, скачать песню. Чтобы сообщить о том, что именно хочет клиент, пользователь отправляет запросы, которые сервер умело обрабатывает. Сервер умеет обрабатывать запросы юзера благодаря инструкции, которой его снабдил HTTP протокол. Если запрос обработать невозможно, сервер знает, какую ошибку он должен выдать.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *