반응형
curl 명령어로 웹사이트 로딩 속도를 테스트하는 방법
curl 버전 정보
$ curl --version
curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.53.1 zlib/1.2.7 libidn/1.28 libssh2/1.8.0
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz unix-sockets
http code 출력
curl -s -o /dev/null -w '%{http_code}\n' https://scbyun.com
$ curl -s -o /dev/null -w '%{http_code}\n' https://scbyun.com
200
웹사이트 로딩 속도 테스트 #1
curl -s -w '\nTesting Website Response Time for: %{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null https://scbyun.com
$ curl -s -w '\nTesting Website Response Time for: %{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null https://scbyun.com
Testing Website Response Time for: https://scbyun.com/
Lookup Time: 0.004
Connect Time: 0.007
Pre-transfer Time: 0.208
Start-transfer Time: 0.526
Total Time: 0.529
웹사이트 로딩 속도 테스트 #2
curl-format.txt 파일 생성
vim 편집기 사용
vim curl-format.txt
time_namelookup: %{time_namelookup}\n
time_connect: %{time_connect}\n
time_appconnect: %{time_appconnect}\n
time_pretransfer: %{time_pretransfer}\n
time_redirect: %{time_redirect}\n
time_starttransfer: %{time_starttransfer}\n
----------\n
time_total: %{time_total}\n
curl 명령어 사용
cat <<EOF > curl-format.txt
time_namelookup: %{time_namelookup}
time_connect: %{time_connect}
time_appconnect: %{time_appconnect}
time_pretransfer: %{time_pretransfer}
time_redirect: %{time_redirect}
time_starttransfer: %{time_starttransfer}
----------
time_total: %{time_total}
EOF
curl -w "@curl-format.txt" -o /dev/null -s https://scbyun.com
$ curl -w "@curl-format.txt" -o /dev/null -s https://scbyun.com
time_namelookup: 0.004
time_connect: 0.007
time_appconnect: 0.210
time_pretransfer: 0.210
time_redirect: 0.000
time_starttransfer: 0.488
----------
time_total: 0.488
728x90
curl -w "@curl-format.txt" -o /dev/null -s --resolve www.scbyun.com:443:111.111.111.111 "https://scbyun.com"
부록 #1
$ for i in {1..3}; do curl -s -w "%{time_total}\n" -o /dev/null https://scbyun.com; done
0.689
0.566
0.737
사용 가능한 변수
- content_type: 요청된 문서의 Content-Type. 존재하는 경우 해당 값이 표시됩니다.
- filename_effective: curl이 --remote-name 또는 --output 옵션과 함께 파일에 기록할 때 최종 파일 이름입니다. --remote-header-name 옵션과 함께 사용할 때 가장 유용합니다. (7.25.1 버전에서 추가됨)
- ftp_entry_path: 원격 FTP 서버에 로그인할 때 curl이 최종으로 도달한 경로입니다. (7.15.4 버전에서 추가됨)
- http_code: 마지막으로 수신한 HTTP(S) 또는 FTP(s) 전송에서 찾은 숫자 응답 코드입니다. 7.18.2 버전부터
- response_code 별칭을 사용하여 동일한 정보를 표시합니다.
- http_connect: 마지막 CONNECT 요청에 대한 응답(프록시로부터)에서 발견된 숫자 코드입니다. (7.12.4 버전에서 추가됨)
- local_ip: 가장 최근에 수행한 연결의 로컬 엔드의 IP 주소입니다. IPv4 또는 IPv6일 수 있습니다. (7.29.0 버전에서 추가됨)
- local_port: 가장 최근에 수행한 연결의 로컬 포트 번호입니다. (7.29.0 버전에서 추가됨)
- num_connects: 최근 전송에서 수행된 새로운 연결 수입니다. (7.12.3 버전에서 추가됨)
- num_redirects: 요청에서 따라간 리디렉션 수입니다. (7.12.3 버전에서 추가됨)
- redirect_url: -L 옵션 없이 HTTP 요청을 보낼 때, 이 변수는 리디렉션이 이동할 실제 URL을 보여줍니다. (7.18.2 버전에서 추가됨)
- remote_ip: 가장 최근에 수행한 연결의 원격 IP 주소입니다. IPv4 또는 IPv6일 수 있습니다. (7.29.0 버전에서 추가됨)
- remote_port: 가장 최근에 수행한 연결의 원격 포트 번호입니다. (7.29.0 버전에서 추가됨)
- size_download: 다운로드된 총 바이트 수입니다.
- size_header: 다운로드된 헤더의 총 바이트 수입니다.
- size_request: HTTP 요청에 전송된 총 바이트 수입니다.
- size_upload: 업로드된 총 바이트 수입니다.
- speed_download: curl이 전체 다운로드에 대해 측정한 평균 다운로드 속도입니다. 초당 바이트 수입니다.
- speed_upload: curl이 전체 업로드에 대해 측정한 평균 업로드 속도입니다. 초당 바이트 수입니다.
- ssl_verify_result: 요청한 SSL 피어 인증서 확인 결과입니다. 0은 확인이 성공했음을 나타냅니다. (7.19.0 버전에서 추가됨)
- time_appconnect: SSL/SSH 등 연결/핸드셰이크가 원격 호스트에 완료된 시간(초)입니다. (7.19.0 버전에서 추가됨)
- time_connect: 로컬 호스트(또는 프록시)에 대한 TCP 연결이 시작된 시간부터 완료된 시간(초)입니다.
- time_namelookup: 이름 해결이 완료된 시간(초)입니다.
- time_pretransfer: 파일 전송이 시작되기 직전까지의 시간(초)입니다. 특정 프로토콜에 대한 모든 전송 전 사전 처리 명령 및 협상이 포함됩니다.
- time_redirect: 이름 조회, 연결, 사전 전송 및 최종 트랜잭션 시작 전의 전환 단계의 시간(초)입니다. time_redirect는 다중 리디렉션에 대한 완전한 실행 시간을 표시합니다. (7.12.3 버전에서 추가됨)
- time_starttransfer: 첫 번째 바이트가 전송되기 직전까지의 시간(초)입니다. time_pretransfer와 서버가 결과를 계산하는 데 소요된 시간을 포함합니다.
- time_total: 작업이 지속된 총 시간(초)입니다. 시간은 밀리초 해상도로 표시됩니다.
- url_effective: 마지막으로 가져온 URL입니다. 특히 curl에게 location: 헤더를 따라가도록 지시한 경우 의미가 가장 큽니다.
참고URL
curl.1 the man page : https://curl.se/docs/manpage.html
github manifestinteractive(sniff.txt) : https://gist.github.com/manifestinteractive
curl 명령어 : https://scbyun.com/1005
728x90
반응형
'리눅스' 카테고리의 다른 글
[linux] rpcgen install for centos 8 (0) | 2022.01.27 |
---|---|
nmap 명령어 (0) | 2022.01.24 |
교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS) (0) | 2022.01.19 |
NGINX와 PHP-FPM을 연동하여 PHP 스크립트를 처리하는 방법 (0) | 2022.01.12 |
mkdir 명령어 (0) | 2022.01.11 |