на каком протоколе построена служба www

Служба WWW

на каком протоколе построена служба www. Смотреть фото на каком протоколе построена служба www. Смотреть картинку на каком протоколе построена служба www. Картинка про на каком протоколе построена служба www. Фото на каком протоколе построена служба www на каком протоколе построена служба www. Смотреть фото на каком протоколе построена служба www. Смотреть картинку на каком протоколе построена служба www. Картинка про на каком протоколе построена служба www. Фото на каком протоколе построена служба www на каком протоколе построена служба www. Смотреть фото на каком протоколе построена служба www. Смотреть картинку на каком протоколе построена служба www. Картинка про на каком протоколе построена служба www. Фото на каком протоколе построена служба www на каком протоколе построена служба www. Смотреть фото на каком протоколе построена служба www. Смотреть картинку на каком протоколе построена служба www. Картинка про на каком протоколе построена служба www. Фото на каком протоколе построена служба www

на каком протоколе построена служба www. Смотреть фото на каком протоколе построена служба www. Смотреть картинку на каком протоколе построена служба www. Картинка про на каком протоколе построена служба www. Фото на каком протоколе построена служба www

на каком протоколе построена служба www. Смотреть фото на каком протоколе построена служба www. Смотреть картинку на каком протоколе построена служба www. Картинка про на каком протоколе построена служба www. Фото на каком протоколе построена служба www

Служба WWW (World Wide Web) – основная служба в сети Интернет,

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

ченных к сети. Служба WWW представляет собой множество независи-

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

графической, аудио и видео информацией. Работая с Web, пользователь

последовательно соединяется с Web-серверами и получает информацию.

WWW построена по схеме «клиент-сервер». В качестве клиента выступает

браузер, который является также и интерпретатором HTML (рис. 28). Как

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

личные функции: размещение текста на экране, обмен информацией с сер-

вером по мере анализа полученного HTML-текста и др.

Рис. 28. Взаимодействие клиента и сервера по протоколу HTTP

Служба WWW организована на принципах гиперсреды. Гиперсреда –

технология представления информации в виде относительно небольших

блоков, ассоциативно связанных друг с другом.

WWW – это глобальное информационное пространство, основанное

на физической инфраструктуре Интернета и протоколе передачи данных

HTTP. Его образуют миллионы веб-серверов сети Интернет, расположен-

WWW неразрывно связана с понятиями гипертекста и гиперссылки.

Web-сервер

Web-сервер – это программное обеспечение, отвечающее за прием за-

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

Web-cерверы хранят информацию в виде текстовых файлов, называемых

страницами Web-сервера. Помимо текста, такие страницы могут содержать

ссылки на другие страницы, ссылки на графические изображения, аудио –

и видеоинформацию, различные объекты ввода данных (поля, кнопки,

формы и т. д.), а также другие объекты. Страницы Web представляют со-

бой некоторое связующее звено между объектами различных типов.

Web-сервер является программой, запускаемой на подключённом к

сети омпьютере и использующей протокол HTTP для передачи данных. В

простейшем виде такая программа получает по сети HTTP-запрос на опре-

делённый ресурс, находит соответствующий файл на локальном жёстком

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

web-серверы способны динамически формировать ресурсы в ответ на

Источник

Что такое службы?

Как мы уже узнали, Internet – это глобальная компьютерная сеть, включающая в себя миллионы серверов и компьютеров-клиентов, состоящая из различных каналов связи и работающая благодаря определенным технологиям. Благодаря всему перечисленному стало возможным передавать информацию от одного компьютера к другому, но какую информацию, точнее, какого типа, формата? Как эта информация будет представлена на компьютере пользователя? Какие правила и сценарии работы с этой информацией будут использоваться? Ответы на данные вопросы дают описания служб (сервисов), которые работают в Internet.

Службы (сервисы) – это виды услуг, которые оказываются серверами сети Internet.

В истории Интернет существовали разные виды сервисов, одни из которых в настоящее время уже не используются, другие постепенно теряют свою популярность, в то время как третьи переживают свой расцвет.

Среди последних служб лидирующее место по объему хранимой информации занимает служба WWW, поскольку данная служба наиболее удобна для работы пользователей и наиболее прогрессивна в техническом плане. На втором месте находится служба FTP, поскольку какие бы интерфейсы и удобства не разрабатывали для пользователя, информация все равно хранится в файлах, доступ к которым и обеспечивает эта служба. Службы Gopher и Telnet в настоящее время можно считать «отмирающими», так как новая информация уже почти не поступает на серверы этих служб и количество таких серверов и их аудитория практически не увеличивается.

Структура информационного наполнения сети Internet

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

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

На практике в гипертексте некоторые слова выделяют путем подчёркивания или окрашивания в другой цвет. Выделение слова говорит о наличии связи этого слова с некоторым документом, в котором тема, связанная с выделенным словом, рассматривается более подробно.

Гипермедиа — это то, что получится, если в определении гипертекста заменить слово «текст» на «любые виды информации»: звук, графику, видео.

Система WWW построена на специальном протоколе передачи данных, который называется протоколом передачи гипертекста HTTP (читается «эйч-ти-ти-пи», HyperText Transfer Protocol).

Всё содержимое системы WWW состоит из WWW-страниц.

WWW-cтраницы — гипермедийные документы системы World Wide Web. Создаются с помощью языка разметки гипертекста HTML (Hypertext markup language).

Одну WWW-страницу на самом деле обычно составляет набор гипермедийных документов, расположенных на одном сервере, переплетённых взаимными ссылками и связанных по смыслу (например, содержащих информацию об одном учебном заведении или об одном музее). Каждый документ страницы, в свою очередь, может содержать несколько экранных страниц текста и иллюстраций. Каждая WWW-страница имеет свой «титульный лист» (англ. «homepage») — гипермедийный документ, содержащий ссылки на главные составные части страницы. Адреса «титульных листов» распространяются в Интернет в качестве адресов страниц.

Электронная почта.


Электронная почта (Electronic mail, англ. mail — почта, сокр. e-mail) cлужит для передачи текстовых сообщений в пределах Интернет, а также между другими сетями электронной почты.

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

Для пользования E-mail компьютер должен быть подключен к телефонной сети через модем.

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

При получении любого пакета узел анализирует адрес получателя и, если он совпадает с его собственным адресом, пакет принимается, в противном случае отправляется дальше. Полученные пакеты, относящиеся к одному и тому же сообщению, накапливаются. Как только все пакеты одного сообщения получены, они соединяются и доставляются получателю. Копии пакетов сохраняются на узлах – отправителях, пока не придёт ответ с узла – получателя об успешной доставке сообщения. Этим обеспечивается надёжность.

Для доставки письма адресату нужно знать только его адрес и координаты ближайшего почтового ящика. На пути к адресату письмо проходит несколько почтовых отделений (узлов).

Процесс поэтапного определения пути письма называется маршрутизацией (routing).

При использовании электронной почты каждому абоненту присваивается уникальный почтовый адрес, формат которого имеет вид:

Электронная почта не требует одновременного присутствия обоих абонентов на разных концах линии. Сообщения, поступающие по e-mail, хранятся в специальном «почтовом» компьютере в выделенной для получателя области дисковой памяти (его «почтовом ящике»), откуда он может их выгрузить и прочитать с помощью специальной программы-клиента. Для отсылки сообщения нужно знать электронный адрес абонента. При качественной связи электронное письмо доходит в любую точку мира в течение нескольких минут.

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

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

Более современный протокол IMAP позволяет, в частности, выборочно копировать пришедшие письма с почтового сервера на компьютер. Для использования этого протокола необходимо, чтобы он поддерживался как провайдером, так и почтовой программой.

Схема доставки сообщения.

Служба передачи файлов FTP.

Как известно, вся информация хранится в файлах. Файл может иметь различный объем и содержать абсолютно любую информацию. Именно поэтому в сети Internet за последние 15-20 лет скопилось огромное количество разнообразных файлов, доступ к архивам которым осуществляется с помощью службы передачи файлов FTP.

Служба передачи файлов FTP перемещает копии файлов с одного узла Интернет на другой в соответствии с протоколом FTP (File Transfer Protocol — «протокол передачи файлов»).


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

В Интернет имеется более 10 Терабайт бесплатных файлов и программ. Любой пользователь может воспользоваться услугами службы FTP и с помощью анонимного доступа скопировать интересующие его файлы.

Кроме программ в FTP-архивах можно найти стандарты Internet, пресс-релизы, книги по различным отраслям знаний (и особенно по компьютерной проблематике) и многое другое.

Для работы пользователя со службой FTP существует множество программ FTP-клиентов, например, CuteFTP, Far, Windows Commander. Как правило, эти программы являются также файловыми менеджерами, то есть позволяют просматривать как информацию на локальных дисках, так и точно также на удаленных и выполняют функции копирования информации с удаленного диска на локальный диск.

Например, для загрузки с сервера файлового архива ftp.cuteftp.com компании GlobalScape файла cute4232.exe необходимо указать URL-адрес этого файла. При указании URL-адреса протокол FTP записывается следующим образом: ftp://.

Cистема телеконференций Usenet.

Очень похожей на электронную почту службой является служба телеконференций Usenet.

Служба телеконференций Usenet организует коллективные обсуждения по различным направлениям, называемые телеконференциями. Для работы этой службы используется протокол NNTP (Network News Transfer Protocol) – сетевой протокол передачи новостей

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

Сегодня Usenet имеет более десяти тысяч дискуссионных групп (NewsGroups) или телеконференций, каждая из которых посвящена определённой теме и является средством обмена мнениями.

Внутри этих категорий существует иерархия. Так, например, rec.music.beatles — это дискуссия о творчестве Битлз, входящая в подгруппу «музыка» группы дискуссий по искусству.

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

В настоящее время в системе ICQ зарегистрировано более 150 миллионов пользователей, причем каждый пользователь имеет уникальный идентификационный номер. Программа уведомляет о присутствии в данное время в Интернете абонентов из предварительно составленного списка и дает возможность инициализировать контакт с ними.

Для того, чтобы стать абонентом системы ICQ, достатаочно скачать программу ICQ-клиент с файлового сервера (например, www.freeware.ru) и в процессе ее установки на компьютер зарегистрироваться.

Служба удаленного доступа к компьютерам.


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

Эта программа состоит из двух компонент: программы-клиента, которая выполняется на компьютере-клиенте, и программы-сервера, которая выполняется на компьютере-сервере.

Telnet — простое и поэтому универсальное средство связи в Интернет.

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

Вопросы.

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

Источник

Введение в Интернет

Понятие Internet и WWW

Интернет и его сервисы

Наиболее распространенными Интернет-сервисами являются:

Служба WWW

на каком протоколе построена служба www. Смотреть фото на каком протоколе построена служба www. Смотреть картинку на каком протоколе построена служба www. Картинка про на каком протоколе построена служба www. Фото на каком протоколе построена служба www

WWW – это глобальное информационное пространство, основанное на физической инфраструктуре Интернета и протоколе передачи данных HTTP. Его образуют миллионы веб-сeрверов сети Интернет, расположенных по всему миру. WWW неразрывно связана с понятиями гипертекста и гиперссылки.

Web-сервер

Web-сервер – это программное обеспечение, отвечающее за прием запросов браузеров, поиск указанных файлов и возвращение их содержимого. Web-cерверы хранят информацию в виде текстовых файлов, называемых страницами Web-сервера. Помимо текста, такие страницы могут содержать ссылки на другие страницы, ссылки на графические изображения, аудио- и видеоинформацию, различные объекты ввода данных (поля, кнопки, формы и т. д.), а также другие объекты. Страницы Web представляют собой некоторое связующее звено между объектами различных типов.

Web-сервер является программой, запускаемой на подключённом к сети компьютере и использующей протокол HTTP для передачи данных. В простейшем виде такая программа получает по сети HTTP-запрос на определённый ресурс, находит соответствующий файл на локальном жёстком диске и отправляет его по сети запросившему компьютеру. Более сложные web-серверы способны динамически формировать ресурсы в ответ на HTTP-запрос.

Web-браузер

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

на каком протоколе построена служба www. Смотреть фото на каком протоколе построена служба www. Смотреть картинку на каком протоколе построена служба www. Картинка про на каком протоколе построена служба www. Фото на каком протоколе построена служба www

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

Протокол HTTP

Транспортным протоколом для HTTP является протокол TCP, причем сервер HTTP (сервер Web) находится в состоянии ожидания соединения со стороны клиента стандартно по порту 80 TCP, а клиент HTTP (браузер Web) является инициатором соединения.

Одной из важнейших функций сервера Web является предоставление доступа к части локальной файловой системы. Для этого в настройках сервера указывается некоторая директория, которая является корневой для данного сервера Web. Чтобы опубликовать документ, то есть сделать его доступным пользователям, «посещающим» данный сервер (осуществляющим с ним соединение по протоколу HTTP), нужно скопировать этот документ в корневую директорию Web-сервера или в одну из ее поддиректорий. При соединении по протоколу HTTP на сервере создается процесс с правами пользователя, как правило, не существующего реально, а специально созданного для просмотра ресурсов сервера. Настраивая права и разрешения данного пользователя, можно управлять доступом к ресурсам Web.

Взаимодействие между клиентом и сервером Web осуществляется путем обмена сообщениями. Сообщения HTTP делятся на запросы клиента серверу и ответы сервера клиенту.

Запросы и ответы выглядят следующим образом:

HTTP-заголовки

Формат начальной строки (start-line) клиента и сервера различаются. Заголовки бывают четырех видов:

Каждый заголовок состоит из названия, символа двоеточия «:» и значения. Наиболее важные заголовки приведены в 1.1.

В теле сообщения содержится собственно передаваемая информация. Тело сообщения представляет собой последовательность октетов (байтов). Тело сообщения может быть закодировано, например, для уменьшения объема передаваемой информации, при этом способ кодирования указывается в заголовке объекта Content-Encoding.

Запрос от клиента к серверу состоит из строки запроса (request-line), заголовков (общих, запросов, объекта) и, возможно, тела сообщения.

Источник

Простым языком об HTTP

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

HTTP — широко распространённый протокол передачи данных, изначально предназначенный для передачи гипертекстовых документов (то есть документов, которые могут содержать ссылки, позволяющие организовать переход к другим документам).

Аббревиатура HTTP расшифровывается как HyperText Transfer Protocol, «протокол передачи гипертекста». В соответствии со спецификацией OSI, HTTP является протоколом прикладного (верхнего, 7-го) уровня. Актуальная на данный момент версия протокола, HTTP 1.1, описана в спецификации RFC 2616.

Протокол HTTP предполагает использование клиент-серверной структуры передачи данных. Клиентское приложение формирует запрос и отправляет его на сервер, после чего серверное программное обеспечение обрабатывает данный запрос, формирует ответ и передаёт его обратно клиенту. После этого клиентское приложение может продолжить отправлять другие запросы, которые будут обработаны аналогичным образом.

Задача, которая традиционно решается с помощью протокола HTTP — обмен данными между пользовательским приложением, осуществляющим доступ к веб-ресурсам (обычно это веб-браузер) и веб-сервером. На данный момент именно благодаря протоколу HTTP обеспечивается работа Всемирной паутины.

Также HTTP часто используется как протокол передачи информации для других протоколов прикладного уровня, таких как SOAP, XML-RPC и WebDAV. В таком случае говорят, что протокол HTTP используется как «транспорт».

API многих программных продуктов также подразумевает использование HTTP для передачи данных — сами данные при этом могут иметь любой формат, например, XML или JSON.

Как правило, передача данных по протоколу HTTP осуществляется через TCP/IP-соединения. Серверное программное обеспечение при этом обычно использует TCP-порт 80 (и, если порт не указан явно, то обычно клиентское программное обеспечение по умолчанию использует именно 80-й порт для открываемых HTTP-соединений), хотя может использовать и любой другой.

Как отправить HTTP-запрос?

Самый простой способ разобраться с протоколом HTTP — это попробовать обратиться к какому-нибудь веб-ресурсу вручную. Представьте, что вы браузер, и у вас есть пользователь, который очень хочет прочитать статьи Анатолия Ализара.

Предположим, что он ввёл в адресной строке следующее:

Соответственно вам, как веб-браузеру, теперь необходимо подключиться к веб-серверу по адресу alizar.habrahabr.ru.

Для этого вы можете воспользоваться любой подходящей утилитой командной строки. Например, telnet:

telnet alizar.habrahabr.ru 80

Сразу уточню, что если вы вдруг передумаете, то нажмите Ctrl + «]», и затем ввод — это позволит вам закрыть HTTP-соединение. Помимо telnet можете попробовать nc (или ncat) — по вкусу.

После того, как вы подключитесь к серверу, нужно отправить HTTP-запрос. Это, кстати, очень легко — HTTP-запросы могут состоять всего из двух строчек.

Для того, чтобы сформировать HTTP-запрос, необходимо составить стартовую строку, а также задать по крайней мере один заголовок — это заголовок Host, который является обязательным, и должен присутствовать в каждом запросе. Дело в том, что преобразование доменного имени в IP-адрес осуществляется на стороне клиента, и, соответственно, когда вы открываете TCP-соединение, то удалённый сервер не обладает никакой информацией о том, какой именно адрес использовался для соединения: это мог быть, например, адрес alizar.habrahabr.ru, habrahabr.ru или m.habrahabr.ru — и во всех этих случаях ответ может отличаться. Однако фактически сетевое соединение во всех случаях открывается с узлом 212.24.43.44, и даже если первоначально при открытии соединения был задан не этот IP-адрес, а какое-либо доменное имя, то сервер об этом никак не информируется — и именно поэтому этот адрес необходимо передать в заголовке Host.

Стартовая (начальная) строка запроса для HTTP 1.1 составляется по следующей схеме:

Например (такая стартовая строка может указывать на то, что запрашивается главная страница сайта):

Метод (в англоязычной тематической литературе используется слово method, а также иногда слово verb — «глагол») представляет собой последовательность из любых символов, кроме управляющих и разделителей, и определяет операцию, которую нужно осуществить с указанным ресурсом. Спецификация HTTP 1.1 не ограничивает количество разных методов, которые могут быть использованы, однако в целях соответствия общим стандартам и сохранения совместимости с максимально широким спектром программного обеспечения как правило используются лишь некоторые, наиболее стандартные методы, смысл которых однозначно раскрыт в спецификации протокола.

URI (Uniform Resource Identifier, унифицированный идентификатор ресурса) — путь до конкретного ресурса (например, документа), над которым необходимо осуществить операцию (например, в случае использования метода GET подразумевается получение ресурса). Некоторые запросы могут не относиться к какому-либо ресурсу, в этом случае вместо URI в стартовую строку может быть добавлена звёздочка (астериск, символ «*»). Например, это может быть запрос, который относится к самому веб-серверу, а не какому-либо конкретному ресурсу. В этом случае стартовая строка может выглядеть так:

Версия определяет, в соответствии с какой версией стандарта HTTP составлен запрос. Указывается как два числа, разделённых точкой (например 1.1).

Для того, чтобы обратиться к веб-странице по определённому адресу (в данном случае путь к ресурсу — это «/»), нам следует отправить следующий запрос:

GET / HTTP/1.1
Host: alizar.habrahabr.ru

При этом учитывайте, что для переноса строки следует использовать символ возврата каретки (Carriage Return), за которым следует символ перевода строки (Line Feed). После объявления последнего заголовка последовательность символов для переноса строки добавляется дважды.

Впрочем, в спецификации HTTP рекомендуется программировать HTTP-сервер таким образом, чтобы при обработке запросов в качестве межстрочного разделителя воспринимался символ LF, а предшествующий символ CR, при наличии такового, игнорировался. Соответственно, на практике бо́льшая часть серверов корректно обработает и такой запрос, где заголовки отделены символом LF, и он же дважды добавлен после объявления последнего заголовка.

Если вы хотите отправить запрос в точном соответствии со спецификацией, можете воспользоваться управляющими последовательностями \r и \n:

Как прочитать ответ?

Стартовая строка ответа имеет следующую структуру:

Версия протокола здесь задаётся так же, как в запросе.

Код состояния (Status Code) — три цифры (первая из которых указывает на класс состояния), которые определяют результат совершения запроса. Например, в случае, если был использован метод GET, и сервер предоставляет ресурс с указанным идентификатором, то такое состояние задаётся с помощью кода 200. Если сервер сообщает о том, что такого ресурса не существует — 404. Если сервер сообщает о том, что не может предоставить доступ к данному ресурсу по причине отсутствия необходимых привилегий у клиента, то используется код 403. Спецификация HTTP 1.1 определяет 40 различных кодов HTTP, а также допускается расширение протокола и использование дополнительных кодов состояний.

Пояснение к коду состояния (Reason Phrase) — текстовое (но не включающее символы CR и LF) пояснение к коду ответа, предназначено для упрощения чтения ответа человеком. Пояснение может не учитываться клиентским программным обеспечением, а также может отличаться от стандартного в некоторых реализациях серверного ПО.

После стартовой строки следуют заголовки, а также тело ответа. Например:

Тело ответа следует через два переноса строки после последнего заголовка. Для определения окончания тела ответа используется значение заголовка Content-Length (в данном случае ответ содержит 7 восьмеричных байтов: слово «Wisdom» и символ переноса строки).

Но вот по тому запросу, который мы составили ранее, веб-сервер вернёт ответ не с кодом 200, а с кодом 302. Таким образом он сообщает клиенту о том, что обращаться к данному ресурсу на данный момент нужно по другому адресу.

В заголовке Location передан новый адрес. Теперь URI (идентификатор ресурса) изменился на /users/alizar/, а обращаться нужно на этот раз к серверу по адресу habrahabr.ru (впрочем, в данном случае это тот же самый сервер), и его же указывать в заголовке Host.

GET /users/alizar/ HTTP/1.1
Host: habrahabr.ru

В ответ на этот запрос веб-сервер Хабрахабра уже выдаст ответ с кодом 200 и достаточно большой документ в формате HTML.

Если вы уже успели вжиться в роль, то можете теперь прочитать полученный от сервера HTML-код, взять карандаш и блокнот, и нарисовать профайл Ализара — в принципе, именно этим бы на вашем месте браузер сейчас и занялся.

А что с безопасностью?

Сам по себе протокол HTTP не предполагает использование шифрования для передачи информации. Тем не менее, для HTTP есть распространённое расширение, которое реализует упаковку передаваемых данных в криптографический протокол SSL или TLS.

Название этого расширения — HTTPS (HyperText Transfer Protocol Secure). Для HTTPS-соединений обычно используется TCP-порт 443. HTTPS широко используется для защиты информации от перехвата, а также, как правило, обеспечивает защиту от атак вида man-in-the-middle — в том случае, если сертификат проверяется на клиенте, и при этом приватный ключ сертификата не был скомпрометирован, пользователь не подтверждал использование неподписанного сертификата, и на компьютере пользователя не были внедрены сертификаты центра сертификации злоумышленника.

На данный момент HTTPS поддерживается всеми популярными веб-браузерами.

А есть дополнительные возможности?

Протокол HTTP предполагает достаточно большое количество возможностей для расширения. В частности, спецификация HTTP 1.1 предполагает возможность использования заголовка Upgrade для переключения на обмен данными по другому протоколу. Запрос с таким заголовком отправляется клиентом. Если серверу требуется произвести переход на обмен данными по другому протоколу, то он может вернуть клиенту ответ со статусом «426 Upgrade Required», и в этом случае клиент может отправить новый запрос, уже с заголовком Upgrade.

Такая возможность используется, в частности, для организации обмена данными по протоколу WebSocket (протокол, описанный в спецификации RFC 6455, позволяющий обеим сторонам передавать данные в нужный момент, без отправки дополнительных HTTP-запросов): стандартное «рукопожатие» (handshake) сводится к отправке HTTP-запроса с заголовком Upgrade, имеющим значение «websocket», на который сервер возвращает ответ с состоянием «101 Switching Protocols», и далее любая сторона может начать передавать данные уже по протоколу WebSocket.

Что-то ещё, кстати, используют?

На данный момент существуют и другие протоколы, предназначенные для передачи веб-содержимого. В частности, протокол SPDY (произносится как английское слово speedy, не является аббревиатурой) является модификацией протокола HTTP, цель которой — уменьшить задержки при загрузке веб-страниц, а также обеспечить дополнительную безопасность.

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

Опубликованный в ноябре 2012 года черновик спецификации протокола HTTP 2.0 (следующая версия протокола HTTP после версии 1.1, окончательная спецификация для которой была опубликована в 1999) базируется на спецификации протокола SPDY.

Многие архитектурные решения, используемые в протоколе SPDY, а также в других предложенных реализациях, которые рабочая группа httpbis рассматривала в ходе подготовки черновика спецификации HTTP 2.0, уже ранее были получены в ходе разработки протокола HTTP-NG, однако работы над протоколом HTTP-NG были прекращены в 1998.

На данный момент поддержка протокола SPDY есть в браузерах Firefox, Chromium/Chrome, Opera, Internet Exporer и Amazon Silk.

И что, всё?

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

Впрочем, если вы знаете английский и хотите углубиться в изучение не только самого HTTP, но и используемых для передачи пакетов TCP/IP, то рекомендую прочитать вот эту статью.

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

Источник

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

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