DoYouGot
@DoYouGot

Почему запрос отправляется не корректно?

Почему через браузер приходит ответ а через telnet нет ? Я пробовал написать свой клиент(на С не работает, на питоне да но мне нужно на С) но там тоже самое возвращает ?5c7104d9aad15784337690.png
  • Вопрос задан
  • 184 просмотра
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Начал писать комментарий про вот уже скоро 20 лет существования http/1.1, но впрочем всё чуть проще:

https://tools.ietf.org/html/rfc2616#section-14.23
A client MUST include a Host header field in all HTTP/1.1 request messages

Вы грубо нарушили стандарт. Вы представились как HTTP/1.1 клиент, но не передали требуемый для этого стандарта заголовок Host.
Некорректный запрос клиента - это код 400, сервер вам отвечает корректно.

Минимально возможный запрос для HTTP/1.1 - это две строки:
GET /... HTTP/1.1
Host: api.vk.com

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

Одна строка была давным-давно допустима для HTTP/1.0, где на одном IP мог быть максимум 1 сайт. Большинство современных серверов вас выслушают по HTTP/1.0 но вряд ли вернут то что вы хотите, т.к. не будут знать, о каком домене вы спрашиваете и соответственно какому обработчику передавать запрос.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
NeiroNx
@NeiroNx
Программист
У вас в запросе не хватает заголовков необходимых. Оформите запрос как положенно по стандарту а не тупо GET в одну строку.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы