티스토리 뷰

Netcat으로 HTTP 요청 보내기


안녕하세요! 오늘은 netcat이라는 유용한 네트워크 유틸리티를 사용하여 HTTP 요청을 보내는 방법에 대해 알아보겠습니다.

이 글에서는 netcat의 기본적인 사용법과 함께, Windows에서 WSL2를 사용한 예시까지 다루어 보겠습니다.

1. netcat이란?

netcat은 네트워크 연결을 읽고 쓰는 간단한 유틸리티입니다.
이 도구는 디버깅과 네트워크 테스트에 매우 유용하며, TCP 또는 UDP 프로토콜을 사용하여 데이터를 전송할 수 있습니다.

2. netcat으로 HTTP 요청 보내기

Netcat Example

사용된 커맨드와 HTTP 요청

아래의 코드 블록은 netcat을 사용하여 HTTP 요청을 보내는 예시입니다.
이 예시는 gaia.cs.umass.edu의 80번 포트에 연결하여 특정 페이지를 요청하는 과정을 보여줍니다.

# 연결을 시작합니다.
nc -c -v gaia.cs.umass.edu 80

# 출력 예시
# Connection to gaia.cs.umass.edu port 80 [tcp/http] succeeded!
# HTTP 요청을 보냅니다.
GET /kurose_ross/interactive/index.php HTTP/1.1
Host: gaia.cs.umass.edu
User-Agent: Mozilla/5.0
Accept: */*
Connection: close

# 출력 예시
# HTTP/1.1 200 OK
# ...

사용된 커맨드의 뜻과 사용 방법

  • nc: netcat의 약자입니다.
  • -c: 이 옵션은 일반적으로 쉘 명령을 실행하기 위해 사용됩니다.
    • 참고: 일부 버전에서는 이 옵션을 지원하지 않을 수 있습니다.
  • -v: 상세 모드로, 연결 정보를 자세히 출력합니다.
  • gaia.cs.umass.edu 80: 연결할 호스트와 포트 번호입니다.

Note: 저는 Mac을 사용해서 실습하고 있습니다. -c 등의 옵션이 없는 경우가 있는데, 이럴 때는 NCAT(netcat의 확장판) 등을 설치하는 등 다른 대안책이 있으니 참고바랍니다.

HTTP 요청

  • GET /kurose_ross/interactive/index.php HTTP/1.1: GET 메서드를 사용하여 지정된 URL의 리소스를 요청합니다.
  • Host: gaia.cs.umass.edu: 요청을 보낼 호스트입니다.
  • User-Agent: Mozilla/5.0: 사용자 에이전트 정보입니다.
  • Accept: */*: 어떤 타입의 미디어도 받아들일 수 있음을 나타냅니다.
  • Connection: close: 연결을 종료하라는 지시입니다.

3. Windows에서 WSL2를 사용한 방법

  1. WSL2를 설치합니다.
  2. Linux 배포판을 설치한 후, 터미널을 엽니다.
  3. sudo apt update && sudo apt install netcat 명령으로 netcat을 설치합니다.
  4. 위의 레퍼런스 예시와 같은 명령을 실행합니다.

4. 관련 레퍼런스

728x90

'Computer Science > 네트워크' 카테고리의 다른 글

WebRTC Signaling 프로세스 - 심화  (0) 2023.07.21
Cloud  (0) 2023.07.04
터널 모드  (1) 2023.06.16
IEEE 802.11 네트워크 요소와 구조 모델  (2) 2023.06.15
하트 비트 프로토콜  (0) 2023.06.14