Я пытаюсь протестировать веб-сервер с некоторым HTTP-запросом, записанным в файле.

GET / HTTP/1.1\r\n\r\n

Прямо сейчас я передаю этот файл в netcat следующим образом:

cat files | nc localhost 80

Тем не менее, \r\n в файлах передаются непосредственно на веб-сервер (в результате получается 4 символа, то есть '\', 'r', '\', 'n'). Как я могу кормить этот файл, чтобы символы были экранированы правильно?

1 ответ1

1

\r\n - это коды, используемые в операторе printf для генерации окончаний строк CarridgeReturn/NewLine, используемых в DOS/Windows.

Так как вы используете cat, вы используете какой-то вариант unix, который использует только \n качестве конца строки. НО вам не нужно, чтобы этот символ появлялся в файле. Просто попробуйте удалить эти значения (оставив реальный перевод строки в конце строки).

Пример тестового файла сейчас =

GET / HTTP/1.1
  blah-blah

GET / HTTP/1.1
  blah2

ИЛИ, если вам действительно нужно интерпретировать значения \r\n встроенные в файл, вы можете интерпретировать файл с помощью утилиты printf, т.е.

$ cat printf_inputtest.txt
GET / HTTP/1.1\r\n\r\n
GET / HTTP/1.1\r\n\r\n
$ printf "$( < printf_inputtest.txt )"
GET / HTTP/1.1


GET / HTTP/1.1

$ 

Надеюсь, это поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .