cURL의 쿠키 항아리 옵션과 브라우저 쿠키의 차이점은 무엇입니까?

cURL의 쿠키 항아리 옵션과 브라우저 쿠키의 차이점은 무엇입니까?

컬 및 HTTP 요청을 사용하여 웹사이트에 로그인하려고 합니다.

첫 번째 http 요청에서 쿠키를 파일에 저장하는 명령을 GET추가했습니다 . 두 번째 컬 POST에서는 동일한 쿠키를 다시 전달하는 것을 -c cookie.txt추가했습니다 .-b cookie.txt

안타깝게도 잘못된 세션 오류 메시지가 표시되었습니다. POST 요청을 Chrome의 요청과 비교해 보면 POST쿠키에 cookie.txt에 있는 것보다 더 많은 데이터가 있음을 알 수 있습니다. "cURL 명령으로 복사"를 사용하여 Chrome을 복사하면 POST쿠키가 생성됩니다.

-H 'Cookie: PHPSESSID=rrh5d7l69tgl8633g3hklea2e0; POPUPCHECK=1140804027760'

하지만 내 cookie.txt에는 PHPSESSID. 감사합니다!

편집하다

두 명령 모두에 자세한 플래그를 추가하고 다음 출력을 받았습니다.

curl -v https://my.host.com --cookie-jar cookie.txt

 GET / HTTP/1.1
> Host: my.host.com
> User-Agent: curl/7.54.0
> Accept: */*
> 
< HTTP/1.1 200 OK
< Date: Tue, 30 Oct 2018 09:39:05 GMT
< Server: Apache/2.2.22 (Debian)
* Added cookie PHPSESSID="psq8shk4l13fos9dc5536i8l36" for domain my.host.com, path /, expire 0
< Set-Cookie: PHPSESSID=psq8shk4l13fos9dc5536i8l36; path=/
< Expires: Thu, 19 Nov 1981 08:52:00 GMT
< Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
< Pragma: no-cache
* Replaced cookie PHPSESSID="hdctvsar28qqmgn6rmu33kidv4" for domain my.host.com, path /, expire 0
< Set-Cookie: PHPSESSID=hdctvsar28qqmgn6rmu33kidv4; path=/
< Vary: Accept-Encoding
< Content-Length: 3694
< Connection: close
< Content-Type: text/html; charset=utf-8



curl -v -X POST "https://my.host.com/" -H "Content-Type: application/x-www-form-urlencoded" -b cookie.txt

> POST / HTTP/1.1
> Host: my.host.com
> User-Agent: curl/7.54.0
> Accept: */*
> Content-Type: application/x-www-form-urlencoded
> Content-Length: 73
> 
* upload completely sent off: 73 out of 73 bytes
< HTTP/1.1 200 OK
< Date: Tue, 30 Oct 2018 09:39:06 GMT
< Server: Apache/2.2.22 (Debian)
* Added cookie PHPSESSID="lg9h4h8hlk69lrkosn0abpg7n7" for domain my.host.com, path /, expire 0
< Set-Cookie: PHPSESSID=lg9h4h8hlk69lrkosn0abpg7n7; path=/
< Expires: Thu, 19 Nov 1981 08:52:00 GMT
< Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
< Pragma: no-cache
* Replaced cookie PHPSESSID="r33haq0v45r4ofksrmm2ok86c5" for domain my.host.com, path /, expire 0
< Set-Cookie: PHPSESSID=r33haq0v45r4ofksrmm2ok86c5; path=/
< Vary: Accept-Encoding
< Content-Length: 3792
< Connection: close
< Content-Type: text/html; charset=utf-8

답변1

내 스크립트에는 Windows 스타일의 줄 끝이 있는데 어떤 이유에서인지 이로 인해 문제가 발생합니다. 이제 작동 중이며 \n줄 끝만 있습니다.

관련 정보