curl Expect:100-continue
curl POST 데이터를 사용할 때 POST 데이터 가 1024바이트보다 크면 컬이 직접 수행되지 않습니다. POST 요청을 시작하기만 하면 됩니다. 대신 두 단계로 진행됩니다.
1. 헤더에 Expect:100-continue를 포함하여 요청을 보내 서버가 데이터를 받아들일 것인지 묻습니다.
2. 서버로부터 100-continue 응답을 받은 후 데이터를 서버에 POST합니다.
이것은 libcurl에 의해 정의됩니다. 자세한 내용은 관련 설명을 참조하세요: http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html #sec8.2.3
그래서 문제가 발생합니다. 모든 서버가 100-continue로 응답하는 것은 아닙니다. 예를 들어 lighttpd는 "417 Expectation Fail"을 반환하므로 논리적 오류가 발생합니다.
해결책은 다음과 같습니다. 요청을 보낼 때 헤더에 빈 Expect가 포함됩니다.
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Expect:"));
위에는 관련 내용을 포함하여 컬 Expect:100-continue를 소개하였습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.