PHP cURL и проблема HTTP/HTTPS запросов в nginx и lighttpd

У cURL есть неприятная, в некоторых случаях, особенность: при установке поля CURLOPT_POSTFIELDS, cURL устанавливает в заголовке «Expect: 100-continue». Это поле вызывает проблемы в современных версиях nginx и в некоторых старых (не знаю как сейчас ситуация обстоит) версиях lighttd.

Lighttpd выдаёт код ответа 417, а nginx (по крайней мере на HTTPS запросах) даёт паузу примерно в две секунды. Решение простое: убрать «Expect» из заголовков. В PHP это делается вот так:
curl_set_opt($connection, CURLOPT_HTTPHEADER, array('Expect:'));
На поиск этого решения ушло полдня работы, так как мы не знали что именно вызывает проблему.
24 июня 2008 13:28

david-m.livejournal.com (david-m.livejournal.com)
24 июня 2008, 15:10

Спасибо. Ценное знание.

id.rambler.ru/users/16051976 (id.rambler.ru/users/16051976)
24 июня 2008, 17:41

Евгений, добавьте Рамблер в ваш список OpenID в комментариях. За державу обидно. )

bolk (bolknote.ru)
24 июня 2008, 20:05

Хорошо, а что 16051976 — это логин?

bolk (bolknote.ru)
25 июня 2008, 12:04

Сделал.

id.rambler.ru/users/16051976 (id.rambler.ru/users/16051976)
25 июня 2008, 14:06

Спасибо!

Alex (инкогнито)
17 февраля 2012, 10:05

Спасиб хороший человек, сэкономил мне полдня)))

burn (инкогнито)
22 мая 2012, 13:52

Спасибо, хороший человек, но мне ты пол-дня не сэкономил... :( Поздно я на этот блог забрёл...

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)