cURL vs Telnet

seunghee.Rho·2025년 8월 22일

Network

목록 보기
2/4

cURL과 Telnet은 네트워크 통신에 사용되는 명령줄 도구이다.

cURL (Client for URLs)

다양한 프로토콜(HTTP, HTTPS, FTP 등)을 사용해 URL로 데이터를 주고받는 클라이언트 도구이다.
마치 배송 서비스처럼, 원하는 주소(URL)로 데이터(패킷)을 보내거나 가져오는 역할을 한다.
간단히 말해, curl은 URL(웹 주소)을 다루는 클라이언트 역할을 하는 프로그램이라고 이해할 수 있다.

웹 서버와 통신할 때 주로 사용되며,
API 테스트, 파일 다운로드, 데이터 전송 등 복잡한 작업을 자동화하는 데 매우 유용하다.

특히 HTTPS를 지원하여 통신 내용을 암호화하기 때문에 보안이 뛰어나다.

curl 명령어를 사용해 HTTPS 프로토콜로 www.google.com에 접속한 결과이다.
출력된 내용은 구글 홈페이지의 HTML 소스 코드이며,
이는 웹 브라우저가 해석하여 우리가 보는 구글 페이지를 만들어내는 기본 정보이다.

정리

  • URL을 통한 데이터 송수신
  • 웹 API 테스트, 파일 다운로드, 데이터 전송
  • 지원 프로토콜: HTTP, HTTPS, FTP 등
  • 보안성 높음(HTTPS 암호화 지원)
  • 웹 개발, 스크립트 자동화에 활용됨

Telnet (Teletype Network)

Telnet은 원격 컴퓨터에 접속하여 명령을 실행하는 데 사용되는 도구이다.
주로 특정 서버의 포트가 열려 있는지 확인하는 용도로 사용된다.

TCP 연결을 통해 작동하며, 연결이 성공하면 텍스트 기반으로 서버와 직접 대화할 수 있는 환경을 제공한다.
그러나 암호화되지 않은 평문 통신만 지원하기 때문에 보안에 매우 취약하다.
오늘날에는 대부분 SSH가 Telnet의 역할을 대체하고 있다.

telnet 명령어를 사용해 www.google.com의 80번 포트에 접속한 결과이다.
연결이 성공했다는 메시지(Connected to...)는 해당 포트가 정상적으로 열려 있고,
클라이언트의 접속을 받아들일 준비가 되어 있다는 의미이다.

정리

  • 포트 연결 및 원격 접속
  • 포트 개방 여부 확인
  • 지원 프로토콜: 주로 TCP
  • 보안성 매우 낮음(평문 통신)
  • 네트워크 진단, 포트 확인에 활용됨

💬 Telnet으로 curl https://www.google.com 과 동일한 기능을 사용할 수 있는가?

❌ Telnet으로 curl https://www.google.com 과 동일한 출력을 얻는 것은 불가능하다.

1. https가 안되는 이유

httpsSSL/TLS라는 암호화 프로토콜을 사용해 통신 데이터를 보호한다.
이 프로토콜은 웹 서버와 클라이언트 간에 통신 채널을 설정할 때 암호화 키를 교환하는 복잡한 과정을 거친다.

telnet은 이러한 암호화 과정을 처리할 수 없다.
telnet이 하는 일은 단순히 서버의 특정 포트에 TCP 연결을 열어주는 것 뿐이다.

따라서 https 포트에 telnet으로 접속하면 암호화된 알 수 없는 데이터만 보게 된다.

2. http로 접근하는 방법

curl https://www.google.com과 동일한 결과를 얻을 수는 없지만
http://www.google.com에 대한 curl의 역할을 telnet으로 흉내 낼 수는 있다.

2-1. Telnet으로 서버 연결

telnet google.com 80 : google.com의 HTTP 포트인 80번에 연결

2-2. 수동으로 HTTP GET 요청 입력

아래의 요청을 입력한 후 엔터 두 번

GET / HTTP/1.1
Host: www.google.com
Connection: close

이 요청은 서버에 '루트 페이지(GET /)를 HTTP 1.1 버전으로 보내달라'고 요청하는 것
Host 헤더는 어떤 웹사이트에 대한 요청인지 서버에 알려준다.

2-3. 서버 응답 확인

요청을 보내면, 서버로부터 HTML 소스 코드를 포함한 HTTP 응답이 화면에 출력된다.
이 경우 서버가 보내는 응답은 암호화되지 않은 순수한 텍스트 데이터이다.

HTTP 헤더와 소스코드가 네트워크를 통해 그대로 노출되는 것을 볼 수 있다.
통신 내용이 중간에 가로채이면 누구나 볼 수 있어, 민감한 데이터 전송에 매우 취약하다.

결론적으로 위의 서버 응답은 telnet으로 http 통신을 흉내 내어 얻은 응답은 평문이며,
이는 curl이 https를 통해 얻는 암호화된 응답과 근본적으로 다르다.

profile
Web Developer

0개의 댓글