#http #http-1.1 #http-1.0
#http #http-1.1 #http-1.0
Вопрос:
Мне нужно знать, поддерживает ли сервер HTTP 1.0. Я отправляю это сообщение через сокет TCP:
GET / HTTP/1.0
Host: www.example.com
Дело в том, что иногда я получаю ответ HTTP 1.0, а в других случаях — ответ HTTP 1.1. Как я должен интерпретировать эти ответы?
Спасибо!
Ответ №1:
Мне нужно знать, поддерживает ли сервер HTTP 1.0.
Когда вы отправляете запрос GET / HTTP/1.0
, вы сообщаете серверу, что версия HTTP, которую вы поддерживаете в качестве клиента, равна 1.0.
Если сервер либо предназначен для HTTP 1.0, либо предназначен для HTTP 1.1 с возможностью обратной совместимости с 1.0, то сервер должен отправить ответ 1.0 на запрос 1.0, а не ответ 1.1, поскольку ответ может не поддерживаться клиентом.
Ответ №2:
В протоколе HTTP ожидается, что клиент отправит версию с запросом, прежде чем он получит какое-либо представление о том, что представляет собой сервер или что он делает.
Это означает, что ваш метод проб и ошибок, вероятно, является единственным способом определить.
На практике HTTP / 1.0 на самом деле не используется в подавляющем большинстве случаев, и почти всегда уместно использовать HTTP / 1.1.
Комментарии:
1. Да, я знаю. Но это для домашнего задания в университете. Я должен указать, какие протоколы HTTP поддерживает данный сервер. если я отправляю запрос HTTP / 1.0 и получаю ответ HTTP / 1.0, я знаю, что сервер поддерживает 1.0, но если ответ с 1.1, означает ли это, что сервер не поддерживает 1.0?
2. Я полагаю, что в спецификации указано, что сервер должен возвращать 1.1, если ответ вообще не соответствует 1.0. Я не знаю, сколько веб-серверов строго придерживаются этих рекомендаций. Вполне возможно, что некоторые серверы просто игнорируют 1.0 в версии и рассматривают все как 1.1.