Запрос CasperJS к прокси-серверу Squid, генерирующий HTTP-ответ 400 на ajax POST

Мне интересно, есть ли у кого-нибудь опыт работы со следующими ошибками, которые я получаю почти все время при отправке запроса POST через casperJS.

this.open('https://'+host+'/test.php?test=new1', {
    method: 'post',
    data:   {
        'host':hostID,    
        'func':'newjob',
        'apikey': key,
        'test':testing
    }
})

Ошибка 400 с рассуждениями ниже очень загадочна, и в документации Squid нет ссылки на ошибку.

1515876312.758 0 10.2.1.101 НЕТ/400 4272 Ошибка ПОДКЛЮЧЕНИЯ: double-CR - НЕТ/- text/html 1515876312.775 0 10.2.1.101 НЕТ/400 4270 Ошибка ПОДКЛЮЧЕНИЯ: double-CR - НЕТ/- NONE/- text/html 1515876311.012.811 ONE 1515876311.012.81 /400 4272 Ошибка ПОДКЛЮЧЕНИЯ: double-CR - НЕТ/- text/html 1515876312.814 0 10.2.1.101 НЕТ/400 4270 Ошибка ПОДКЛЮЧЕНИЯ: double-CR - НЕТ/- text/html 1515876312.852 0 10.2.1.101 НЕТ/400 4272 Ошибка ПОДКЛЮЧЕНИЯ: double-CR - NONE/- text/html 1515876312.967 0 10.2.1.101 NONE/400 4235 Ошибка CONNECT: double-CR - NONE/- text/html 1515876314.258 0 10.2.1.101 NONE/400 4296 Ошибка CONNECT: double-CR - NONE/ - text/html 1515876314.329 0 10.2.1.101 NONE/400 4296 CONNECT error:double-CR - NONE/- text/html 1515876314.368 0 10.2.1.101 NONE/400 4296 CONNECT error:double-CR - NONE/- text/html 1515672310 10.2.1.101 НЕТ/400 4351 Ошибка ПОДКЛЮЧЕНИЯ: двойной CR - НЕТ/- текст/html 1515876314.738 0 .773 0 10.2.1.101 НЕТ/400 4281 Ошибка ПОДКЛЮЧЕНИЯ: double-CR - НЕТ/- text/html 1515876314.777 0 10.2.1.101 НЕТ/400 4351 Ошибка ПОДКЛЮЧЕНИЯ: double-CR - НЕТ/- text/html 1515876314.829 0 10.2.1. НЕТ/400 4281 Ошибка ПОДКЛЮЧЕНИЯ: двойной CR - НЕТ/- текст/html

Вывод, который выдает CasperJS:

 [info] [phantom] Starting...
 [info] [phantom] Running suite: 1 step
 Using UA=Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; de-at) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1
 [info] [phantom] Step anonymous 1/1: done in 52ms.
 [info] [phantom] Step anonymous 2/3: done in 67ms.
 [warning] [phantom] Loading resource failed with status=fail: https://10.2.1.199/test.php?test=new1

Я посмотрел на этот SO Q/A: следующий HTTP-запрос возвращает 400 ERR_INVALID_REQ -

что кажется похожим, но если они связаны в проблеме - кто-нибудь знает, как заставить CasperJS/phantomJS не добавлять пробел?


person Ross    schedule 13.01.2018    source источник
comment
Я не знаком с прокси-сервером squid, однако вы уверены, что предоставляете все необходимые заголовки в своем запросе?   -  person Mario Nikolaus    schedule 14.01.2018


Ответы (1)


Проблема заключалась в сочетании следующих факторов:

Casper/Phantom, по-видимому, имеет два возврата каретки в запросах, Squid 3.1 этого не любит.

в squid.conf установлено:

Relaxed_header_parser на

Это не устраняет проблему в Squid 3.1.x на Centos 6.x, но если вы обновитесь до squid 3.4, проблема будет устранена.

person Ross    schedule 12.02.2018
comment
В качестве продолжения - это произошло из-за crlf стиля Windows во входном файле, который я использовал для выбора строк UA. Переход на unix syle LF только полностью решил проблему. - person Ross; 25.10.2018