Посмотрите на HTTP 1.1 RFC#GET, чтобы получить представление о том, для чего запрос GET является. Когда вы используете браузер для посещения веб-сайта (все веб-сайты работают на каком-то HTTP-сервере), ваш браузер действует как клиент, а веб-сайт действует как сервер. Клиент инициирует запрос, и сервер отвечает на этот запрос.
Основной запрос (инициированный браузером в ответ на URL-адрес пользователя, который пытается просмотреть) - это запрос GET.
Например, если пользователь хочет посетить URL-адрес http://www.example.com/index.htm, браузер подключается к TCP-порту 80 (по умолчанию) сервера www.example.com. После того, как соединение установлено, браузер начинает «разговор» со стандартным запросом GET, который может выглядеть следующим образом:
GET /index.htm HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; sv-SE; rv:1.8.1.12) Gecko/20080207 Ubuntu/7.10 (gutsy) Firefox/2.0.0.12
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Любые заголовки после первой строки (строка запроса) не являются обязательными, хотя любой браузер всегда будет хотеть включить заголовок «Host», поскольку большинство веб-сайтов не будут работать без него (это позволяет нескольким веб-сайтам совместно использовать один IP-адрес). В этом случае сервер не может знать, какой веб-сайт вы хотите посетить, не указав здесь имя хоста.
запрос GET голый минимум для извлечения index.htm на этом сервере будет просто:
GET /index.htm HTTP/1.1
ВНИМАНИЕ, что конец запроса завершается двойной CRLF последовательности (ASCII коды 13 и 10) , один для самой последней строки заголовка, другой для обозначения конца заголовков запросов. После того, как сервер получает двойную последовательность CRLF, сервер отвечает соответственно строкой состояния и кодом (был ли найден документ?). Если документ был найден, он возвращается в ответ обычно с кодом состояния HTTP 200, заголовками ответов (они имеют тот же формат, что и заголовки запроса), двойная последовательность CRLF, за которой следует тело запрашиваемого файла. Стандарт HTTP называет это «сущностью». В этом случае возвращаемым объектом будет содержимое index.htm. Используя пример выше, сервер может ответить так:
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 66
Last-Modified: Wed, 14 Sep 2016 13:05:21 GMT
<html>
<body>
Welcome to my example page
</body>
</html>
Так что это простой пример HTTP GET/разговора ответ в двух словах, хотя можно предположить, что вещи могут получить более сложным, в зависимости от запроса и ответа заголовки.
Чтобы ответить на вопрос о том, как вручную отправить запрос GET на работающий сервер, мне нравится использовать «curl -i» на Linux-машине. Curl действует как клиент/broswer, позволяющий указать URL-адрес, который вы хотите получить (загрузить).Например:
Опция -i вызывает скручивание, чтобы отобразить весь ответ веб-сервера (включая заголовок ответа HTTP), а не только лица, которые в этом случае являются содержание Test.htm. Вам просто нужно настроить URL-адрес выше, чтобы он соответствовал URL-адресу вашего веб-сервера, будь то на том же компьютере или в другом месте в сети.
Зачем вам отправлять * запросы * с сервера? Клиент отправляет запросы, и вы отвечаете ответами. –
Что касается создания запросов, просто сделайте это в своем локальном браузере? Или используйте инструменты командной строки, такие как 'curl'? –
Как я уже сказал, я не знаю, что я делаю, я не знаю в первую очередь о серверах. Клиент отправляет запрос, и я отвечаю. Я уверен, что у этого сервера уже есть ответы. Как выглядит команда curl? http://stackoverflow.com/questions/27422918/send-http-get-request-using-curl-in-c показывает один. Но опять же я даже не знаю, есть ли у этого URL-адрес, и если он сделает то, что будет – TheMangaStand