리눅스
http요청.. wget,curl
정지홍
2024. 7. 18. 07:55
wget
→ web get
→ 웹에서 파일을 다운로드하기 위한 명령어
wget url
# ex) wget https://www.skuniv.ac.kr/?module=file&act=procFileDownload&file_srl=252521&sid=22a132a85a178d923d46466a7cec4f85
# 단일 파일 다운로드
# 여러 파일을 다운로드 하고 싶다면 url목록이 포함된 텍스트 파일을 만들어서 wget -i url.txt를 실행
wget -P PATH url
# 특정 디렉토리에 다운로드
wget -b url
# 백그라운드에서 작동
wget -O newFileName url
# 다른 이름으로 파일 다운로드
wget -c url
# 중단된 다운로드 재개
wget --limit-rate=100k url
# 다운로드 속도 제안
wget -r url
# recursive하게 다운로드
# 리커시브하게 다운받지만 깊이를 제안하고 싶다면 -l dept 옵션을 준다. l은 level을 의미
wget -r -A 파일확장자 url
# 특정형식의 파일만 다운로드 하고 싶은때 사용
# accept의미
wget -r -R 파일확장자 url
# 특정 형식 파일만 제외
# reject의미
wget --timeout=second
# second만큼의 시간 초과를 설정
wget --tries=num
# 재다운 횟수 제어
wget --no-check-certificate url
# ssl인증서 검증을 무시
curl
→ client url
→ 프로토콜들을 이용해 url로 데이터로 전송해서 서버에 데이터를 보내거나 가져올때 사용
curl -o name
# 다운로드한 데이터를 지정한 name으로 저장
# ex) curl -o name.txt url
curl -O
# URL에서 추출한 파일명으로 데이터를 저장
# ex) curl -O https://naver.com/test.txt
curl -L
# 리디렉션을 따라감
# 리디렉션 -> 셸에서 명령어의 입력과 출력을 제어하기 위해 사용하는 기능
# -> 이를 사용하여 명령어의 표준 입력,출력,오류를 다른 명령어로 보낼수있음
# -> stdin:0 stdout:1 stderr:2 fileDescriptor번호 따라감
# -> >표준출력 >>표준출력추가 2>표준오류 &>표준출력과 오류를 동시에 <표준입력
curl -C
# 중단된 다운로드를 이어서 함
# ex) curl -C -O https://naver.com/test.txt
curl -I
# http헤더만 출력
# ex) curl -I url
curl -X request
# 지정된 요청 방식을 사용. (GET, POST, PUT, DELETE)
# ex) curl -X POST -d "param1=value1¶m2=value2" https://naver.com/post
# naver.com/post로 param1=value1과 param2=value2 데이터를 post방식으로 전송
curl -d data
# post 요청 시 데이터를 전송
curl -H
# http 헤더를 설정
# ex) curl -H header url
# url의 헤더만 출력함
curl -u userName:password
# 서버 접근을 위한 인증을 위해 사용자명과 비밀번호를 설정
# ex) curl -u userName:password
curl -F
# 파일 업로드를 포함한 폼 데이터를 전송
# ex) curl -F "file=/home/jeongjihong/file" url
curl -k
# SSL 인증서 검증을 무시
# ex) curl -k url
curl -s
# silent mode
# ex) curl -s -o name.txt url
curl -v
# verbose mode
# ex) curl -v url
=============================================================
wget과 curl 모두 웹에서 데이터를 다운로드 or 업로드 할 때 사용
wget은 주로 파일을 다운로드를 위함. (그래서 리커시브하게 다운로드 가능. curl은 하나씩 해야함)
curl은 주로 데이터 전송 or 수신을 위함.(다양한 http메소드를 지원. wget은 지원하나 유연하지 않음)
wget은 리디렉션을 자동적으로 따라감
curl은 리디렉션을 하려면 옵션 -L을 사용해야함
wget은 이어받기 기능을 기본적으로 제공
curl은 이어받기를 하려면 -c옵션을 사용해야함
둘 다 기본적으로 ssl인증서 검증을 기본적으로 수행
—>결론적으로 다운로드가 주 작업이면 wget, http요청 및 데이터 전송이 필요하면 curl사용