Portscanner, создающий возможную ошибку

Я написал простой портвектор в python. Я уже кое-что спросил об этом, здесь вы можете найти код.

Я исправил код и теперь могу создать соединение, например, stackoverflow.net

Но вывод, который я получаю, более или менее загадочен для меня:

[+] Scan results for: li547-15.members.linode.com , 198.74.50.15 [+]80/tcpopen [+] b'HTTP/1.1 400 Bad Request\r\nDate: Sat, 09 Sep 2017 18:16:50 GMT\r\nServer: Apache/2.4.7 (Ubuntu)\r\nConten' 

Я хочу понять, что означает последняя строка (первые из них мне очень понятны). Кажется, это ответ сервера, но что означает этот «плохой запрос»?

    One Solution collect form web for “Portscanner, создающий возможную ошибку”

    Ссылочный скрипт

    • устанавливает соединение с портом назначения
    • отправляет строку 'ExploitMessage\r\n' по проводу и
    • читает на большинстве 100 октетов с сервера.

    Учитывая, что порт 80 зарезервирован для HTTP , кажется безопасным предположить, что на этом сервере есть сервер, говорящий на этом протоколе.

    Ну, правильные HTTP-запросы начинаются с строки запроса формы:

     request-line = method SP request-target SP HTTP-version CRLF 

    'ExploitMessage\r\n' не соответствует этому, поэтому сервер следует RFC:

    Получателям недействительной строки запроса ДОЛЖЕН отвечать либо с ошибкой 400 ( неверный запрос ), либо с переадресацией 301 (перемещенный на постоянной основе) с правильной кодировкой запроса-цели

    То, что вы возвращаете, соответствует усеченному HTTP-ответу, сигнализирующему об ошибке:

     HTTP/1.1 400 Bad Request Date: Sat, 09 Sep 2017 18:16:50 GMT Server: Apache/2.4.7 (Ubuntu) Conten 
      Python - лучший язык программирования в мире.