Mac OS 10.11.6 El Capitan을 실행하고 있습니다. 프로그래밍 방식으로 다운로드하고 싶은 링크가 있습니다 :
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-osx10.11-x86_64.dmg
이 URL을 브라우저 (예 : Safari)에 붙여 넣으면 다운로드가 완벽하게 작동합니다.
그러나을 사용하여 명령 줄에서 동일한 URL을 다운로드하려고하면 curl
작동하지 않습니다. 결과는 빈 파일입니다.
$ ls -lA
$ curl -O https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-osx10.11-x86_64.dmg
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
$ ls -lA
total 0
-rw-r--r-- 1 myname staff 0 Nov 7 14:07 mysql-5.7.16-osx10.11-x86_64.dmg
$
물론 브라우저를 통해 파일을 가져올 수 있지만 위 의 명령이 작동하지 않는 이유 를 알고 싶습니다 curl
.
curl
웹 사이트 에이 파일이 있고 그래픽 웹 브라우저를 통해 올바르게 액세스하여 다운로드 할 수 있는데 왜이 파일을 올바르게 다운로드 할 수 없습니까?
curl -v
위해 "verbose"를 사용할 수 있습니다 . 연결, 요청 및 응답에 대한 다양한 정보를 표준 오류로 인쇄합니다. 이 경우 응답에 HTTP 302 Found
(리디렉션 코드)와 Location
URL이 포함 된 헤더가 포함되어 있음을 알 수 있습니다. 그런 man curl
다음 리디렉션을 따르도록 지시하는 방법을 찾을 수 있습니다.
User-Agent
. 또한 세션 쿠키 (예 : 로그인 한 경우)가 해당 브라우저에만 있기 때문에 일부 브라우저 다운로드에 성공할 수 있습니다.