Авторизация
Забыли пароль? Введите ваш е-мейл адрес. Вы получите письмо на почту со ссылкой для восстановления пароля.
После регистрации вы можете задавать вопросы и отвечать на них, зарабатывая деньги. Ознакомьтесь с правилами, будем рады видеть вас в числе наших экспертов!
Вы можете войти или зарегистрироваться, чтобы добавить ответ и получить бонус.
Отправка HTTP-запроса обычно производится браузером при посещении любого Web-ресурса. Более того, поскольку современные Web-страницы имеют сложную структуру и содержат множество объектов (картинки, анимации, фреймы со вставками с других Web-ресурсов, скрипты и т.д.), при посещении практически каждой страницы браузером отправляется не один, а множество HTTP-запросов для загрузки каждого из элементов. Все это происходит совершенно прозрачно для пользователя, который видит лишь результат загрузки и отображения этих объектов в окне браузера.
Однако, по историческим причинам протокол HTTP первоначально предназначался для передачи исключительно текстовой информации с перекрестными ссылками, и поэтому сам протокол является простым текстовым протоколом. В нем имеется всего несколько команд (запросов), передаваемых от клиента (браузера) на сервер. И самым главным запросом, без которого невозможно посетить даже самую простую Web-страницу, является запрос GET. Этот запрос приказывает серверу передать клиенту объект (текст, картинку, скрипт и т.д.), находящийся по определенному адресу относительно корневого каталога Web-ресурса (сайта).
Согласно действующей в настоящее время спецификации протокола HTTP 1.1, запрос GET состоит из нескольких строк, последняя из которых является пустой и обозначает конец запроса. В первой строке указывается тип запроса (GET), относительный адрес требуемого ресурса и версия протокола. Поскольку на одном сервере могут размещаться несколько сайтов, для идентификации сайта, к которому производится обращение, обязательно должен указываться параметр запроса Host.
Обычно браузером указывается еще множество параметров, которые могут использоваться сервером для формирования требуемой Web-страницы (например, поддерживаемые браузером кодировки символов, форматы изображений и т.д.), но все эти параметры не являются обязательными.
Приведенной информации достаточно для того, чтобы создать простейший HTTP-запрос «вручную», используя утилиту NetCat или telnet для подключения к порту сервера и обмена текстовой информацией по сети. Поскольку будет создаваться HTTP-запрос, подключаться необходимо к 80-му порту сервера.
Здесь в 1-й строке производится вызов утилиты NetCat из командной строки; параметры вызова — адрес сервера и номер TCP-порта, к которому производится подключение. Затем идут три строки, представляющие собственно набранный вручную HTTP-запрос (набирать эти строки надо быстро, чтобы сервер не разорвал соединение по тайм-ауту). Последняя строка запроса — пустая, что означает для сервера окончание запроса. В строках с 5-й по 12-ю содержится ответ, переданный сервером. В данном случае сервер сообщает, что запрашиваемый ресурс перемещен на адрес, начинающийся с https. В настоящее время доступ к большинству Web-ресурсов осуществляется по протоколу https, так что данный ответ на простой HTTP-запрос возвращается в большинстве случаев. Браузер, получив такой ответ, производит подключение к 443-му TCP-порту и устанавливает защищенное соединение с сервером, внутри которого отправляет новый GET-запрос и получает ответ от сервера с содержанием запрашиваемой страницы, так что для пользователя переход на защищенный протокол остается незамеченным.
Напишите, почему вы считаете данный ответ недопустимым: