Меню

Как сделать файл доступным по протоколу http

Как сделать файл доступным по протоколу http

Профиль | Отправить PM | Цитировать

Сообщения: 25533
Благодарности: 4250

Kobzar, ради доступа к одной папке? Ну-ну.

Сообщение оказалось полезным? Поблагодарите автора, нажав ссылку Полезное сообщение чуть ниже.

Сообщения: 102
Благодарности: 8

Есть маленькая и простенькая в управлении программка.

Сообщения: 102
Благодарности: 8

Источник

HFS — Файловый HTTP сервер в несколько кликов

Домашняя сеть есть сейчас практически в каждой квартире. Настольный компьютер, пара ноутбуков, планшет, коммуникатор… Как наладить удобный обмен файлами между всеми устройствами? Вариантов есть масса, но нас интересует только один, самый простой. Ведь на любом из перечисленных выше устройств есть браузер — было бы весьма удобно «раздавать» файлы по протоколу HTTP, а как это делать? Конечно, можно запустить и настроить Apache… Но — это немного не тот вариант. Чистой воды стрельба из пушки по воробьям. Предлагаю использовать HFS — HTTP File Server, специальную программу, призванную решать именно поставленную задачу.


Работает программа очень просто. Качаем, запускаем. На стадии запуска нам предложат добавить в контекстное меню проводника пункт «Add to HFS» — соглашаемся. Программа запущена, и следующее, что нужно сделать — это выбрать файлы и папки, которые должны быть доступны через HTTP. Для этого их можно перетаскивать в окно программы, или, щелкая правой кнопкой мыши, выбирать тот самый пункт контекстного меню — «Add to HFS». Вот, собственно, и все. Ваши файлы уже доступны по протоколу HTTP. Какой адрес надо вводить в браузере, чтобы получить к ним доступ, написано в верхней части окна HFS. Например, в моем случае это http://192.168.0.29/.

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

Папки, файлы — все на месте. Нажимаем на нужном файле — получаем возможность его скачать или посмотреть — в зависимости от формата. Но это — раздача файлов, а не обмен ими. Если нужен обмен — выбираем в HFS папку, которую хотим открыть для загрузки файлов, делаем на ней правый клик, и в меню идем в пункт Upload. При этом мы можем либо создать аккаунты, для тех, кто будет осуществлять загрузку, либо разрешить ее всем подряд (Anyone).

Кстати, пароли работают и в «обратную» сторону, то есть можно установить пароль на доступ к папке или файлу. Для этого делаем правый клик на файле и выбираем «Set user/pass…».

Последнее может быть полезно, если HFS используется не в домашней, а в районной или офисной сети. Да что там, если в вашем распоряжении имеется «белый» ip-адрес, делайте свой сервер доступным хоть всему миру.

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

Источник

Сценарии загрузки файлов по протоколу HTTP

Автоматизированная загрузка новых версий утилит

Время от времени я обнаруживаю в Internet то одну, то другую полезную утилиту. Поработав с ней некоторое время, я начинаю искать самую новую версию программы. Однако не всегда есть возможность регулярно посещать соответствующие Web-узлы в поисках новых версий. Я часто пользуюсь автономным инструментом поиска вирусов Stinger компании McAfee. Единственный недостаток этого инструмента заключается в том, что компания редко обновляет Stinger и невозможно предугадать, когда появится новая версия.

Очевидно, частота обновления Stinger зависит от числа новых вирусов. Я использовал сайт WatchThatPage (http://www.watchthatpage.com) для мониторинга изменений Web-страницы, но мне был нужен более удобный способ получать информацию о новых версиях файла и, кроме того, хотелось, чтобы новейшая версия автоматически доставлялась по почте. Так появился сценарий HTTPDownLoader.bat (см. листинг 1). Данный сценарий был составлен в первую очередь для утилиты Stinger, но не составит труда настроить его на поиск новых версий и загрузку любого файла, доступного через протокол HTTP.

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

Загрузка файлов с использованием HTTP

Из командной оболочки можно загружать файлы через протокол FTP, но внутренние команды и инструменты набора ресурсов не обеспечивают их загрузки по протоколу HTTP. Я просмотрел множество инструментов независимых поставщиков, которые можно найти в Internet, и выбрал один, который мог бы пригодиться всем. Список инструментов командной оболочки от независимых поставщиков приведен во врезке «Инструменты для командной оболочки». Для загрузки файла Stinger я использовал программу iOpus File Downloader. Она имеет графический интерфейс, но поддерживает и работу с командной строки; запускать ее можно без участия пользователя. Для загрузки файлов используется следующий синтаксис:

Читайте также:  Как сделать фонтан сообщающиеся сосуды своими руками

где source указывает путь к файлу, который нужно загрузить, а destination — каталог, в который следует скопировать файл. Например, команда для Stinger выглядит следующим образом:

В выбранной мною текущей версии iOpus File Downloader каталог назначения должен находиться на локальной машине. Если используется путь в нотации Universal Naming Convention (UNC), то результаты копирования могут оказаться самые неожиданные. Я сообщил об этом недостатке в компанию iOpus, и в следующей версии ошибка должна быть исправлена. А пока следует использовать локальный путь (например, D:stinger.exe), а затем при необходимости копировать файл в удаленный каталог. В файле HTTPDownLoader.bat такое ограничение не вызывает затруднений.

Сравнение версий

Располагая инструментом для загрузки файла из Web, необходимо определить, отличается ли загруженная версия от прежней, которая имеется у пользователя. Для сравнения версий файлов я использовал утилиту Filever из пакета Windows 2000 Support Tools, с помощью которой можно сравнивать структуры папок и отдельные файлы. Сценарий HTTPDownLoader.bat загружает текущую версию с Web-узла, затем запускает Filever, чтобы сравнить новую программу с имеющимися экземплярами. Если номер версии или число байтов изменилось, то сценарий посылает по электронной почте сообщение об изменении файла и — если получатель запросит файл — пересылает новую версию в качестве вложения.

Используемая в сценарии базовая команда Filever выглядит следующим образом:

filever.exe /A D:stinger.exe

В этой команде ключ /A указывает, что утилита не должна выводить на экран атрибуты файла. Как видно из фрагмента исходного текста в листинге 2, для извлечения информации о номере версии и числе байтов в сценарии используется команда For. Я просто объединил информацию о версии (token 4) и размере (token 6). Может возникнуть вопрос, зачем вместе с номером версии проверять и число байтов? Во-первых, разработчик мог изменить содержимое файла, но не номер версии. Во-вторых, встречаются файлы без номера версии, и не исключено, что может измениться номер версии, но не размер файла. Функция сравнения показана под меткой A в листинге 2. Предполагается, что если файл на сайте-источнике изменился, то он представляет собой новую версию.

Полезный совет для запуска утилит из команды For: Filever и некоторые другие утилиты могут работать нестабильно, если их путь внутри команды For заключен в двойные кавычки. Вместо двойных кавычек — типичный прием для работы с пробелами — необходимо найти путь к утилите, не содержащий пробелов. К сожалению, многие инструменты, в том числе большинство утилит Microsoft, по умолчанию хранятся в каталогах, путь к которым содержит пробелы. Случается даже, что утилита прекрасно работает внутри команды For, пока путь к ней не заключен в двойные кавычки, но затем пользователь начинает получать сообщения об ошибках, например, The filename, directory name, or volume label syntax is incorrect («Синтаксическая ошибка в имени файла, имени каталога или метке тома»). Рекомендуется всегда устанавливать инструменты Support Tools и любые другие утилиты в каталоге, в пути к которому нет пробелов (чтобы не приходилось преобразовывать все пути в формат 8.3).

Особенности почтовых сообщений

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

blat /?
или
blat /help

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

Число параметров Blat поражает. Однако в HTTPDownLoader.bat используются лишь некоторые из них. Если бы применяемая в сценарии команда Blat вводилась в командном окне, она имела бы следующий вид:

Этот аргумент команды задает путь к текстовому файлу, который содержит тело почтового сообщения. Ключ attach указывает на присоединяемый файл, ключ s задает строку «Тема», ключ server — адрес почтового сервера SMTP, ключ f определяет адрес электронной почты отправителя сообщения, а ключ t — почтовый адрес получателя. Во фрагменте A листинга 3 показано, как выглядит команда Blat при использовании переменных вместо жестко заданных аргументов и ключей. Исходный текст фрагмента A посылает почтовое сообщение о новой версии утилиты и присоединяет эту новую версию. Команда Blat, предшествующая метке A, посылает только почтовое сообщение.

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

Перед запуском

Чтобы эффективно использовать HTTPDownLoader.bat, необходимо предусмотреть несколько условий.

Подготовка сценария к работе

Я тестировал сценарий HTTPDownLoader.bat на машинах Windows XP Professional Edition Service Pack 1 (SP1) и Windows 2000 SP4. Для использования HTTPDownLoader.bat на своем предприятии следует сначала создать файл FBlat.txt с текстом почтового оповещения. Затем необходимо произвести настройку программного кода в листинге 4. Для этого потребуется выполнить следующие действия.

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

HTTPDownLoader.bat автоматически определяет папку, в которой он находится, и именно в эту папку по умолчанию записываются загруженные версии файлов и временные файлы Blat. Если пользователь не хочет сохранить эти объекты в другом месте, то дополнительной настройки не требуется. Если нужно перенести экземпляр нового файла из этого каталога в разделяемую папку, то следует добавить строку в раздел Mailit сценария, следом за командами в закомментированном исходном тексте листинга 3.

Завершающие операции

После того как сценарий начнет работать, нужно отправить на свой адрес несколько текстовых сообщений. Затем можно внести в список всех получателей и добавить сценарий в качестве задания в Task Scheduler. Следует обратиться ко всем, кому может потребоваться загружаемый файл, — в данном случае stinger.exe — и внести имена этих людей в список распространения. С помощью сценария можно автоматизировать HTTP-загрузку любых других файлов, требующих периодического обновления версий.

Читайте также:  Как сделать сифон для газирования воды в домашних условиях

Дик Льюис (dlewis@winnetmag.com ) — старший системный инженер компании CKT Consulting в Калифорнии. Имеет сертификаты MCSE и MCT, специализируется на системах управления масштаба предприятия

Инструменты командной оболочки

Меня то и дело спрашивают, где я нахожу такие необычные инструменты. Как правило, я отвечаю просто: «В Internet». Инструмент iOpus File Downloader, который используется в сценарии HTTPDownLoader.bat, тоже обнаружен мною в результате поиска в Internet. В поисковом механизме можно указать критерий Windows Command Shell Utilities или Windows Command Shell Tools. Ниже приводится несколько адресов, которые могут пригодиться:

tcharron/blat.html

Dave Navarro?s CMD Tools http://www.cmdtools.com
Центр бесплатной загрузки http://www.freedownloadscenter.com
Бесплатные программы Gammadyne http://www.gammadyne.com/cmdline.htm
Бесплатные утилиты iOpus http://www.iopus.com/freeware.htm
Joeware.net http://www.joeware.net
Kilowatt Software http://www.kilowattsoftware.com
Small Wonders Software http://www.smallwonders.com
Smaller Animals Software http://www.smalleranimals.com
Инструменты командной оболочки SnapFiles http://www.snapfiles.com
SQLLY Development http://www.sqlly.com/ib_win_cmdtools.asp
Sysinternals http://www.sysinternals.com
SystemTools.com http://www.systemtools.com
TotalShareware http://www.totalshareware.com

Поделитесь материалом с коллегами и друзьями

Источник

Простым языком об 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, то рекомендую прочитать вот эту статью.

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

Источник

Adblock
detector