어떤 사이트의 favicon을 가져와야 하지만 browser나 GUI 도구를 사용하고 싶지는 않다면 어떻게 해야 할까요? 에셋 감사를 자동화하는 중이거나 terminal을 더 좋아하는 경우일 수도 있습니다. 까다로운 부분을 알고 있다면 curl로 처리할 수 있습니다. 이 가이드는 기본 경로부터 사용자 지정 아이콘을 찾기 위해 HTML을 파싱하는 방법까지 curl download favicon에 필요한 정확한 명령을 안내합니다.

이 문서에서는 curl이 설치되어 있다고 가정합니다. macOS와 Linux에는 기본으로 제공되며 Windows에서도 사용할 수 있습니다. 다른 dependency는 필요하지 않습니다.

1단계: 기본 favicon.ico 경로 시도

대부분의 사이트는 여전히 /favicon.ico 경로에서 파일을 제공합니다. 가장 빠르게 가져오는 방법은 다음과 같습니다.

curl -O https://example.com/favicon.ico

-O 옵션은 원격 서버에 있는 파일 이름으로 저장합니다. 사이트가 404를 반환하면 favicon.ico라는 이름으로 HTML 오류 페이지가 저장됩니다. 원하던 파일은 아닙니다. HTTP 오류에서 오류 본문 없이 실패하도록 -f를 추가하세요.

curl -f -O https://example.com/favicon.ico

이제 파일이 없으면 curl이 오류로 종료되므로 스크립트에서 이에 맞게 처리할 수 있습니다.

2단계: 리다이렉트 따라가기

많은 사이트는 /favicon.ico를 CDN이나 다른 경로로 리다이렉트합니다. -L을 사용하지 않으면 curl은 리다이렉트를 따라가지 않으며, 최종적으로 301 응답 본문을 받게 됩니다. 리다이렉트를 따라가려면 -L을 추가하세요.

curl -L -f -O https://example.com/favicon.ico

빈 파일이나 아주 작은 파일을 반환받는 ‘curl download favicon’ 시도에서 가장 일반적으로 쓰이는 해결책입니다.

3단계: HTML에서 사용자 지정 아이콘 링크 파싱

현대적인 사이트는YCYB many sites often declare icons via <link rel="icon"> tags in the <head>YCYB. WHATWG HTML 명세는 rel=icon을 페이지와 아이콘을 연결하는 표준 방식으로 정의합니다(source). 해당 URL을 찾으려면 페이지를 가져온 뒤 rel="icon"을 grep하세요.

curl -sL https://example.com | grep -o '<link[^>]*rel="[^"]*icon[^"]*"[^>]*>'

이 명령은 원본 link 태그를 출력합니다. 다음과 같은 결과를 볼 수 있습니다. <link rel="icon" href="/assets/favicon-32.png" sizes="32x32">. href 값을 추출한 다음 curl로 다운로드하세요.

curl -L -f -O https://example.com/assets/favicon-32.png

href가 상대 경로(/로 시작)라면 앞에 도메인을 붙입니다. 더 안정적인 접근을 원한다면 Python 또는 PHP 같은 도구를 사용해 HTML을 올바르게 파싱하세요.

4단계: 여러 아이콘 형식 처리

사이트는 SVG, PNG, ICO, Apple Touch 등 여러 아이콘을 선언할 수 있습니다. 이 목록을 순회하면 됩니다. 다음 bash 스니펫은 rel="icon" 및 rel="apple-touch-icon" 링크를 모두 다운로드합니다.

curl -sL https://example.com | grep -oE 'href="[^"]+\.(ico|png|svg)"' | cut -d'"' -f2 | while read -r path; do
  url="https://example.com${path}"
  curl -L -f -O "$url"
done

도메인과 경로 처리 방식은 필요에 맞게 조정하세요. 사이트의 아이콘 스택을 점검할 때 유용합니다.

자주 발생하는 문제

더 자동화된 접근을 원한다면 전용 favicon downloader 사용을 고려하세요. 저희의 favicon 다운로드 가이드에서는 curl을 보완하는 브라우저 우회 기법과 API 메서드를 다룹니다.

결론

redirect, 오류 처리, HTML 파싱을 반영하면 curl로 favicon을 다운로드하는 작업은 간단합니다. 기본 /favicon.ico 경로로 시작하고, 신뢰성을 위해 -L -f를 추가한 다음, 특정 형식이 필요할 때 HTML을 파싱하세요. 이 단계를 이용하면 어떤 사이트든 favicon 다운로드를 스크립팅할 수 있습니다.