>백엔드 개발 >PHP 튜토리얼 >컬 예상:100-계속

컬 예상:100-계속

WBOY
WBOY원래의
2016-08-08 09:31:391352검색

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 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.