Как узнать, поддерживает ли сервер HTTP 1.0

#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.