Обычно на низком уровне программа открывает сокет для порта 80 (обычно) на сервере и отправляет ему запрос, который выглядит примерно так:
GET /index.html HTTP/1.1
Host: stackoverflow.com
...затем следует пустая строка.
Затем сервер отвечает данными, которые обычно состоят из нескольких строк заголовка, пустой строки и запрошенного ресурса.В HTTP 1.1 по умолчанию поддерживается соединение для последующих запросов (хотя сервер может прервать его, если пожелает);если бы я использовал HTTP 1.0 или добавил заголовок Connection: close
, сервер разорвал бы соединение после отправки ресурса.
Подробности смотрите в статье Википедии по HTTP , или еслиВы действительно хотите войти в это, проверьте спецификацию (все на одной странице здесь ).Вы можете увидеть, как это выглядит для вас, если у вас есть telnet
(и вы, вероятно, делаете).Просто введите telnet stackoverflow.com 80
, а затем введите строки выше.Не забудьте нажать Enter в пустой строке.
Вы не хотите заново изобретать это колесо.Практически на всех языках и средах имеется библиотека, которая поможет вам разобраться со всеми сложностями.(Например, попробуйте приведенный выше пример с www.stackoverflow.com
вместо stackoverflow.com
в обоих местах - вы получите ответ «перемещен навсегда», потому что команда SO хочет, чтобы SO было в stackoverflow.com
, а не www.stackoverflow.com
.также "временно перемещенные" ответы и т. д. и т. п.)